fix: load spawn from players.json as fallback
This commit is contained in:
parent
5513aac4b5
commit
e3ddc6f779
2 changed files with 25 additions and 4 deletions
|
@ -183,6 +183,20 @@ public class TeamManager {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JSONObject getPlayerSpawn(final String uuid) {
|
||||||
|
final JSONArray jsonTeams = config.getArray("teams");
|
||||||
|
for (final Object jsonRawTeam : jsonTeams) {
|
||||||
|
final JSONObject jsonTeam = (JSONObject) jsonRawTeam;
|
||||||
|
for (final Object rawPlayer : ((JSONArray) jsonTeam.get("players"))) {
|
||||||
|
final JSONObject jsonPlayer = (JSONObject) rawPlayer;
|
||||||
|
if (jsonPlayer.get("uuid").equals(uuid)) {
|
||||||
|
return (JSONObject) jsonPlayer.get("spawn");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private HashMap<String, Object> getDefaults() {
|
private HashMap<String, Object> getDefaults() {
|
||||||
final HashMap<String, Object> defaults = new HashMap<String, Object>();
|
final HashMap<String, Object> defaults = new HashMap<String, Object>();
|
||||||
|
|
|
@ -5,6 +5,7 @@ import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.World.Environment;
|
import org.bukkit.World.Environment;
|
||||||
import org.bukkit.inventory.MainHand;
|
import org.bukkit.inventory.MainHand;
|
||||||
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
import de.cliffbreak.varo.Varo;
|
import de.cliffbreak.varo.Varo;
|
||||||
|
|
||||||
|
@ -32,13 +33,19 @@ public class PlayerCache {
|
||||||
public Location getPlayerLocationCache(final String uuid) {
|
public Location getPlayerLocationCache(final String uuid) {
|
||||||
if ((String) this.plugin.getDatabase().getPlayerCache(uuid,
|
if ((String) this.plugin.getDatabase().getPlayerCache(uuid,
|
||||||
PlayerCacheType.WORLD.toString().toLowerCase()) == null) {
|
PlayerCacheType.WORLD.toString().toLowerCase()) == null) {
|
||||||
for (final World world : Bukkit.getWorlds()) {
|
JSONObject jsonSpawn = this.plugin.getTeamManager().getPlayerSpawn(uuid);
|
||||||
if (world.getEnvironment().equals(Environment.NORMAL))
|
if (jsonSpawn == null) {
|
||||||
return world.getSpawnLocation();
|
for (final World world : Bukkit.getWorlds()) {
|
||||||
|
if (world.getEnvironment().equals(Environment.NORMAL))
|
||||||
|
return world.getSpawnLocation();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return new Location(Bukkit.getWorld((String) jsonSpawn.get("world")), (double) jsonSpawn.get("x"),
|
||||||
|
(double) jsonSpawn.get("y"), (double) jsonSpawn.get("z"),
|
||||||
|
((Double) jsonSpawn.get("yaw")).floatValue(), ((Double) jsonSpawn.get("pitch")).floatValue());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
return new Location(
|
return new Location(
|
||||||
Bukkit.getWorld((String) this.plugin.getDatabase().getPlayerCache(uuid,
|
Bukkit.getWorld((String) this.plugin.getDatabase().getPlayerCache(uuid,
|
||||||
PlayerCacheType.WORLD.toString().toLowerCase())),
|
PlayerCacheType.WORLD.toString().toLowerCase())),
|
||||||
|
|
Loading…
Reference in a new issue