Location defaults fix + Rtp now requires rtp setup info + Location implemented into rtp'ing

This commit is contained in:
SuperRonanCraft 2021-03-23 14:02:11 -04:00
parent f52adfddbf
commit 7ecf1cd1a9
7 changed files with 274 additions and 114 deletions

View File

@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.commands;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPCooldown; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPCooldown;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
@ -148,7 +149,8 @@ public class Commands {
if (pl.getSettings().delayEnabled && delayTimer > 0) //Delay enabled? if (pl.getSettings().delayEnabled && delayTimer > 0) //Delay enabled?
if (!pl.getPerms().getBypassDelay(player)) //Can bypass? if (!pl.getPerms().getBypassDelay(player)) //Can bypass?
delay = true; delay = true;
pl.getRTP().start(player, sendi, world, biomes, delay, rtpType); RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true, biomes, delay, rtpType, null);
pl.getRTP().start(setup_info);
} }
} }
} }

View File

@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.commands.RTP_SETUP_TYPE; import me.SuperRonanCraft.BetterRTP.player.commands.RTP_SETUP_TYPE;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPParticles; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPParticles;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation;
import me.SuperRonanCraft.BetterRTP.references.worlds.WorldDefault; import me.SuperRonanCraft.BetterRTP.references.worlds.WorldDefault;
import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations; import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations;
import me.SuperRonanCraft.BetterRTP.references.worlds.WorldPlayer; import me.SuperRonanCraft.BetterRTP.references.worlds.WorldPlayer;
@ -117,30 +118,30 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
List<String> info = new ArrayList<>(); List<String> info = new ArrayList<>();
BetterRTP pl = BetterRTP.getInstance(); BetterRTP pl = BetterRTP.getInstance();
String _true = "&aTrue", _false = "&bFalse"; String _true = "&aTrue", _false = "&bFalse";
info.add("&eWorld: &7" + w.getName() + (personal ? " &7(personalized)" : "")); info.add("&eWorld Name: &7" + w.getName() + (personal ? " &7(personalized)" : ""));
if (personal) if (personal)
info.add("&7- &6Allowed: " + (pl.getPerms().getAWorld(sendi, w.getName()) ? _true : _false)); info.add("&7- &6Allowed: " + (pl.getPerms().getAWorld(sendi, w.getName()) ? _true : _false));
if (pl.getRTP().getDisabledWorlds().contains(w.getName())) //DISABLED if (pl.getRTP().getDisabledWorlds().contains(w.getName())) //World disabled
info.add("&7- &6Disabled: " + _true); info.add("&7- &6Disabled: " + _true);
else { else {
info.add("&7- &6Disabled: " + _false); info.add("&7- &6Disabled: " + _false);
if (pl.getRTP().overriden.containsKey(w.getName())) if (pl.getRTP().overriden.containsKey(w.getName())) //World Overriden
info.add("&7- &6Overriden: " + _true + " &7 target world `" + pl.getRTP().overriden.get(w.getName()) + "`"); info.add("&7- &6Overriden: " + _true + " &7- target `" + pl.getRTP().overriden.get(w.getName()) + "`");
else { else {
info.add("&7- &6Overriden&7: " + _false); info.add("&7- &6Overriden&7: " + _false);
WorldPlayer _rtpworld = BetterRTP.getInstance().getRTP().getPlayerWorld(sendi, w.getName(), null, personal); WorldPlayer _rtpworld = BetterRTP.getInstance().getRTP().getPlayerWorld(new RTPSetupInformation(w.getName(), sendi, null, personal));
WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld; WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld;
info.add("&7- &6Setup Type&7: " + _rtpworld.setup_type.name() + (_rtpworld.setup_type == RTP_SETUP_TYPE.LOCATION ? "&7(" + _rtpworld.setup_name + ")" : "")); info.add("&7- &6Setup Type&7: " + _rtpworld.setup_type.name() + getInfo(_rtpworld, worldDefault, "setup"));
info.add("&7- &6Use World Border&7: " + (_rtpworld.getUseWorldborder() ? _true : _false)); info.add("&7- &6Use World Border&7: " + (_rtpworld.getUseWorldborder() ? _true : _false));
info.add("&7- &6Permission Group&7: " + (_rtpworld.getConfig() != null ? "&e" + _rtpworld.getConfig().name : "&cN/A")); info.add("&7- &6World Type&7: &f" + _rtpworld.getWorldtype().name());
info.add("&7- &6Center X&7: &f" + _rtpworld.getCenterX() + getInfo(_rtpworld, worldDefault, "centerx")); info.add("&7- &6Center X&7: &f" + _rtpworld.getCenterX() + getInfo(_rtpworld, worldDefault, "centerx"));
info.add("&7- &6Center Z&7: &f" + _rtpworld.getCenterZ() + getInfo(_rtpworld, worldDefault, "centerz")); info.add("&7- &6Center Z&7: &f" + _rtpworld.getCenterZ() + getInfo(_rtpworld, worldDefault, "centerz"));
info.add("&7- &6Maximum Radius&7: &f" + _rtpworld.getMaxRad() + getInfo(_rtpworld, worldDefault, "max")); info.add("&7- &6Max Radius&7: &f" + _rtpworld.getMaxRad() + getInfo(_rtpworld, worldDefault, "max"));
info.add("&7- &6Minimum Radius&7: &f" + _rtpworld.getMinRad() + getInfo(_rtpworld, worldDefault, "min")); info.add("&7- &6Min Radius&7: &f" + _rtpworld.getMinRad() + getInfo(_rtpworld, worldDefault, "min"));
info.add("&7- &6Price&7: &f" + _rtpworld.getPrice() + getInfo(_rtpworld, worldDefault, "price")); info.add("&7- &6Price&7: &f" + _rtpworld.getPrice() + getInfo(_rtpworld, worldDefault, "price"));
info.add("&7- &6World Type&7: &f" + _rtpworld.getWorldtype().name());
info.add("&7- &6Biomes&7: &f" + _rtpworld.getBiomes().toString()); info.add("&7- &6Biomes&7: &f" + _rtpworld.getBiomes().toString());
info.add("&7- &6Shape&7: &f" + _rtpworld.getShape().toString()); info.add("&7- &6Shape&7: &f" + _rtpworld.getShape().toString() + getInfo(_rtpworld, worldDefault, "shape"));
info.add("&7- &6Permission Group&7: " + (_rtpworld.getConfig() != null ? "&e" + _rtpworld.getConfig().name : "&cN/A"));
} }
} }
return info; return info;
@ -150,15 +151,19 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
private String getInfo(WorldPlayer worldPlayer, WorldDefault worldDefault, String type) { private String getInfo(WorldPlayer worldPlayer, WorldDefault worldDefault, String type) {
switch (type) { switch (type) {
case "centerx": case "centerx":
return worldPlayer.getUseWorldborder() || worldPlayer.getCenterX() != worldDefault.getCenterX() ? worldPlayer.getUseWorldborder() ? " &8(worldborder)" : "&a*" : ""; return worldPlayer.getUseWorldborder() || worldPlayer.getCenterX() == worldDefault.getCenterX() ? worldPlayer.getUseWorldborder() ? " &8(worldborder)" : " &8(default)" : "";
case "centerz": case "centerz":
return worldPlayer.getUseWorldborder() || worldPlayer.getCenterX() != worldDefault.getCenterZ() ? worldPlayer.getUseWorldborder() ? " &8(worldborder)" : "&a*" : ""; return worldPlayer.getUseWorldborder() || worldPlayer.getCenterZ() == worldDefault.getCenterZ() ? worldPlayer.getUseWorldborder() ? " &8(worldborder)" : " &8(default)" : "";
case "max": case "max":
return worldPlayer.getUseWorldborder() || worldPlayer.getMaxRad() != worldDefault.getMaxRad() ? worldPlayer.getUseWorldborder() ? " &8(worldborder)" : "&a*" : ""; return worldPlayer.getUseWorldborder() || worldPlayer.getMaxRad() == worldDefault.getMaxRad() ? worldPlayer.getUseWorldborder() ? " &8(worldborder)" : " &8(default)" : "";
case "min": case "min":
return worldPlayer.getMinRad() != worldDefault.getMinRad() ? "&a*" : ""; return worldPlayer.getMinRad() == worldDefault.getMinRad() ? " &8(default)" : "";
case "price": case "price":
return worldPlayer.getPrice() != worldDefault.getPrice() ? "&a*" : ""; return worldPlayer.getPrice() == worldDefault.getPrice() ? " &8(default)" : "";
case "shape":
return worldPlayer.getShape() == worldDefault.getShape() ? " &8(default)" : "";
case "setup":
return worldPlayer.setup_type == RTP_SETUP_TYPE.LOCATION ? " &7(" + worldPlayer.setup_name + ")" : "";
} }
return ""; return "";
} }

