mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-18 01:25:45 +00:00
world locations loading implementation + edit command now supports shapes and price
This commit is contained in:
parent
123569adbb
commit
2da1210578
@ -1,13 +1,16 @@
|
|||||||
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
||||||
|
|
||||||
|
import com.bekvon.bukkit.residence.containers.cmd;
|
||||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
|
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
|
||||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||||
import me.SuperRonanCraft.BetterRTP.references.worlds.WORLD_TYPE;
|
import me.SuperRonanCraft.BetterRTP.references.worlds.WORLD_TYPE;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
@ -34,7 +37,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
if (world.getName().startsWith(args[2])) {
|
if (world.getName().startsWith(args[2])) {
|
||||||
for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values())
|
for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values())
|
||||||
if (sub_cmd.name().toLowerCase().startsWith(args[3].toLowerCase())) {
|
if (sub_cmd.name().toLowerCase().startsWith(args[3].toLowerCase())) {
|
||||||
editWorld(sendi, sub_cmd, args[4], args[2]);
|
editWorld(sendi, sub_cmd, args[2], args[4]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
usage(sendi, label, cmd);
|
usage(sendi, label, cmd);
|
||||||
@ -94,7 +97,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
usage(sendi, label, null);
|
usage(sendi, label, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void editWorld(CommandSender sendi, RTP_CMD_EDIT_SUB cmd, String val, String world) {
|
private void editWorld(CommandSender sendi, RTP_CMD_EDIT_SUB cmd, String world, String val) {
|
||||||
Object value;
|
Object value;
|
||||||
try {
|
try {
|
||||||
value = cmd.getResult(val);
|
value = cmd.getResult(val);
|
||||||
@ -104,6 +107,11 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (value == null) {
|
||||||
|
BetterRTP.getInstance().getText().getEditError(sendi);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
|
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
|
||||||
YamlConfiguration config = file.getConfig();
|
YamlConfiguration config = file.getConfig();
|
||||||
|
|
||||||
@ -115,7 +123,6 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
for (Object map2 : m.values()) {
|
for (Object map2 : m.values()) {
|
||||||
Map<Object, Object> values = (Map<Object, Object>) map2;
|
Map<Object, Object> values = (Map<Object, Object>) map2;
|
||||||
values.put(cmd.get(), value);
|
values.put(cmd.get(), value);
|
||||||
|
|
||||||
BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val);
|
BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -133,7 +140,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
config.save(file.getFile());
|
config.save(file.getFile());
|
||||||
BetterRTP.getInstance().getRTP().loadWorldSettings();
|
BetterRTP.getInstance().getRTP().loadCustomWorlds();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -149,6 +156,11 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (value == null) {
|
||||||
|
BetterRTP.getInstance().getText().getEditError(sendi);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
|
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
|
||||||
YamlConfiguration config = file.getConfig();
|
YamlConfiguration config = file.getConfig();
|
||||||
|
|
||||||
@ -156,7 +168,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
config.save(file.getFile());
|
config.save(file.getFile());
|
||||||
BetterRTP.getInstance().getRTP().loadWorldSettings();
|
BetterRTP.getInstance().getRTP().loadCustomWorlds();
|
||||||
BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val);
|
BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -340,6 +352,14 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
list.add(String.valueOf(((Player) sendi).getLocation().getBlockX()));
|
list.add(String.valueOf(((Player) sendi).getLocation().getBlockX()));
|
||||||
else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name()))
|
else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name()))
|
||||||
list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ()));
|
list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ()));
|
||||||
|
else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.SHAPE.name()))
|
||||||
|
for (RTP_SHAPE shape : RTP_SHAPE.values())
|
||||||
|
list.add(shape.name().toLowerCase());
|
||||||
|
/*else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.BIOME_ADD.name()))
|
||||||
|
for (Biome biome : Biome.values()) {
|
||||||
|
if (biome.name().toLowerCase().startsWith(args[4].toLowerCase()) && list.size() < 20)
|
||||||
|
list.add(biome.name());
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
@ -387,11 +407,14 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
WORLD, DEFAULT, WORLD_TYPE, OVERRIDE, BLACKLISTEDBLOCKS
|
WORLD, DEFAULT, WORLD_TYPE, OVERRIDE, BLACKLISTEDBLOCKS
|
||||||
}
|
}
|
||||||
|
|
||||||
enum RTP_CMD_EDIT_SUB {
|
enum RTP_CMD_EDIT_SUB { //Only for World and Default
|
||||||
CENTER_X("CenterX", "INT"),
|
CENTER_X("CenterX", "INT"),
|
||||||
CENTER_Z("CenterZ", "INT"),
|
CENTER_Z("CenterZ", "INT"),
|
||||||
MAX("MaxRadius", "INT"),
|
MAX("MaxRadius", "INT"),
|
||||||
MIN("MinRadius", "INT"),
|
MIN("MinRadius", "INT"),
|
||||||
|
PRICE("Price", "INT"),
|
||||||
|
SHAPE("Shape", "SHAPE"),
|
||||||
|
//BIOME_ADD("Biomes", "STR"),
|
||||||
USEWORLDBORDER("UseWorldBorder", "BOL");
|
USEWORLDBORDER("UseWorldBorder", "BOL");
|
||||||
|
|
||||||
private final String type;
|
private final String type;
|
||||||
@ -411,8 +434,15 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
|
|||||||
return Integer.parseInt(input);
|
return Integer.parseInt(input);
|
||||||
else if (this.type.equalsIgnoreCase("BOL"))
|
else if (this.type.equalsIgnoreCase("BOL"))
|
||||||
return Boolean.valueOf(input);
|
return Boolean.valueOf(input);
|
||||||
else if (this.type.equalsIgnoreCase("WORLDTYPE")) //WILL CAUSE ERROR IF INCORRECT
|
else if (this.type.equalsIgnoreCase("STR"))
|
||||||
return WORLD_TYPE.valueOf(input).name();
|
return Collections.singletonList(input);
|
||||||
|
else if (this.type.equalsIgnoreCase("SHAPE")) {
|
||||||
|
try {
|
||||||
|
return RTP_SHAPE.valueOf(input.toUpperCase()).name();
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,9 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
|
|||||||
else if (args[1].equalsIgnoreCase(CmdInfoSub.POTION_EFFECTS.name()))
|
else if (args[1].equalsIgnoreCase(CmdInfoSub.POTION_EFFECTS.name()))
|
||||||
infoEffects(sendi);
|
infoEffects(sendi);
|
||||||
else if (args[1].equalsIgnoreCase(CmdInfoSub.WORLD.name())) {
|
else if (args[1].equalsIgnoreCase(CmdInfoSub.WORLD.name())) {
|
||||||
if (sendi instanceof Player) { //Personalize with permission groups
|
if (args.length > 2 && Bukkit.getWorld(args[2]) != null) {
|
||||||
|
sendInfoWorld(sendi, infoGetWorld(sendi, Bukkit.getWorld(args[2]), false));
|
||||||
|
} else if (sendi instanceof Player) { //Personalize with permission groups
|
||||||
World world = null;
|
World world = null;
|
||||||
boolean personal = false;
|
boolean personal = false;
|
||||||
if (args.length > 2) {
|
if (args.length > 2) {
|
||||||
@ -121,23 +123,22 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
|
|||||||
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()))
|
||||||
info.add("&7- &6Overriden: " + _true + " &7(" + pl.getRTP().overriden.get(w.getName()) + ")");
|
info.add("&7- &6Overriden: " + _true + " &7 target world `" + pl.getRTP().overriden.get(w.getName()) + "`");
|
||||||
else {
|
else {
|
||||||
info.add("&7- &6WorldType: &f" + pl.getRTP().world_type.getOrDefault(w.getName(), WORLD_TYPE.NORMAL).name());
|
info.add("&7- &6Overriden&7: " + _false);
|
||||||
info.add("&7- &6Overriden: " + _false);
|
|
||||||
WorldPlayer _rtpworld = BetterRTP.getInstance().getRTP().getPlayerWorld(sendi, w.getName(), null, personal);
|
WorldPlayer _rtpworld = BetterRTP.getInstance().getRTP().getPlayerWorld(sendi, w.getName(), null, personal);
|
||||||
WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld;
|
WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld;
|
||||||
info.add("&7- &6Custom: " + (BetterRTP.getInstance().getRTP().customWorlds.containsKey(w.getName()) ? _true : _false));
|
info.add("&7- &6Custom World&7: " + (BetterRTP.getInstance().getRTP().customWorlds.containsKey(w.getName()) ? _true : _false + " &8(using defaults)"));
|
||||||
info.add("&7- &6UseWorldBorder: " + (_rtpworld.getUseWorldborder() ? _true : _false));
|
info.add("&7- &6Use World Border&7: " + (_rtpworld.getUseWorldborder() ? _true : _false));
|
||||||
info.add("&7- &6Permission Group: " + (_rtpworld.getConfig() != null ? "&e" + _rtpworld.getConfig().name : "&cN/A"));
|
info.add("&7- &6Permission Group&7: " + (_rtpworld.getConfig() != null ? "&e" + _rtpworld.getConfig().name : "&cN/A"));
|
||||||
info.add("&7- &6Center X: &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: &f" + _rtpworld.getCenterZ() + getInfo(_rtpworld, worldDefault, "centerz"));
|
info.add("&7- &6Center Z&7: &f" + _rtpworld.getCenterZ() + getInfo(_rtpworld, worldDefault, "centerz"));
|
||||||
info.add("&7- &6MaxRad: &f" + _rtpworld.getMaxRad() + getInfo(_rtpworld, worldDefault, "max"));
|
info.add("&7- &6Maximum Radius&7: &f" + _rtpworld.getMaxRad() + getInfo(_rtpworld, worldDefault, "max"));
|
||||||
info.add("&7- &6MinRad: &f" + _rtpworld.getMinRad() + getInfo(_rtpworld, worldDefault, "min"));
|
info.add("&7- &6Minimum Radius&7: &f" + _rtpworld.getMinRad() + getInfo(_rtpworld, worldDefault, "min"));
|
||||||
info.add("&7- &6Price: &f" + _rtpworld.getPrice() + getInfo(_rtpworld, worldDefault, "price"));
|
info.add("&7- &6Price&7: &f" + _rtpworld.getPrice() + getInfo(_rtpworld, worldDefault, "price"));
|
||||||
info.add("&7- &6World Type: &f" + _rtpworld.getWorldtype().name());
|
info.add("&7- &6World Type&7: &f" + _rtpworld.getWorldtype().name());
|
||||||
info.add("&7- &6Biomes: &f" + _rtpworld.getBiomes().toString());
|
info.add("&7- &6Biomes&7: &f" + _rtpworld.getBiomes().toString());
|
||||||
info.add("&7- &6Shape: &f" + _rtpworld.getShape().toString());
|
info.add("&7- &6Shape&7: &f" + _rtpworld.getShape().toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return info;
|
return info;
|
||||||
@ -188,6 +189,9 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
|
|||||||
if (p.getName().toLowerCase().startsWith(args[2].toLowerCase()))
|
if (p.getName().toLowerCase().startsWith(args[2].toLowerCase()))
|
||||||
info.add(p.getName());
|
info.add(p.getName());
|
||||||
}
|
}
|
||||||
|
for (World world : Bukkit.getWorlds())
|
||||||
|
if (world.getName().toLowerCase().startsWith(args[2].toLowerCase()))
|
||||||
|
info.add(world.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return info;
|
return info;
|
||||||
|
@ -0,0 +1,421 @@
|
|||||||
|
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
||||||
|
|
||||||
|
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.references.worlds.WORLD_TYPE;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class CmdLocation implements RTPCommand, RTPCommandHelpable { //Edit a worlds properties
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return "edit";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sendi, String label, String[] args) {
|
||||||
|
if (args.length >= 4) {
|
||||||
|
for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values())
|
||||||
|
if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) {
|
||||||
|
switch (cmd) {
|
||||||
|
case WORLD:
|
||||||
|
if (args.length >= 5) {
|
||||||
|
for (World world : Bukkit.getWorlds()) {
|
||||||
|
if (world.getName().startsWith(args[2])) {
|
||||||
|
for (RTP_CMD_LOCATION_SUB sub_cmd : RTP_CMD_LOCATION_SUB.values())
|
||||||
|
if (sub_cmd.name().toLowerCase().startsWith(args[3].toLowerCase())) {
|
||||||
|
editWorld(sendi, sub_cmd, args[4], args[2]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
usage(sendi, label, cmd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
usage(sendi, label, cmd);
|
||||||
|
return;
|
||||||
|
case DEFAULT:
|
||||||
|
for (RTP_CMD_LOCATION_SUB sub_cmd : RTP_CMD_LOCATION_SUB.values())
|
||||||
|
if (sub_cmd.name().toLowerCase().startsWith(args[2].toLowerCase())) {
|
||||||
|
editDefault(sendi, sub_cmd, args[3]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
usage(sendi, label, cmd);
|
||||||
|
return;
|
||||||
|
case WORLD_TYPE:
|
||||||
|
for (World world : Bukkit.getWorlds()) {
|
||||||
|
if (world.getName().startsWith(args[2])) {
|
||||||
|
editWorldtype(sendi, args[2], args[3]);
|
||||||
|
//usage(sendi, label, cmd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
|
||||||
|
return;
|
||||||
|
case OVERRIDE:
|
||||||
|
for (World world : Bukkit.getWorlds()) {
|
||||||
|
if (world.getName().startsWith(args[2])) {
|
||||||
|
editOverride(sendi, args[2], args[3]);
|
||||||
|
//usage(sendi, label, cmd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
|
||||||
|
return;
|
||||||
|
case BLACKLISTEDBLOCKS:
|
||||||
|
if (args[2].equalsIgnoreCase("add")) {
|
||||||
|
editBlacklisted(sendi, args[3], true);
|
||||||
|
} else if (args[2].equalsIgnoreCase("remove")) {
|
||||||
|
editBlacklisted(sendi, args[3], false);
|
||||||
|
} else
|
||||||
|
usage(sendi, label, cmd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (args.length >= 2) {
|
||||||
|
for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values())
|
||||||
|
if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) {
|
||||||
|
usage(sendi, label, cmd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
usage(sendi, label, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void editWorld(CommandSender sendi, RTP_CMD_LOCATION_SUB cmd, String val, String world) {
|
||||||
|
Object value;
|
||||||
|
try {
|
||||||
|
value = cmd.getResult(val);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
BetterRTP.getInstance().getText().getEditError(sendi);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
|
||||||
|
YamlConfiguration config = file.getConfig();
|
||||||
|
|
||||||
|
List<Map<?, ?>> map = config.getMapList("CustomWorlds");
|
||||||
|
boolean found = false;
|
||||||
|
for (Map<?, ?> m : map) {
|
||||||
|
if (m.keySet().toArray()[0].equals(world)) {
|
||||||
|
found = true;
|
||||||
|
for (Object map2 : m.values()) {
|
||||||
|
Map<Object, Object> values = (Map<Object, Object>) map2;
|
||||||
|
values.put(cmd.get(), value);
|
||||||
|
|
||||||
|
BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
|
Map<Object, Object> map2 = new HashMap<>();
|
||||||
|
Map<Object, Object> values = new HashMap<>();
|
||||||
|
values.put(cmd.get(), value);
|
||||||
|
map2.put(world, values);
|
||||||
|
map.add(map2);
|
||||||
|
}
|
||||||
|
|
||||||
|
config.set("CustomWorlds", map);
|
||||||
|
|
||||||
|
try {
|
||||||
|
config.save(file.getFile());
|
||||||
|
BetterRTP.getInstance().getRTP().loadCustomWorlds();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void editDefault(CommandSender sendi, RTP_CMD_LOCATION_SUB cmd, String val) {
|
||||||
|
Object value;
|
||||||
|
try {
|
||||||
|
value = cmd.getResult(val);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
BetterRTP.getInstance().getText().getEditError(sendi);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
|
||||||
|
YamlConfiguration config = file.getConfig();
|
||||||
|
|
||||||
|
config.set("Default." + cmd.get(), value);
|
||||||
|
|
||||||
|
try {
|
||||||
|
config.save(file.getFile());
|
||||||
|
BetterRTP.getInstance().getRTP().loadCustomWorlds();
|
||||||
|
BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void editWorldtype(CommandSender sendi, String world, String val) {
|
||||||
|
//sendi.sendMessage("Editting worldtype for world " + world + " to " + val);
|
||||||
|
WORLD_TYPE type;
|
||||||
|
try {
|
||||||
|
type = WORLD_TYPE.valueOf(val.toUpperCase());
|
||||||
|
} catch (Exception e) {
|
||||||
|
//e.printStackTrace();
|
||||||
|
BetterRTP.getInstance().getText().getEditError(sendi);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
|
||||||
|
YamlConfiguration config = file.getConfig();
|
||||||
|
|
||||||
|
List<Map<?, ?>> world_map = config.getMapList("WorldType");
|
||||||
|
List<Map<?, ?>> removeList = new ArrayList<>();
|
||||||
|
for (Map<?, ?> m : world_map) {
|
||||||
|
for (Map.Entry<?, ?> entry : m.entrySet()) {
|
||||||
|
if (entry.getKey().equals(world))
|
||||||
|
removeList.add(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Map<?, ?> o : removeList)
|
||||||
|
world_map.remove(o);
|
||||||
|
Map<String, String> newIndex = new HashMap<>();
|
||||||
|
newIndex.put(world, type.name());
|
||||||
|
world_map.add(newIndex);
|
||||||
|
config.set("WorldType", world_map);
|
||||||
|
|
||||||
|
try {
|
||||||
|
config.save(file.getFile());
|
||||||
|
BetterRTP.getInstance().getRTP().load();
|
||||||
|
BetterRTP.getInstance().getText().getEditSet(sendi, RTP_CMD_LOCATION.WORLD_TYPE.name(), val);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void editOverride(CommandSender sendi, String world, String val) {
|
||||||
|
|
||||||
|
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
|
||||||
|
YamlConfiguration config = file.getConfig();
|
||||||
|
|
||||||
|
List<Map<?, ?>> world_map = config.getMapList("Overrides");
|
||||||
|
List<Map<?, ?>> removeList = new ArrayList<>();
|
||||||
|
for (Map<?, ?> m : world_map) {
|
||||||
|
for (Map.Entry<?, ?> entry : m.entrySet()) {
|
||||||
|
if (entry.getKey().equals(world))
|
||||||
|
removeList.add(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Map<?, ?> o : removeList)
|
||||||
|
world_map.remove(o);
|
||||||
|
if (!val.equals("REMOVE_OVERRIDE")) {
|
||||||
|
Map<String, String> newIndex = new HashMap<>();
|
||||||
|
newIndex.put(world, val);
|
||||||
|
world_map.add(newIndex);
|
||||||
|
} else {
|
||||||
|
val = "(removed override)";
|
||||||
|
}
|
||||||
|
config.set("Overrides", world_map);
|
||||||
|
|
||||||
|
try {
|
||||||
|
config.save(file.getFile());
|
||||||
|
BetterRTP.getInstance().getRTP().load();
|
||||||
|
BetterRTP.getInstance().getText().getEditSet(sendi, RTP_CMD_LOCATION.OVERRIDE.name(), val);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void editBlacklisted(CommandSender sendi, String block, boolean add) {
|
||||||
|
|
||||||
|
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
|
||||||
|
YamlConfiguration config = file.getConfig();
|
||||||
|
|
||||||
|
List<String> world_map = config.getStringList("BlacklistedBlocks");
|
||||||
|
List<String> removeList = new ArrayList<>();
|
||||||
|
for (String m : world_map) {
|
||||||
|
if (m.equals(block)) {
|
||||||
|
removeList.add(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (String o : removeList)
|
||||||
|
world_map.remove(o);
|
||||||
|
if (add) {
|
||||||
|
world_map.add(block);
|
||||||
|
} else {
|
||||||
|
block = "(removed " + block + ")";
|
||||||
|
}
|
||||||
|
config.set("BlacklistedBlocks", world_map);
|
||||||
|
|
||||||
|
try {
|
||||||
|
config.save(file.getFile());
|
||||||
|
BetterRTP.getInstance().getRTP().load();
|
||||||
|
BetterRTP.getInstance().getText().getEditSet(sendi, RTP_CMD_LOCATION.BLACKLISTEDBLOCKS.name(), block);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//rtp edit default <max/min/center/useworldborder> <value>
|
||||||
|
//rtp edit world [<world>] <max/min/center/useworldborder> <value>
|
||||||
|
//rtp edit worldtype <world> <value>
|
||||||
|
@Override
|
||||||
|
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||||
|
List<String> list = new ArrayList<>();
|
||||||
|
if (args.length == 2) {
|
||||||
|
for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values())
|
||||||
|
if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase()))
|
||||||
|
list.add(cmd.name().toLowerCase());
|
||||||
|
} else if (args.length == 3) { //rtp edit <sub_cmd> <type>
|
||||||
|
for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values())
|
||||||
|
if (cmd.name().equalsIgnoreCase(args[1])) {
|
||||||
|
switch (cmd) {
|
||||||
|
case WORLD_TYPE:
|
||||||
|
case OVERRIDE:
|
||||||
|
case WORLD: //List all worlds
|
||||||
|
for (World world : Bukkit.getWorlds())
|
||||||
|
if (world.getName().toLowerCase().startsWith(args[2].toLowerCase()))
|
||||||
|
list.add(world.getName());
|
||||||
|
break;
|
||||||
|
case DEFAULT:
|
||||||
|
list.addAll(tabCompleteSub(args, cmd));
|
||||||
|
break;
|
||||||
|
case BLACKLISTEDBLOCKS:
|
||||||
|
list.add("add");
|
||||||
|
list.add("remove");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (args.length == 4) {
|
||||||
|
for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values())
|
||||||
|
if (cmd.name().equalsIgnoreCase(args[1]))
|
||||||
|
switch (cmd) {
|
||||||
|
case WORLD:
|
||||||
|
list.addAll(tabCompleteSub(args, cmd)); break;
|
||||||
|
case DEFAULT:
|
||||||
|
if (args[2].equalsIgnoreCase(RTP_CMD_LOCATION_SUB.CENTER_X.name()))
|
||||||
|
list.add(String.valueOf(((Player) sendi).getLocation().getBlockX()));
|
||||||
|
else if (args[2].equalsIgnoreCase(RTP_CMD_LOCATION_SUB.CENTER_Z.name()))
|
||||||
|
list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ()));
|
||||||
|
break;
|
||||||
|
case WORLD_TYPE:
|
||||||
|
for (WORLD_TYPE _type : WORLD_TYPE.values())
|
||||||
|
list.add(_type.name());
|
||||||
|
break;
|
||||||
|
case OVERRIDE:
|
||||||
|
for (World world : Bukkit.getWorlds())
|
||||||
|
if (world.getName().toLowerCase().startsWith(args[2].toLowerCase()))
|
||||||
|
list.add(world.getName());
|
||||||
|
list.add("REMOVE_OVERRIDE");
|
||||||
|
break;
|
||||||
|
case BLACKLISTEDBLOCKS:
|
||||||
|
if (args[2].equalsIgnoreCase("add")) {
|
||||||
|
for (Material block : Material.values()) {
|
||||||
|
if (list.size() > 20)
|
||||||
|
break;
|
||||||
|
if (block.name().startsWith(args[3].toUpperCase()))
|
||||||
|
list.add(block.name());
|
||||||
|
}
|
||||||
|
} else if (args[2].equalsIgnoreCase("remove")) {
|
||||||
|
for (String block : BetterRTP.getInstance().getRTP().blockList) {
|
||||||
|
if (block.startsWith(args[3]))
|
||||||
|
list.add(block);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (args.length == 5) {
|
||||||
|
for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values())
|
||||||
|
if (cmd.name().equalsIgnoreCase(args[1]))
|
||||||
|
if (cmd == RTP_CMD_LOCATION.WORLD) {
|
||||||
|
if (args[3].equalsIgnoreCase(RTP_CMD_LOCATION_SUB.CENTER_X.name()))
|
||||||
|
list.add(String.valueOf(((Player) sendi).getLocation().getBlockX()));
|
||||||
|
else if (args[3].equalsIgnoreCase(RTP_CMD_LOCATION_SUB.CENTER_Z.name()))
|
||||||
|
list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> tabCompleteSub(String[] args, RTP_CMD_LOCATION cmd) {
|
||||||
|
List<String> list = new ArrayList<>();
|
||||||
|
for (RTP_CMD_LOCATION_SUB sub_cmd : RTP_CMD_LOCATION_SUB.values()) {
|
||||||
|
|
||||||
|
if (sub_cmd.name().toLowerCase().startsWith(args[args.length - 1].toLowerCase()))
|
||||||
|
list.add(sub_cmd.name().toLowerCase());
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean permission(CommandSender sendi) {
|
||||||
|
return BetterRTP.getInstance().getPerms().getEdit(sendi);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void usage(CommandSender sendi, String label, RTP_CMD_LOCATION type) {
|
||||||
|
if (type != null)
|
||||||
|
switch (type) {
|
||||||
|
case DEFAULT:
|
||||||
|
BetterRTP.getInstance().getText().getUsageEditDefault(sendi, label); break;
|
||||||
|
case WORLD:
|
||||||
|
BetterRTP.getInstance().getText().getUsageEditWorld(sendi, label); break;
|
||||||
|
case WORLD_TYPE:
|
||||||
|
BetterRTP.getInstance().getText().getUsageWorldtype(sendi, label); break;
|
||||||
|
case OVERRIDE:
|
||||||
|
BetterRTP.getInstance().getText().getUsageOverride(sendi, label); break;
|
||||||
|
case BLACKLISTEDBLOCKS:
|
||||||
|
BetterRTP.getInstance().getText().getUsageBlacklistedBlocks(sendi, label); break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
BetterRTP.getInstance().getText().getUsageEdit(sendi, label);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getHelp() {
|
||||||
|
return BetterRTP.getInstance().getText().getHelpEdit();
|
||||||
|
}
|
||||||
|
|
||||||
|
enum RTP_CMD_LOCATION {
|
||||||
|
WORLD, DEFAULT, WORLD_TYPE, OVERRIDE, BLACKLISTEDBLOCKS
|
||||||
|
}
|
||||||
|
|
||||||
|
enum RTP_CMD_LOCATION_SUB {
|
||||||
|
CENTER_X("CenterX", "INT"),
|
||||||
|
CENTER_Z("CenterZ", "INT"),
|
||||||
|
MAX("MaxRadius", "INT"),
|
||||||
|
MIN("MinRadius", "INT"),
|
||||||
|
USEWORLDBORDER("UseWorldBorder", "BOL");
|
||||||
|
|
||||||
|
private final String type;
|
||||||
|
private final String str;
|
||||||
|
|
||||||
|
RTP_CMD_LOCATION_SUB(String str, String type) {
|
||||||
|
this.str = str;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
String get() {
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object getResult(String input) {
|
||||||
|
if (this.type.equalsIgnoreCase("INT"))
|
||||||
|
return Integer.parseInt(input);
|
||||||
|
else if (this.type.equalsIgnoreCase("BOL"))
|
||||||
|
return Boolean.valueOf(input);
|
||||||
|
else if (this.type.equalsIgnoreCase("WORLDTYPE")) //WILL CAUSE ERROR IF INCORRECT
|
||||||
|
return WORLD_TYPE.valueOf(input).name();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -27,6 +27,7 @@ public class RTP {
|
|||||||
int maxAttempts, delayTime;
|
int maxAttempts, delayTime;
|
||||||
boolean cancelOnMove, cancelOnDamage;
|
boolean cancelOnMove, cancelOnDamage;
|
||||||
public HashMap<String, WORLD_TYPE> world_type = new HashMap<>();
|
public HashMap<String, WORLD_TYPE> world_type = new HashMap<>();
|
||||||
|
private HashMap<String, WorldLocations> worldLocations = new HashMap<>();
|
||||||
|
|
||||||
public RTPTeleport getTeleport() {
|
public RTPTeleport getTeleport() {
|
||||||
return teleport;
|
return teleport;
|
||||||
@ -40,9 +41,22 @@ public class RTP {
|
|||||||
cancelOnMove = config.getBoolean("Settings.Delay.CancelOnMove");
|
cancelOnMove = config.getBoolean("Settings.Delay.CancelOnMove");
|
||||||
cancelOnDamage = config.getBoolean("Settings.Delay.CancelOnDamage");
|
cancelOnDamage = config.getBoolean("Settings.Delay.CancelOnDamage");
|
||||||
blockList = config.getStringList("BlacklistedBlocks");
|
blockList = config.getStringList("BlacklistedBlocks");
|
||||||
//OVER-RIDES
|
//Overrides
|
||||||
|
loadOverrides();
|
||||||
|
//WorldType
|
||||||
|
loadWorldTypes();
|
||||||
|
//CustomWorlds
|
||||||
|
loadCustomWorlds();
|
||||||
|
//Locations
|
||||||
|
loadWorldLocations();
|
||||||
|
teleport.load(); //Load teleporting stuff
|
||||||
|
permConfig.load(); //Load permission configs
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadOverrides() {
|
||||||
|
overriden.clear();
|
||||||
try {
|
try {
|
||||||
overriden.clear();
|
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
|
||||||
List<Map<?, ?>> override_map = config.getMapList("Overrides");
|
List<Map<?, ?>> override_map = config.getMapList("Overrides");
|
||||||
for (Map<?, ?> m : override_map)
|
for (Map<?, ?> m : override_map)
|
||||||
for (Map.Entry<?, ?> entry : m.entrySet()) {
|
for (Map.Entry<?, ?> entry : m.entrySet()) {
|
||||||
@ -55,9 +69,12 @@ public class RTP {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
//No Overrides
|
//No Overrides
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadWorldTypes() {
|
||||||
|
world_type.clear();
|
||||||
try {
|
try {
|
||||||
world_type.clear();
|
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
|
||||||
for (World world : Bukkit.getWorlds())
|
for (World world : Bukkit.getWorlds())
|
||||||
world_type.put(world.getName(), WORLD_TYPE.NORMAL);
|
world_type.put(world.getName(), WORLD_TYPE.NORMAL);
|
||||||
List<Map<?, ?>> world_map = config.getMapList("WorldType");
|
List<Map<?, ?>> world_map = config.getMapList("WorldType");
|
||||||
@ -88,18 +105,13 @@ public class RTP {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
//No World Types
|
//No World Types
|
||||||
}
|
}
|
||||||
|
|
||||||
loadWorldSettings();
|
|
||||||
teleport.load(); //Load teleporting stuff
|
|
||||||
permConfig.load(); //Load permission configs
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadWorldSettings() {
|
public void loadCustomWorlds() {
|
||||||
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
|
|
||||||
defaultWorld.setup();
|
defaultWorld.setup();
|
||||||
//CUSTOM WORLDS
|
customWorlds.clear();
|
||||||
try {
|
try {
|
||||||
customWorlds.clear();
|
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
|
||||||
List<Map<?, ?>> map = config.getMapList("CustomWorlds");
|
List<Map<?, ?>> map = config.getMapList("CustomWorlds");
|
||||||
for (Map<?, ?> m : map)
|
for (Map<?, ?> m : map)
|
||||||
for (Map.Entry<?, ?> entry : m.entrySet()) {
|
for (Map.Entry<?, ?> entry : m.entrySet()) {
|
||||||
@ -112,6 +124,23 @@ public class RTP {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void loadWorldLocations() {
|
||||||
|
FileBasics.FILETYPE config = FileBasics.FILETYPE.LOCATIONS;
|
||||||
|
worldLocations.clear();
|
||||||
|
if (!config.getBoolean("Settings.Enabled"))
|
||||||
|
return;
|
||||||
|
List<Map<?, ?>> map = config.getMapList("Locations");
|
||||||
|
for (Map<?, ?> m : map)
|
||||||
|
for (Map.Entry<?, ?> entry : m.entrySet()) {
|
||||||
|
WorldLocations location = new WorldLocations(entry.getKey().toString());
|
||||||
|
if (location.isValid()) {
|
||||||
|
worldLocations.put(entry.getKey().toString(), location);
|
||||||
|
if (getPl().getSettings().debug)
|
||||||
|
BetterRTP.debug("- Location '" + entry.getKey() + "' registered");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public List<String> disabledWorlds() {
|
public List<String> disabledWorlds() {
|
||||||
return disabledWorlds;
|
return disabledWorlds;
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public class FileBasics {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public enum FILETYPE {
|
public enum FILETYPE {
|
||||||
CONFIG("config"), ECO("economy"), SIGNS("signs"), EFFECTS("effects");
|
CONFIG("config"), ECO("economy"), SIGNS("signs"), EFFECTS("effects"), LOCATIONS("locations");
|
||||||
|
|
||||||
private final String fileName;
|
private final String fileName;
|
||||||
private final YamlConfiguration config = new YamlConfiguration();
|
private final YamlConfiguration config = new YamlConfiguration();
|
||||||
|
@ -0,0 +1,153 @@
|
|||||||
|
package me.SuperRonanCraft.BetterRTP.references.worlds;
|
||||||
|
|
||||||
|
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPPermissionGroup;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
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.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class WorldLocations implements RTPWorld {
|
||||||
|
private boolean useWorldborder;
|
||||||
|
private int CenterX, CenterZ, maxBorderRad, minBorderRad, price;
|
||||||
|
private List<String> Biomes;
|
||||||
|
private String world;
|
||||||
|
private RTP_SHAPE shape;
|
||||||
|
|
||||||
|
public WorldLocations(String location_name) {
|
||||||
|
FileBasics.FILETYPE config = BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.LOCATIONS);
|
||||||
|
List<Map<?, ?>> map = config.getMapList("Locations");
|
||||||
|
WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld;
|
||||||
|
|
||||||
|
//Find Location and cache its values
|
||||||
|
for (Map<?, ?> m : map) {
|
||||||
|
for (Map.Entry<?, ?> entry : m.entrySet()) {
|
||||||
|
String key = entry.getKey().toString();
|
||||||
|
if (!key.equals(location_name))
|
||||||
|
continue;
|
||||||
|
Map<?, ?> test = ((Map<?, ?>) m.get(key));
|
||||||
|
if (test == null)
|
||||||
|
continue;
|
||||||
|
if (test.get("World") != null) {
|
||||||
|
if (test.get("World").getClass() == String.class)
|
||||||
|
world = test.get("World").toString();
|
||||||
|
} else {
|
||||||
|
BetterRTP.getInstance().getLogger().warning("Location `" + location_name + "` does NOT have a World specified!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (test.get("UseWorldBorder") != null) {
|
||||||
|
if (test.get("UseWorldBorder").getClass() == Boolean.class)
|
||||||
|
useWorldborder = Boolean.parseBoolean(test.get("UseWorldBorder").toString());
|
||||||
|
}
|
||||||
|
if (test.get("CenterX") != null) {
|
||||||
|
if (test.get("CenterX").getClass() == Integer.class)
|
||||||
|
CenterX = Integer.parseInt((test.get("CenterX")).toString());
|
||||||
|
}
|
||||||
|
if (test.get("CenterZ") != null) {
|
||||||
|
if (test.get("CenterZ").getClass() == Integer.class) {
|
||||||
|
CenterZ = Integer.parseInt((test.get("CenterZ")).toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (test.get("MaxRadius") != null) {
|
||||||
|
if (test.get("MaxRadius").getClass() == Integer.class)
|
||||||
|
maxBorderRad = Integer.parseInt((test.get("MaxRadius")).toString());
|
||||||
|
if (maxBorderRad <= 0) {
|
||||||
|
BetterRTP.getInstance().getText().sms(Bukkit.getConsoleSender(),
|
||||||
|
"WARNING! Location '" + location_name + "' Maximum radius of '" + maxBorderRad + "' is not allowed! Set to default value!");
|
||||||
|
maxBorderRad = BetterRTP.getInstance().getRTP().defaultWorld.getMaxRad();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (test.get("MinRadius") != null) {
|
||||||
|
if (test.get("MinRadius").getClass() == Integer.class)
|
||||||
|
minBorderRad = Integer.parseInt((test.get("MinRadius")).toString());
|
||||||
|
if (minBorderRad < 0 || minBorderRad >= maxBorderRad) {
|
||||||
|
BetterRTP.getInstance().getText().sms(Bukkit.getConsoleSender(),
|
||||||
|
"WARNING! Location '" + location_name + "' Minimum radius of '" + minBorderRad + "' is not allowed! Set to default value!");
|
||||||
|
minBorderRad = BetterRTP.getInstance().getRTP().defaultWorld.getMinRad();
|
||||||
|
if (minBorderRad >= maxBorderRad)
|
||||||
|
maxBorderRad = BetterRTP.getInstance().getRTP().defaultWorld.getMaxRad();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (test.get("Biomes") != null) {
|
||||||
|
if (test.get("Biomes").getClass() == ArrayList.class)
|
||||||
|
this.Biomes = new ArrayList<String>((ArrayList) test.get("Biomes"));
|
||||||
|
}
|
||||||
|
if (BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.ECO).getBoolean("Economy.Enabled"))
|
||||||
|
if (test.get("Price") != null) {
|
||||||
|
if (test.get("Price").getClass() == Integer.class)
|
||||||
|
this.price = Integer.parseInt(test.get("Price").toString());
|
||||||
|
else
|
||||||
|
price = worldDefault.getPrice(world);
|
||||||
|
} else
|
||||||
|
price = worldDefault.getPrice(world);
|
||||||
|
if (test.get("Shape") != null) {
|
||||||
|
if (test.get("Shape").getClass() == String.class) {
|
||||||
|
try {
|
||||||
|
this.shape = RTP_SHAPE.valueOf(test.get("Shape").toString().toUpperCase());
|
||||||
|
} catch (Exception e) {
|
||||||
|
//Invalid shape
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isValid() {
|
||||||
|
return world != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public World getWorld() {
|
||||||
|
return Bukkit.getWorld(world);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getUseWorldborder() {
|
||||||
|
return useWorldborder;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getCenterX() {
|
||||||
|
return CenterX;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getCenterZ() {
|
||||||
|
return CenterZ;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxRad() {
|
||||||
|
return maxBorderRad;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMinRad() {
|
||||||
|
return minBorderRad;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPrice() {
|
||||||
|
return price;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getBiomes() {
|
||||||
|
return Biomes;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RTP_SHAPE getShape() {
|
||||||
|
return shape;
|
||||||
|
}
|
||||||
|
}
|
@ -8,11 +8,11 @@
|
|||||||
# MinRadius: 5
|
# MinRadius: 5
|
||||||
Settings:
|
Settings:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
RandomLocations: true #When rtp'ing, a random location will be selected, else the nearest will be selected
|
|
||||||
Locations:
|
Locations:
|
||||||
main_loc:
|
- main_loc:
|
||||||
World: world
|
World: world
|
||||||
CenterX: 100
|
CenterX: 100
|
||||||
CenterY: 150
|
CenterY: 150
|
||||||
MaxRadius: 100
|
MaxRadius: 100 #optional
|
||||||
MinRadius: 5
|
MinRadius: 5 #optional
|
||||||
|
Shape: square #optional
|
Loading…
x
Reference in New Issue
Block a user