Geoffrey-MC-Plugin/src/main/java/com/zerohighdef/geoffrey/Models/GeoffreyTown.java

44 lines
1.4 KiB
Java

package com.zerohighdef.geoffrey.Models;
import com.google.common.collect.Iterables;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import java.util.LinkedList;
import java.util.List;
public class GeoffreyTown extends GeoffreyLocation {
private List<GeoffreyPlayer> residents;
public GeoffreyTown(JsonObject locationJSON) {
super(locationJSON);
this.residents = new LinkedList<>();
for (JsonElement json : locationJSON.get("residents").getAsJsonArray()) {
this.residents.add(new GeoffreyPlayer(json.getAsJsonObject()));
}
}
public GeoffreyTown(int xCoord, int zCoord, String locationName, List<GeoffreyPlayer> owners, String dimension, List <GeoffreyPlayer> residents) {
super(xCoord, zCoord, locationName, owners, dimension);
this.residents = residents;
}
@Override
public String getInfoString() {
StringBuilder locationString = new StringBuilder();
locationString.append(super.getInfoString());
locationString.append("\nResidents: ");
int i = 0;
for (GeoffreyPlayer resident: Iterables.limit(residents, 5)) {
locationString.append(resident.getUsername());
i++;
if (i < residents.size()) {
locationString.append(", ");
}
}
return locationString.toString();
}
}