View File

@ -9,10 +9,7 @@ import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class RTP { public class RTP {
@ -149,35 +146,55 @@ public class RTP {
return disabledWorlds; return disabledWorlds;
} }
public WorldPlayer getPlayerWorld(CommandSender sendi, String world_name, List<String> biomes, boolean personal) { public WorldPlayer getPlayerWorld(RTPSetupInformation setup_info) {
WorldPlayer pWorld = new WorldPlayer(sendi, Bukkit.getWorld(world_name)); WorldPlayer pWorld = new WorldPlayer(setup_info.sender, Bukkit.getWorld(setup_info.world));
//Locations //Locations
for (Map.Entry<String, RTPWorld> location_set : worldLocations.entrySet()) { if (setup_info.location == null) {
RTPWorld location = location_set.getValue(); List<RTPWorld> locationsList = new ArrayList<>();
if (location.getWorld().getName().equals(world_name)) { for (Map.Entry<String, RTPWorld> location_set : worldLocations.entrySet()) {
pWorld.setup(location_set.getKey(), location, location.getBiomes(), personal); RTPWorld location = location_set.getValue();
if (location.getWorld().getName().equals(setup_info.world))
locationsList.add(location_set.getValue());
}
if (!locationsList.isEmpty()) {
RTPWorld location = locationsList.size() > 1 ? locationsList.get((new Random()).nextInt(locationsList.size() - 1)) : locationsList.get(0);
setup_info.location = (WorldLocations) location;
} }
} }
if (setup_info.location != null) {
String setup_name = null;
for (Map.Entry<String, RTPWorld> location_set : worldLocations.entrySet()) {
RTPWorld location = location_set.getValue();
if (location == setup_info.location) {
setup_name = location_set.getKey();
break;
}
}
pWorld.setup(setup_name, setup_info.location, setup_info.location.getBiomes(), setup_info.personalized);
}
if (!pWorld.isSetup()) { if (!pWorld.isSetup()) {
//Custom World //Custom World
if (customWorlds.containsKey(world_name)) { if (customWorlds.containsKey(setup_info.world)) {
RTPWorld cWorld = customWorlds.get(pWorld.getWorld().getName()); RTPWorld cWorld = customWorlds.get(pWorld.getWorld().getName());
pWorld.setup(null, cWorld, biomes, personal); pWorld.setup(null, cWorld, setup_info.biomes, setup_info.personalized);
} }
//Default World //Default World
else else
pWorld.setup(null, defaultWorld, biomes, personal); pWorld.setup(null, defaultWorld, setup_info.biomes, setup_info.personalized);
} }
//World type //World type
WORLD_TYPE world_type; //World rtp type WORLD_TYPE world_type; //World rtp type
if (this.world_type.containsKey(world_name)) if (this.world_type.containsKey(setup_info.world))
world_type = this.world_type.get(world_name); world_type = this.world_type.get(setup_info.world);
else { else {
world_type = WORLD_TYPE.NORMAL; world_type = WORLD_TYPE.NORMAL;
this.world_type.put(world_name, world_type); //Defaults this so the error message isn't spammed this.world_type.put(setup_info.world, world_type); //Defaults this so the error message isn't spammed
getPl().getLogger().warning("Seems like the world `" + world_name + "` does not have a `WorldType` declared. " + getPl().getLogger().warning("Seems like the world `" + setup_info.world + "` does not have a `WorldType` declared. " +
"Please add/fix this in the config.yml file! " + "Please add/fix this in the config.yml file! " +
"This world will be treated as an overworld!"); "This world will be treated as an overworld!");
} }
@ -189,42 +206,11 @@ public class RTP {
return BetterRTP.getInstance(); return BetterRTP.getInstance();
} }
public void start(Player p, CommandSender sendi, String world_name, List<String> biomes, boolean delay, RTP_TYPE rtpType) { public void start(RTPSetupInformation setup_info) {
// Check overrides String world_name = setup_info.world;
if (world_name == null) { Player p = setup_info.player;
world_name = p.getWorld().getName(); CommandSender sendi = setup_info.sender;
} else { // Check if nulled or world doesnt exist
World _world = Bukkit.getWorld(world_name);
if (_world == null) { //Check if world has spaces instead of underscores
_world = Bukkit.getWorld(world_name.replace("_", " "));
world_name = world_name.replace("_", "");
}
if (_world == null) {
getPl().getText().getNotExist(sendi, world_name);
return;
}
}
if (overriden.containsKey(world_name))
world_name = overriden.get(world_name);
// Not forced and has 'betterrtp.world.<world>'
if (sendi == p && !getPl().getPerms().getAWorld(sendi, world_name)) {
getPl().getText().getNoPermissionWorld(p, world_name);
return;
}
// Check disabled worlds
if (disabledWorlds.contains(world_name)) {
getPl().getText().getDisabledWorld(sendi, world_name);
return;
}
WorldPlayer pWorld = getPlayerWorld(p, world_name, biomes, true);
// Economy
if (!getPl().getEco().hasBalance(sendi, pWorld))
return;
//BetterRTP.getInstance().getpInfo().setRTPType(p, rtpType);
rtp(sendi, pWorld, delay, rtpType);
}
public void start(Player p, CommandSender sendi, String world_name, List<String> biomes, boolean delay, RTP_TYPE rtpType, String location_name) {
// Check overrides // Check overrides
if (world_name == null) { if (world_name == null) {
world_name = p.getWorld().getName(); world_name = p.getWorld().getName();
@ -251,12 +237,12 @@ public class RTP {
getPl().getText().getDisabledWorld(sendi, world_name); getPl().getText().getDisabledWorld(sendi, world_name);
return; return;
} }
WorldPlayer pWorld = getPlayerWorld(p, world_name, biomes, true); WorldPlayer pWorld = getPlayerWorld(setup_info);
// Economy // Economy
if (!getPl().getEco().hasBalance(sendi, pWorld)) if (!getPl().getEco().hasBalance(sendi, pWorld))
return; return;
//BetterRTP.getInstance().getpInfo().setRTPType(p, rtpType); //BetterRTP.getInstance().getpInfo().setRTPType(p, rtpType);
rtp(sendi, pWorld, delay, rtpType); rtp(sendi, pWorld, setup_info.delay, setup_info.rtp_type);
} }
private void rtp(CommandSender sendi, WorldPlayer pWorld, boolean delay, RTP_TYPE type) { private void rtp(CommandSender sendi, WorldPlayer pWorld, boolean delay, RTP_TYPE type) {

View File

@ -0,0 +1,46 @@
package me.SuperRonanCraft.BetterRTP.player.rtp;
import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
public class RTPSetupInformation {
//Will provide information to setup an RTP attempt
public String world;
public CommandSender sender;
public Player player;
public boolean personalized;
public List<String> biomes;
public WorldLocations location;
public boolean delay;
public RTP_TYPE rtp_type;
public RTPSetupInformation(String world, CommandSender sender, Player player, boolean personalized) {
this.world = world;
this.sender = sender;
this.player = player;
this.personalized = personalized;
}
public RTPSetupInformation(String world, CommandSender sender, Player player, boolean personalized, List<String> biomes) {
this.world = world;
this.sender = sender;
this.player = player;
this.personalized = personalized;
this.biomes = biomes;
}
public RTPSetupInformation(String world, CommandSender sender, Player player, boolean personalized, List<String> biomes,
boolean delay, RTP_TYPE rtp_type, WorldLocations location) {
this.world = world;
this.sender = sender;
this.player = player;
this.personalized = personalized;
this.biomes = biomes;
this.delay = delay;
this.rtp_type = rtp_type;
this.location = location;
}
}

View File

@ -0,0 +1,40 @@
package me.SuperRonanCraft.BetterRTP.references.worlds;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
import org.bukkit.World;
import java.util.List;
public interface RTPWorld_Defaulted {
void setUseWorldBorder(boolean value);
void setCenterX(int value);
void setCenterZ(int value);
void setMaxRad(int value);
void setMinRad(int value);
void setPrice(int value);
void setBiomes(List<String> value);
void setWorld(String value);
void setShape(RTP_SHAPE value);
default void setupDefaults() {
WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld;
setMaxRad(worldDefault.getMaxRad());
setMinRad(worldDefault.getMinRad());
setUseWorldBorder(worldDefault.getUseWorldborder());
setCenterX(worldDefault.getCenterX());
setCenterZ(worldDefault.getCenterZ());
setPrice(worldDefault.getPrice());
setBiomes(worldDefault.getBiomes());
setShape(worldDefault.getShape());
}
}

View File

@ -10,11 +10,11 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public class WorldCustom implements RTPWorld { public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
public String world; public String world;
private boolean useWorldborder; private boolean useWorldborder;
private int CenterX, CenterZ, maxBorderRad, minBorderRad, price; private int centerX, centerZ, maxBorderRad, minBorderRad, price;
private List<String> Biomes; private List<String> biomes;
private RTP_SHAPE shape; private RTP_SHAPE shape;
public WorldCustom(String world) { public WorldCustom(String world) {
@ -24,15 +24,7 @@ public class WorldCustom implements RTPWorld {
this.world = world; this.world = world;
//Set Defaults //Set Defaults
WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld; setupDefaults();
maxBorderRad = worldDefault.getMaxRad();
minBorderRad = worldDefault.getMinRad();
useWorldborder = worldDefault.getUseWorldborder();
CenterX = worldDefault.getCenterX();
CenterZ = worldDefault.getCenterZ();
price = worldDefault.getPrice();
Biomes = worldDefault.getBiomes();
shape = worldDefault.getShape();
//Find Custom World and cache values //Find Custom World and cache values
for (Map<?, ?> m : map) { for (Map<?, ?> m : map) {
@ -49,11 +41,11 @@ public class WorldCustom implements RTPWorld {
} }
if (test.get("CenterX") != null) { if (test.get("CenterX") != null) {
if (test.get("CenterX").getClass() == Integer.class) if (test.get("CenterX").getClass() == Integer.class)
CenterX = Integer.parseInt((test.get("CenterX")).toString()); centerX = Integer.parseInt((test.get("CenterX")).toString());
} }
if (test.get("CenterZ") != null) { if (test.get("CenterZ") != null) {
if (test.get("CenterZ").getClass() == Integer.class) { if (test.get("CenterZ").getClass() == Integer.class) {
CenterZ = Integer.parseInt((test.get("CenterZ")).toString()); centerZ = Integer.parseInt((test.get("CenterZ")).toString());
} }
} }
if (test.get("MaxRadius") != null) { if (test.get("MaxRadius") != null) {
@ -78,16 +70,16 @@ public class WorldCustom implements RTPWorld {
} }
if (test.get("Biomes") != null) { if (test.get("Biomes") != null) {
if (test.get("Biomes").getClass() == ArrayList.class) if (test.get("Biomes").getClass() == ArrayList.class)
this.Biomes = new ArrayList<String>((ArrayList) test.get("Biomes")); this.biomes = new ArrayList<String>((ArrayList) test.get("Biomes"));
} }
if (BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.ECO).getBoolean("Economy.Enabled")) if (BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.ECO).getBoolean("Economy.Enabled"))
if (test.get("Price") != null) { if (test.get("Price") != null) {
if (test.get("Price").getClass() == Integer.class) if (test.get("Price").getClass() == Integer.class)
this.price = Integer.parseInt(test.get("Price").toString()); this.price = Integer.parseInt(test.get("Price").toString());
else //else
price = worldDefault.getPrice(world); //price = worldDefault.getPrice(world);
} else } //else
price = worldDefault.getPrice(world); //price = worldDefault.getPrice(world);
if (test.get("Shape") != null) { if (test.get("Shape") != null) {
if (test.get("Shape").getClass() == String.class) { if (test.get("Shape").getClass() == String.class) {
try { try {
@ -141,12 +133,12 @@ public class WorldCustom implements RTPWorld {
@Override @Override
public int getCenterX() { public int getCenterX() {
return CenterX; return centerX;
} }
@Override @Override
public int getCenterZ() { public int getCenterZ() {
return CenterZ; return centerZ;
} }
@Override @Override
@ -166,7 +158,7 @@ public class WorldCustom implements RTPWorld {
@Override @Override
public List<String> getBiomes() { public List<String> getBiomes() {
return Biomes; return biomes;
} }
@Override @Override
@ -178,4 +170,50 @@ public class WorldCustom implements RTPWorld {
public RTP_SHAPE getShape() { public RTP_SHAPE getShape() {
return shape; return shape;
} }
//Setters
@Override
public void setUseWorldBorder(boolean value) {
this.useWorldborder = value;
}
@Override
public void setCenterX(int value) {
this.centerX = value;
}
@Override
public void setCenterZ(int value) {
this.centerZ = value;
}
@Override
public void setMaxRad(int value) {
this.maxBorderRad = value;
}
@Override
public void setMinRad(int value) {
this.minBorderRad = value;
}
@Override
public void setPrice(int value) {
this.price = value;
}
@Override
public void setBiomes(List<String> value) {
this.biomes = value;
}
@Override
public void setWorld(String value) {
this.world = value;
}
@Override
public void setShape(RTP_SHAPE value) {
this.shape = value;
}
} }

View File

@ -1,32 +1,28 @@
package me.SuperRonanCraft.BetterRTP.references.worlds; package me.SuperRonanCraft.BetterRTP.references.worlds;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPPermissionGroup;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.WorldBorder;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Random;
public class WorldLocations implements RTPWorld { public class WorldLocations implements RTPWorld, RTPWorld_Defaulted {
private boolean useWorldborder; private boolean useWorldborder;
private int CenterX, CenterZ, maxBorderRad, minBorderRad, price; private int centerX, centerZ, maxBorderRad, minBorderRad, price;
private List<String> Biomes; private List<String> biomes;
private String world; private String world;
private RTP_SHAPE shape; private RTP_SHAPE shape;
public WorldLocations(String location_name) { public WorldLocations(String location_name) {
FileBasics.FILETYPE config = BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.LOCATIONS); FileBasics.FILETYPE config = BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.LOCATIONS);
List<Map<?, ?>> map = config.getMapList("Locations"); List<Map<?, ?>> map = config.getMapList("Locations");
WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld; //WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld;
setupDefaults();
//Find Location and cache its values //Find Location and cache its values
for (Map<?, ?> m : map) { for (Map<?, ?> m : map) {
@ -50,11 +46,11 @@ public class WorldLocations implements RTPWorld {
} }
if (test.get("CenterX") != null) { if (test.get("CenterX") != null) {
if (test.get("CenterX").getClass() == Integer.class) if (test.get("CenterX").getClass() == Integer.class)
CenterX = Integer.parseInt((test.get("CenterX")).toString()); centerX = Integer.parseInt((test.get("CenterX")).toString());
} }
if (test.get("CenterZ") != null) { if (test.get("CenterZ") != null) {
if (test.get("CenterZ").getClass() == Integer.class) { if (test.get("CenterZ").getClass() == Integer.class) {
CenterZ = Integer.parseInt((test.get("CenterZ")).toString()); centerZ = Integer.parseInt((test.get("CenterZ")).toString());
} }
} }
if (test.get("MaxRadius") != null) { if (test.get("MaxRadius") != null) {
@ -79,16 +75,16 @@ public class WorldLocations implements RTPWorld {
} }
if (test.get("Biomes") != null) { if (test.get("Biomes") != null) {
if (test.get("Biomes").getClass() == ArrayList.class) if (test.get("Biomes").getClass() == ArrayList.class)
this.Biomes = new ArrayList<String>((ArrayList) test.get("Biomes")); this.biomes = new ArrayList<String>((ArrayList) test.get("Biomes"));
} }
if (BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.ECO).getBoolean("Economy.Enabled")) if (BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.ECO).getBoolean("Economy.Enabled"))
if (test.get("Price") != null) { if (test.get("Price") != null) {
if (test.get("Price").getClass() == Integer.class) if (test.get("Price").getClass() == Integer.class)
this.price = Integer.parseInt(test.get("Price").toString()); this.price = Integer.parseInt(test.get("Price").toString());
else //else
price = worldDefault.getPrice(world); // price = worldDefault.getPrice(world);
} else } //else
price = worldDefault.getPrice(world); //price = worldDefault.getPrice(world);
if (test.get("Shape") != null) { if (test.get("Shape") != null) {
if (test.get("Shape").getClass() == String.class) { if (test.get("Shape").getClass() == String.class) {
try { try {
@ -113,17 +109,17 @@ public class WorldLocations implements RTPWorld {
@Override @Override
public boolean getUseWorldborder() { public boolean getUseWorldborder() {
return useWorldborder; return false;//useWorldborder;
} }
@Override @Override
public int getCenterX() { public int getCenterX() {
return CenterX; return centerX;
} }
@Override @Override
public int getCenterZ() { public int getCenterZ() {
return CenterZ; return centerZ;
} }
@Override @Override
@ -143,11 +139,58 @@ public class WorldLocations implements RTPWorld {
@Override @Override
public List<String> getBiomes() { public List<String> getBiomes() {
return Biomes; return biomes;
} }
@Override @Override
public RTP_SHAPE getShape() { public RTP_SHAPE getShape() {
return shape; return shape;
} }
//Setters
@Override
public void setUseWorldBorder(boolean value) {
this.useWorldborder = value;
}
@Override
public void setCenterX(int value) {
this.centerX = value;
}
@Override
public void setCenterZ(int value) {
this.centerZ = value;
}
@Override
public void setMaxRad(int value) {
this.maxBorderRad = value;
}
@Override
public void setMinRad(int value) {
this.minBorderRad = value;
}
@Override
public void setPrice(int value) {
this.price = value;
}
@Override
public void setBiomes(List<String> value) {
this.biomes = value;
}
@Override
public void setWorld(String value) {
this.world = value;
}
@Override
public void setShape(RTP_SHAPE value) {
this.shape = value;
}
} }