added /rtp edit locations/permission_group + rtp setup redo

This commit is contained in:
RonanCraft 2022-04-06 14:22:05 -04:00
parent 6673e279fc
commit c04e8c0e7d
48 changed files with 653 additions and 488 deletions

View File

@ -6,7 +6,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.events.Listener; import me.SuperRonanCraft.BetterRTP.player.events.Listener;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP;
import me.SuperRonanCraft.BetterRTP.references.Permissions; import me.SuperRonanCraft.BetterRTP.references.Permissions;
import me.SuperRonanCraft.BetterRTP.references.Updater; import me.SuperRonanCraft.BetterRTP.references.web.Updater;
import me.SuperRonanCraft.BetterRTP.references.depends.DepEconomy; import me.SuperRonanCraft.BetterRTP.references.depends.DepEconomy;
import me.SuperRonanCraft.BetterRTP.references.file.Files; import me.SuperRonanCraft.BetterRTP.references.file.Files;
import me.SuperRonanCraft.BetterRTP.references.file.Messages; import me.SuperRonanCraft.BetterRTP.references.file.Messages;

View File

@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -33,7 +34,7 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable {
} }
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getBiome(sendi); return PermissionNode.BIOME.check(sendi);
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {

View File

@ -3,17 +3,17 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types;
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.player.rtp.RTP_SHAPE;
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.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_EditWorlds;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WORLD_TYPE; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.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.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.io.IOException;
import java.util.*; import java.util.*;
public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds properties public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds properties
@ -25,65 +25,105 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
@Override @Override
public void execute(CommandSender sendi, String label, String[] args) { public void execute(CommandSender sendi, String label, String[] args) {
if (args.length >= 4) { if (args.length >= 4) {
for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) {
if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) { if (!cmd.name().equalsIgnoreCase(args[1])) continue;
switch (cmd) { switch (cmd) {
case CUSTOMWORLD: case CUSTOMWORLD:
if (args.length >= 5) { if (args.length >= 5) {
for (World world : Bukkit.getWorlds()) { for (World world : Bukkit.getWorlds()) {
if (world.getName().startsWith(args[2])) { if (world.getName().equals(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().equalsIgnoreCase(args[3])) {
editWorld(sendi, sub_cmd, args[2], args[4]); HelperRTP_EditWorlds.editCustomWorld(sendi, sub_cmd, world.getName(), args[4]);
return; return;
} }
usage(sendi, label, cmd); usage(sendi, label, cmd);
return;
}
}
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
return;
}
usage(sendi, label, cmd);
return;
case LOCATION:
if (args.length >= 5) {
for (Map.Entry<String, RTPWorld> location : BetterRTP.getInstance().getRTP().worldLocations.entrySet()) {
if (location.getKey().equals(args[2])) {
for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values())
if (sub_cmd.name().equalsIgnoreCase(args[3])) {
HelperRTP_EditWorlds.editLocation(sendi, sub_cmd, location.getKey(), args[4]);
return;
}
usage(sendi, label, cmd);
return;
}
}
usage(sendi, label, cmd);
return;
}
usage(sendi, label, cmd);
return;
case PERMISSION_GROUP:
if (BetterRTP.getInstance().getSettings().isPermissionGroupEnabled() && args.length >= 6) {
for (String group : BetterRTP.getInstance().getRTP().worldPermissionGroups.keySet()) {
if (group.equals(args[2])) {
for (World world : Bukkit.getWorlds()) {
if (world.getName().equals(args[3])) {
for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values())
if (sub_cmd.name().toLowerCase().startsWith(args[4].toLowerCase())) {
HelperRTP_EditWorlds.editPermissionGroup(sendi, sub_cmd, group, world.getName(), args[5]);
return;
}
usage(sendi, label, cmd);
return;
}
BetterRTP.getInstance().getText().getNotExist(sendi, args[3]);
return; return;
} }
} }
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); }
}
usage(sendi, label, cmd);
return;
case DEFAULT:
for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values())
if (sub_cmd.name().equalsIgnoreCase(args[2].toLowerCase())) {
HelperRTP_EditWorlds.editDefault(sendi, sub_cmd, args[3]);
return; return;
} }
usage(sendi, label, cmd); usage(sendi, label, cmd);
return; return;
case DEFAULT: case WORLD_TYPE:
for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values()) for (World world : Bukkit.getWorlds()) {
if (sub_cmd.name().toLowerCase().startsWith(args[2].toLowerCase())) { if (world.getName().equals(args[2])) {
editDefault(sendi, sub_cmd, args[3]); HelperRTP_EditWorlds.editWorldtype(sendi, args[2], args[3]);
return; //usage(sendi, label, cmd);
} 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; BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
case OVERRIDE: return;
for (World world : Bukkit.getWorlds()) { case OVERRIDE:
if (world.getName().startsWith(args[2])) { for (World world : Bukkit.getWorlds()) {
editOverride(sendi, args[2], args[3]); if (world.getName().equals(args[2])) {
//usage(sendi, label, cmd); HelperRTP_EditWorlds.editOverride(sendi, args[2], args[3]);
return; //usage(sendi, label, cmd);
} return;
} }
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); }
return; BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
case BLACKLISTEDBLOCKS: return;
if (args[2].equalsIgnoreCase("add")) { case BLACKLISTEDBLOCKS:
editBlacklisted(sendi, args[3], true); if (args[2].equalsIgnoreCase("add")) {
} else if (args[2].equalsIgnoreCase("remove")) { HelperRTP_EditWorlds.editBlacklisted(sendi, args[3], true);
editBlacklisted(sendi, args[3], false); } else if (args[2].equalsIgnoreCase("remove")) {
} else HelperRTP_EditWorlds.editBlacklisted(sendi, args[3], false);
usage(sendi, label, cmd); } else
return; usage(sendi, label, cmd);
} return;
} }
}
} else if (args.length >= 2) { } else if (args.length >= 2) {
for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values())
if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) { if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) {
@ -91,231 +131,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
return; return;
} }
} }
usage(sendi, label, null); usage(sendi, label, null);
}
private void editLocation(CommandSender sendi, RTP_CMD_EDIT_SUB cmd, String location, String val) {
Object value;
try {
value = cmd.getResult(val);
} catch (Exception e) {
e.printStackTrace();
BetterRTP.getInstance().getText().getEditError(sendi);
return;
}
if (value == null) {
BetterRTP.getInstance().getText().getEditError(sendi);
return;
}
FileBasics.FILETYPE file = FileBasics.FILETYPE.LOCATIONS;
YamlConfiguration config = file.getConfig();
List<Map<?, ?>> map = config.getMapList("Locations");
boolean found = false;
for (Map<?, ?> m : map) {
for (Map.Entry<?, ?> entry : m.entrySet()) {
if (entry.getKey().toString().equals(location)) {
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) {
config.set("Locations", map);
try {
config.save(file.getFile());
BetterRTP.getInstance().getRTP().loadLocations();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void editWorld(CommandSender sendi, RTP_CMD_EDIT_SUB cmd, String world, String val) {
Object value;
try {
value = cmd.getResult(val);
} catch (Exception e) {
e.printStackTrace();
BetterRTP.getInstance().getText().getEditError(sendi);
return;
}
if (value == null) {
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().loadWorlds();
} catch (IOException e) {
e.printStackTrace();
}
}
private void editDefault(CommandSender sendi, RTP_CMD_EDIT_SUB cmd, String val) {
Object value;
try {
value = cmd.getResult(val);
} catch (Exception e) {
e.printStackTrace();
BetterRTP.getInstance().getText().getEditError(sendi);
return;
}
if (value == null) {
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().loadWorlds();
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_EDIT.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_EDIT.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_EDIT.BLACKLISTEDBLOCKS.name(), block);
} catch (IOException e) {
e.printStackTrace();
}
} }
//rtp edit default <max/min/center/useworldborder> <value> //rtp edit default <max/min/center/useworldborder> <value>
@ -339,6 +155,16 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
if (world.getName().toLowerCase().startsWith(args[2].toLowerCase())) if (world.getName().toLowerCase().startsWith(args[2].toLowerCase()))
list.add(world.getName()); list.add(world.getName());
break; break;
case PERMISSION_GROUP:
for (String group : BetterRTP.getInstance().getRTP().worldPermissionGroups.keySet())
if (group.toLowerCase().startsWith(args[2].toLowerCase()))
list.add(group);
break;
case LOCATION:
for (String location : BetterRTP.getInstance().getRTP().worldLocations.keySet())
if (location.toLowerCase().startsWith(args[2].toLowerCase()))
list.add(location);
break;
case DEFAULT: case DEFAULT:
list.addAll(tabCompleteSub(args, cmd)); list.addAll(tabCompleteSub(args, cmd));
break; break;
@ -353,7 +179,13 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
if (cmd.name().equalsIgnoreCase(args[1])) if (cmd.name().equalsIgnoreCase(args[1]))
switch (cmd) { switch (cmd) {
case CUSTOMWORLD: case CUSTOMWORLD:
case LOCATION:
list.addAll(tabCompleteSub(args, cmd)); break; list.addAll(tabCompleteSub(args, cmd)); break;
case PERMISSION_GROUP:
for (World world : Bukkit.getWorlds())
if (world.getName().toLowerCase().startsWith(args[3].toLowerCase()))
list.add(world.getName());
break;
case DEFAULT: case DEFAULT:
if (args[2].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name())) if (args[2].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name()))
list.add(String.valueOf(((Player) sendi).getLocation().getBlockX())); list.add(String.valueOf(((Player) sendi).getLocation().getBlockX()));
@ -389,19 +221,38 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
} else if (args.length == 5) { } else if (args.length == 5) {
for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values())
if (cmd.name().equalsIgnoreCase(args[1])) if (cmd.name().equalsIgnoreCase(args[1]))
if (cmd == RTP_CMD_EDIT.CUSTOMWORLD) { switch (cmd) {
if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name())) case CUSTOMWORLD:
list.add(String.valueOf(((Player) sendi).getLocation().getBlockX())); case LOCATION:
else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name())) if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name()))
list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ())); list.add(String.valueOf(((Player) sendi).getLocation().getBlockX()));
else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.SHAPE.name())) else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name()))
for (RTP_SHAPE shape : RTP_SHAPE.values()) list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ()));
list.add(shape.name().toLowerCase()); else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.SHAPE.name()))
/*else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.BIOME_ADD.name())) for (RTP_SHAPE shape : RTP_SHAPE.values())
for (Biome biome : Biome.values()) { list.add(shape.name().toLowerCase());
if (biome.name().toLowerCase().startsWith(args[4].toLowerCase()) && list.size() < 20) /*else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.BIOME_ADD.name()))
list.add(biome.name()); for (Biome biome : Biome.values()) {
}*/ if (biome.name().toLowerCase().startsWith(args[4].toLowerCase()) && list.size() < 20)
list.add(biome.name());
}*/
break;
case PERMISSION_GROUP:
list.addAll(tabCompleteSub(args, cmd)); break;
}
} else if (args.length == 6) {
for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values())
if (cmd.name().equalsIgnoreCase(args[1]))
switch (cmd) {
case PERMISSION_GROUP:
if (args[4].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name()))
list.add(String.valueOf(((Player) sendi).getLocation().getBlockX()));
else if (args[4].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name()))
list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ()));
else if (args[4].equalsIgnoreCase(RTP_CMD_EDIT_SUB.SHAPE.name()))
for (RTP_SHAPE shape : RTP_SHAPE.values())
list.add(shape.name().toLowerCase());
break;
} }
} }
return list; return list;
@ -419,7 +270,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
@Override @Override
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getEdit(sendi); return PermissionNode.EDIT.check(sendi);
} }
private void usage(CommandSender sendi, String label, RTP_CMD_EDIT type) { private void usage(CommandSender sendi, String label, RTP_CMD_EDIT type) {
@ -435,6 +286,10 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
BetterRTP.getInstance().getText().getUsageOverride(sendi, label); break; BetterRTP.getInstance().getText().getUsageOverride(sendi, label); break;
case BLACKLISTEDBLOCKS: case BLACKLISTEDBLOCKS:
BetterRTP.getInstance().getText().getUsageBlacklistedBlocks(sendi, label); break; BetterRTP.getInstance().getText().getUsageBlacklistedBlocks(sendi, label); break;
case PERMISSION_GROUP:
BetterRTP.getInstance().getText().getUsagePermissionGroup(sendi, label); break;
case LOCATION:
BetterRTP.getInstance().getText().getUsageEditLocation(sendi, label); break;
} }
else else
BetterRTP.getInstance().getText().getUsageEdit(sendi, label); BetterRTP.getInstance().getText().getUsageEdit(sendi, label);
@ -445,11 +300,19 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
return BetterRTP.getInstance().getText().getHelpEdit(); return BetterRTP.getInstance().getText().getHelpEdit();
} }
enum RTP_CMD_EDIT { public enum RTP_CMD_EDIT {
CUSTOMWORLD, /*LOCATION,*/ DEFAULT, WORLD_TYPE, OVERRIDE, BLACKLISTEDBLOCKS //Mapped
CUSTOMWORLD,
PERMISSION_GROUP,
LOCATION,
//Custom Coded
DEFAULT,
WORLD_TYPE,
OVERRIDE,
BLACKLISTEDBLOCKS
} }
enum RTP_CMD_EDIT_SUB { //Only for World and Default public 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"),
MAXRAD("MaxRadius", "INT"), MAXRAD("MaxRadius", "INT"),
@ -469,11 +332,11 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
this.type = type; this.type = type;
} }
String get() { public String get() {
return str; return str;
} }
Object getResult(String input) { public Object getResult(String input) {
if (this.type.equalsIgnoreCase("INT")) if (this.type.equalsIgnoreCase("INT"))
return Integer.parseInt(input); return Integer.parseInt(input);
else if (this.type.equalsIgnoreCase("BOL")) else if (this.type.equalsIgnoreCase("BOL"))

View File

@ -5,6 +5,7 @@ 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.player.rtp.RTPSetupInformation;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldDefault; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldDefault;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
@ -34,7 +35,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
infoEffects(sendi); infoEffects(sendi);
else if (args[1].equalsIgnoreCase(CmdInfoSub.WORLD.name())) { else if (args[1].equalsIgnoreCase(CmdInfoSub.WORLD.name())) {
if (args.length > 2 && Bukkit.getWorld(args[2]) != null) { if (args.length > 2 && Bukkit.getWorld(args[2]) != null) {
sendInfoWorld(sendi, infoGetWorld(sendi, Bukkit.getWorld(args[2]), null)); sendInfoWorld(sendi, infoGetWorld(sendi, Bukkit.getWorld(args[2]), null, null));
} else if (sendi instanceof Player) { //Personalize with permission groups } else if (sendi instanceof Player) { //Personalize with permission groups
World world = null; World world = null;
Player player = null; Player player = null;
@ -45,7 +46,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
} }
if (world == null) if (world == null)
world = ((Player) sendi).getWorld(); world = ((Player) sendi).getWorld();
sendInfoWorld(sendi, infoGetWorld(sendi, world, player)); sendInfoWorld(sendi, infoGetWorld(sendi, world, player, null));
} else } else
infoWorld(sendi); infoWorld(sendi);
} }
@ -96,7 +97,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
} }
//World //World
private void sendInfoWorld(CommandSender sendi, List<String> list) { //Send info public static void sendInfoWorld(CommandSender sendi, List<String> list) { //Send info
list.add(0, "&e&m-----&6 BetterRTP &8| Info &e&m-----"); list.add(0, "&e&m-----&6 BetterRTP &8| Info &e&m-----");
list.forEach(str -> list.forEach(str ->
list.set(list.indexOf(str), BetterRTP.getInstance().getText().color(str))); list.set(list.indexOf(str), BetterRTP.getInstance().getText().color(str)));
@ -106,17 +107,17 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
private void infoWorld(CommandSender sendi) { //All worlds private void infoWorld(CommandSender sendi) { //All worlds
List<String> info = new ArrayList<>(); List<String> info = new ArrayList<>();
for (World w : Bukkit.getWorlds()) for (World w : Bukkit.getWorlds())
info.addAll(infoGetWorld(sendi, w, null)); info.addAll(infoGetWorld(sendi, w, null, null));
sendInfoWorld(sendi, info); sendInfoWorld(sendi, info);
} }
private List<String> infoGetWorld(CommandSender sendi, World w, Player player) { //Specific world public static List<String> infoGetWorld(CommandSender sendi, World w, Player player, WorldPlayer _rtpworld) { //Specific world
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("&bRTP info for &7" + w.getName() + (player != null ? " &d(personalized)" : "")); info.add("&bRTP info for &7" + w.getName() + (player != null ? " &d(personalized)" : ""));
info.add("&7- &eViewing as: &b" + (player != null ? player.getName() : "ADMIN")); info.add("&7- &eViewing as: &b" + (player != null ? player.getName() : "ADMIN"));
info.add("&7- &6Allowed: " + (player != null ? pl.getPerms().getAWorld(player, w.getName()) ? _true : _false : "&cN/A")); info.add("&7- &6Allowed: " + (player != null ? PermissionNode.getAWorld(player, w.getName()) ? _true : _false : "&cN/A"));
if (pl.getRTP().getDisabledWorlds().contains(w.getName())) //World disabled if (pl.getRTP().getDisabledWorlds().contains(w.getName())) //World disabled
info.add("&7- &eDisabled: " + _true); info.add("&7- &eDisabled: " + _true);
else { else {
@ -125,7 +126,8 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
info.add("&7- &6Overriden: " + _true + " &7- target `" + 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(new RTPSetupInformation(w, player != null ? player : sendi, player, player != null)); if (_rtpworld == null)
_rtpworld = BetterRTP.getInstance().getRTP().getPlayerWorld(new RTPSetupInformation(w, player != null ? player : sendi, player, player != null));
WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld; WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld;
info.add("&7- &eSetup Type&7: " + _rtpworld.setup_type.name() + getInfo(_rtpworld, worldDefault, "setup")); info.add("&7- &eSetup 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));
@ -146,7 +148,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
} }
//Janky, but it works //Janky, but it works
private String getInfo(WorldPlayer worldPlayer, WorldDefault worldDefault, String type) { private static 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)" : " &8(default)" : ""; return worldPlayer.getUseWorldborder() || worldPlayer.getCenterX() == worldDefault.getCenterX() ? worldPlayer.getUseWorldborder() ? " &8(worldborder)" : " &8(default)" : "";
@ -203,6 +205,6 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
} }
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getInfo(sendi); return PermissionNode.INFO.check(sendi);
} }
} }

View File

@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations;
@ -39,7 +40,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
usage(sendi, label); usage(sendi, label);
} else } else
sendi.sendMessage("Console is not able to execute this command! Try '/rtp help'"); sendi.sendMessage("Console is not able to execute this command! Try '/rtp help'");
} else if (args.length == 3 && BetterRTP.getInstance().getPerms().getRtpOther(sendi)) { } else if (args.length == 3 && PermissionNode.RTP_OTHER.check(sendi)) {
Player p = Bukkit.getPlayer(args[2]); Player p = Bukkit.getPlayer(args[2]);
if (p != null && p.isOnline()) { if (p != null && p.isOnline()) {
for (String location_name : getLocations(sendi, null).keySet()) { for (String location_name : getLocations(sendi, null).keySet()) {
@ -63,7 +64,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
for (String location_name : getLocations(sendi, null).keySet()) for (String location_name : getLocations(sendi, null).keySet())
if (location_name.toLowerCase().startsWith(args[1].toLowerCase())) if (location_name.toLowerCase().startsWith(args[1].toLowerCase()))
list.add(location_name); list.add(location_name);
} else if (args.length == 3 && BetterRTP.getInstance().getPerms().getRtpOther(sendi)) { } else if (args.length == 3 && PermissionNode.RTP_OTHER.check(sendi)) {
for (Player p : Bukkit.getOnlinePlayers()) for (Player p : Bukkit.getOnlinePlayers())
if (p.getName().toLowerCase().startsWith(args[2].toLowerCase())) if (p.getName().toLowerCase().startsWith(args[2].toLowerCase()))
list.add(p.getName()); list.add(p.getName());
@ -72,7 +73,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
} }
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getLocation(sendi); return PermissionNode.LOCATION.check(sendi);
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {
@ -88,7 +89,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
if (BetterRTP.getInstance().getSettings().isLocationNeedPermission()) { if (BetterRTP.getInstance().getSettings().isLocationNeedPermission()) {
HashMap<String, RTPWorld> locations = new HashMap<>(); HashMap<String, RTPWorld> locations = new HashMap<>();
for (Map.Entry<String, RTPWorld> location : getLocations().entrySet()) for (Map.Entry<String, RTPWorld> location : getLocations().entrySet())
if (BetterRTP.getInstance().getPerms().getLocation(sendi, location.getKey())) { if (PermissionNode.getLocation(sendi, location.getKey())) {
if (world == null || location.getValue().getWorld().equals(world)) if (world == null || location.getValue().getWorld().equals(world))
locations.put(location.getKey(), location.getValue()); locations.put(location.getKey(), location.getValue());
} }

View File

@ -6,6 +6,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -64,7 +65,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
} }
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getRtpOther(sendi); return PermissionNode.RTP_OTHER.check(sendi);
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {

View File

@ -3,6 +3,7 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types;
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.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import java.util.List; import java.util.List;
@ -22,7 +23,7 @@ public class CmdReload implements RTPCommand, RTPCommandHelpable {
} }
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getReload(sendi); return PermissionNode.RELOAD.check(sendi);
} }
@Override @Override

View File

@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types;
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.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS; import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -27,7 +28,7 @@ public class CmdSettings implements RTPCommand, RTPCommandHelpable {
} }
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getSettings(sendi); return PermissionNode.SETTINGS.check(sendi);
} }
@Override @Override

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.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -32,7 +33,7 @@ public class CmdTest implements RTPCommand, RTPCommandHelpable {
@Override @Override
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getTest(sendi); return PermissionNode.TEST.check(sendi);
} }
@Override @Override

View File

@ -3,6 +3,7 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import java.util.List; import java.util.List;
@ -22,7 +23,7 @@ public class CmdVersion implements RTPCommand, RTPCommandHelpable {
} }
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getVersion(sendi); return PermissionNode.VERSION.check(sendi);
} }
@Override @Override

View File

@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -24,6 +25,8 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
public void execute(CommandSender sendi, String label, String[] args) { public void execute(CommandSender sendi, String label, String[] args) {
if (args.length >= 2) { if (args.length >= 2) {
World world = Bukkit.getWorld(args[1]); World world = Bukkit.getWorld(args[1]);
if (world == null) //Check if world has spaces instead of underscores
world = Bukkit.getWorld(args[1].replace("_", " "));
if (world != null) if (world != null)
CmdTeleport.teleport(sendi, label, world, HelperRTP_Info.getBiomes(args, 2, sendi)); CmdTeleport.teleport(sendi, label, world, HelperRTP_Info.getBiomes(args, 2, sendi));
else else
@ -38,7 +41,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
for (World w : Bukkit.getWorlds()) { for (World w : Bukkit.getWorlds()) {
String _wName = w.getName().replace(" ", "_"); String _wName = w.getName().replace(" ", "_");
if (w.getName().startsWith(args[1]) && !BetterRTP.getInstance().getRTP().getDisabledWorlds().contains(_wName) if (w.getName().startsWith(args[1]) && !BetterRTP.getInstance().getRTP().getDisabledWorlds().contains(_wName)
&& BetterRTP.getInstance().getPerms().getAWorld(sendi, _wName)) && PermissionNode.getAWorld(sendi, _wName))
list.add(_wName); list.add(_wName);
} }
} else if (args.length >= 3) { } else if (args.length >= 3) {
@ -49,7 +52,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
} }
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getWorld(sendi); return PermissionNode.WORLD.check(sendi);
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTP.player.events; package me.SuperRonanCraft.BetterRTP.player.events;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@ -46,7 +47,7 @@ class Interact {
} }
void createSign(SignChangeEvent e) { void createSign(SignChangeEvent e) {
if (enabled && BetterRTP.getInstance().getPerms().getSignCreate(e.getPlayer())) { if (enabled && PermissionNode.SIGN_CREATE.check(e.getPlayer())) {
String line = e.getLine(0); String line = e.getLine(0);
if (line != null && (line.equalsIgnoreCase(title) || if (line != null && (line.equalsIgnoreCase(title) ||
line.equalsIgnoreCase("[RTP]"))) { line.equalsIgnoreCase("[RTP]"))) {

View File

@ -2,7 +2,8 @@ package me.SuperRonanCraft.BetterRTP.player.events;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.Updater; import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.web.Updater;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -22,7 +23,7 @@ public class Join {
//Updater //Updater
private void updater(Player p) { private void updater(Player p) {
if (!getPl().getFiles().getType(FileBasics.FILETYPE.CONFIG).getBoolean("Settings.DisableUpdater") && getPl().getPerms().getUpdate(p)) if (!getPl().getFiles().getType(FileBasics.FILETYPE.CONFIG).getBoolean("Settings.DisableUpdater") && PermissionNode.UPDATER.check(p))
if (!getPl().getDescription().getVersion().equals(Updater.updatedVersion)) if (!getPl().getDescription().getVersion().equals(Updater.updatedVersion))
getPl().getText().sms(p, "&7There is currently an update for &6BetterRTP &7version &e#" + getPl().getText().sms(p, "&7There is currently an update for &6BetterRTP &7version &e#" +
Updater.updatedVersion + " &7you have version &e#" + getPl().getDescription().getVersion()); Updater.updatedVersion + " &7you have version &e#" + getPl().getDescription().getVersion());

View File

@ -2,6 +2,9 @@ package me.SuperRonanCraft.BetterRTP.player.rtp;
import lombok.Getter; import lombok.Getter;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdInfo;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdWorld;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
@ -65,6 +68,10 @@ public class RTP {
RTPLoader.loadLocations(worldLocations); RTPLoader.loadLocations(worldLocations);
} }
public void loadPermissionGroups() { //Keeping this here because of the edit command
RTPLoader.loadPermissionGroups(worldPermissionGroups);
}
public WorldPlayer getPlayerWorld(RTPSetupInformation setup_info) { public WorldPlayer getPlayerWorld(RTPSetupInformation setup_info) {
WorldPlayer pWorld = new WorldPlayer(setup_info.getPlayer(), setup_info.getWorld()); WorldPlayer pWorld = new WorldPlayer(setup_info.getPlayer(), setup_info.getWorld());
@ -94,7 +101,7 @@ public class RTP {
for (Map.Entry<String, PermissionGroup> permissionGroup : BetterRTP.getInstance().getRTP().worldPermissionGroups.entrySet()) { for (Map.Entry<String, PermissionGroup> permissionGroup : BetterRTP.getInstance().getRTP().worldPermissionGroups.entrySet()) {
for (Map.Entry<String, WorldPermissionGroup> worldPermission : permissionGroup.getValue().getWorlds().entrySet()) { for (Map.Entry<String, WorldPermissionGroup> worldPermission : permissionGroup.getValue().getWorlds().entrySet()) {
if (pWorld.getWorld().equals(worldPermission.getValue().getWorld())) { if (pWorld.getWorld().equals(worldPermission.getValue().getWorld())) {
if (BetterRTP.getInstance().getPerms().getPermissionGroup(pWorld.getPlayer(), permissionGroup.getKey())) { if (PermissionNode.getPermissionGroup(pWorld.getPlayer(), permissionGroup.getKey())) {
if (group != null) { if (group != null) {
if (group.getPriority() < worldPermission.getValue().getPriority()) if (group.getPriority() < worldPermission.getValue().getPriority())
continue; continue;
@ -137,56 +144,14 @@ public class RTP {
public void start(RTPSetupInformation setup_info) { public void start(RTPSetupInformation setup_info) {
RTP_SettingUpEvent setup = new RTP_SettingUpEvent(setup_info.getPlayer()); RTP_SettingUpEvent setup = new RTP_SettingUpEvent(setup_info.getPlayer());
Bukkit.getPluginManager().callEvent(setup); Bukkit.getPluginManager().callEvent(setup);
if (setup.isCancelled()) { if (setup.isCancelled())
return; return;
}
World world_name = setup_info.getWorld();
Player p = setup_info.getPlayer();
CommandSender sendi = setup_info.getSender(); CommandSender sendi = setup_info.getSender();
// Locations
if (setup_info.getLocation() != null) {
WorldLocations location = setup_info.getLocation();
world_name = location.getWorld();
setup_info.setWorld(world_name);
setup_info.setBiomes(location.getBiomes());
}
// Check overrides
if (world_name == null && p != null) {
world_name = p.getWorld();
}// else { // Check if nulled or world doesnt exist
//World _world = world_name;//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;
}*/
//}
//No World was sent???
if (world_name == null) {
BetterRTP.getInstance().getText().error(sendi);
return;
}
if (overriden.containsKey(world_name.getName())) {
world_name = Bukkit.getWorld(overriden.get(world_name.getName()));
setup_info.setWorld(world_name);
}
// Not forced and has 'betterrtp.world.<world>'
if (sendi == p && !getPl().getPerms().getAWorld(sendi, world_name.getName())) {
getPl().getText().getNoPermissionWorld(p, world_name.getName());
return;
}
// Check disabled worlds
if (disabledWorlds.contains(world_name.getName())) {
getPl().getText().getDisabledWorld(sendi, world_name.getName());
return;
}
WorldPlayer pWorld = getPlayerWorld(setup_info); WorldPlayer pWorld = getPlayerWorld(setup_info);
//Debugging!
//CmdInfo.sendInfoWorld(sendi, CmdInfo.infoGetWorld(sendi, setup_info.getWorld(), setup_info.getPlayer(), pWorld));
// Economy // Economy
if (!getPl().getEco().hasBalance(sendi, pWorld)) if (!getPl().getEco().hasBalance(sendi, pWorld))
return; return;

View File

@ -25,18 +25,16 @@ public class RTPLoader {
for (Map<?, ?> m : map) for (Map<?, ?> m : map)
for (Map.Entry<?, ?> entry : m.entrySet()) { for (Map.Entry<?, ?> entry : m.entrySet()) {
String world = entry.getKey().toString(); String world = entry.getKey().toString();
customWorlds.put(world, new WorldCustom(world));
AtomicBoolean exists = new AtomicBoolean(false); AtomicBoolean exists = new AtomicBoolean(false);
Bukkit.getWorlds().forEach(w -> { Bukkit.getWorlds().forEach(w -> {
if (w.getName().equals(world)) if (w.getName().equals(world))
exists.set(true); exists.set(true);
}); });
if (getPl().getSettings().isDebug()) { if (exists.get()) {
if (exists.get()) customWorlds.put(world, new WorldCustom(Bukkit.getWorld(world)));
BetterRTP.debug("- Custom World '" + world + "' successfully registered"); BetterRTP.debug("- Custom World '" + world + "' successfully registered");
else } else
BetterRTP.debug("[WARN] - Custom World '" + world + "' registered but world does NOT exist"); BetterRTP.debug("[WARN] - Custom World '" + world + "' was not registered because world does NOT exist");
}
} }
} catch (Exception e) { } catch (Exception e) {
//No Custom Worlds //No Custom Worlds
@ -119,7 +117,7 @@ public class RTPLoader {
static void loadPermissionGroups(@NotNull HashMap<String, PermissionGroup> permissionGroup) { static void loadPermissionGroups(@NotNull HashMap<String, PermissionGroup> permissionGroup) {
permissionGroup.clear(); permissionGroup.clear();
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG; FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
if (!config.getBoolean("PermissionGroup.Enabled")) if (!getPl().getSettings().isPermissionGroupEnabled())
return; return;
BetterRTP.debug("Loading Permission Groups..."); BetterRTP.debug("Loading Permission Groups...");
try { try {

View File

@ -13,7 +13,13 @@ public class Permissions {
depPerms.register(); depPerms.register();
} }
private final String pre = "betterrtp."; public boolean checkPerm(String str, CommandSender sendi) {
return depPerms.hasPerm(str, sendi);
}
}
//Moved to PermissionNode.NODE
/*private final String pre = "betterrtp.";
public boolean getUse(CommandSender sendi) { public boolean getUse(CommandSender sendi) {
return checkPerm(pre + "use", sendi); return checkPerm(pre + "use", sendi);
@ -101,9 +107,4 @@ public class Permissions {
public boolean getPermissionGroup(CommandSender sendi, String group) { public boolean getPermissionGroup(CommandSender sendi, String group) {
return checkPerm(pre + "group." + group, sendi); return checkPerm(pre + "group." + group, sendi);
} }*/
public boolean checkPerm(String str, CommandSender sendi) {
return depPerms.hasPerm(str, sendi);
}
}

View File

@ -1,5 +1,6 @@
package me.SuperRonanCraft.BetterRTP.references.depends; package me.SuperRonanCraft.BetterRTP.references.depends;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
@ -33,7 +34,7 @@ public class DepEconomy {
} }
} }
//Economy Stuff //Economy Stuff
if (e != null && pWorld.getPrice() != 0 && !BetterRTP.getInstance().getPerms().getBypassEconomy(sendi)) { if (e != null && pWorld.getPrice() != 0 && !PermissionNode.BYPASS_ECONOMY.check(sendi)) {
try { try {
EconomyResponse r = e.withdrawPlayer(player, pWorld.getPrice()); EconomyResponse r = e.withdrawPlayer(player, pWorld.getPrice());
boolean passed_economy = r.transactionSuccess(); boolean passed_economy = r.transactionSuccess();
@ -57,7 +58,7 @@ public class DepEconomy {
Player player = pWorld.getPlayer(); Player player = pWorld.getPlayer();
//Hunger Stuff //Hunger Stuff
if (hunger != 0 if (hunger != 0
&& !BetterRTP.getInstance().getPerms().getBypassHunger(sendi) && !PermissionNode.BYPASS_HUNGER.check(sendi)
&& (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) { && (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) {
boolean has_hunger = player.getFoodLevel() > hunger; boolean has_hunger = player.getFoodLevel() > hunger;
if (!has_hunger) { if (!has_hunger) {
@ -66,7 +67,7 @@ public class DepEconomy {
} }
} }
//Economy Stuff //Economy Stuff
if (e != null && pWorld.getPrice() != 0 && !BetterRTP.getInstance().getPerms().getBypassEconomy(sendi)) { if (e != null && pWorld.getPrice() != 0 && !PermissionNode.BYPASS_ECONOMY.check(sendi)) {
try { try {
boolean passed_economy = e.getBalance(player) >= pWorld.getPrice(); boolean passed_economy = e.getBalance(player) >= pWorld.getPrice();
if (!passed_economy) { if (!passed_economy) {

View File

@ -242,6 +242,10 @@ public class Messages {
sms(sendi, getLang().getString(preU + "Location").replaceAll("%command%", cmd)); sms(sendi, getLang().getString(preU + "Location").replaceAll("%command%", cmd));
} }
public void getUsageEditLocation(CommandSender sendi, String cmd) {
sms(sendi, getLang().getString(preU + "Edit.Location").replaceAll("%command%", cmd));
}
public void getUsageEdit(CommandSender sendi, String cmd) { public void getUsageEdit(CommandSender sendi, String cmd) {
sms(sendi, getLang().getString(preU + "Edit.Base").replaceAll("%command%", cmd)); sms(sendi, getLang().getString(preU + "Edit.Base").replaceAll("%command%", cmd));
} }
@ -266,6 +270,10 @@ public class Messages {
sms(sendi, getLang().getString(preU + "Edit.BlacklistedBlocks").replaceAll("%command%", cmd)); sms(sendi, getLang().getString(preU + "Edit.BlacklistedBlocks").replaceAll("%command%", cmd));
} }
public void getUsagePermissionGroup(CommandSender sendi, String cmd) {
sms(sendi, getLang().getString(preU + "Edit.PermissionGroup").replaceAll("%command%", cmd));
}
// Not Found // Not Found
public void error(CommandSender sendi) { public void error(CommandSender sendi) {
sms(sendi, "&cERROR &7Seems like your Administrator did not update their language file!"); sms(sendi, "&cERROR &7Seems like your Administrator did not update their language file!");

View File

@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdLocation; import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdLocation;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation; 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.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
@ -40,67 +41,74 @@ public class HelperRTP {
public static void tp(@NotNull Player player, CommandSender sendi, @Nullable World world, List<String> biomes, RTP_TYPE rtpType, public static void tp(@NotNull Player player, CommandSender sendi, @Nullable World world, List<String> biomes, RTP_TYPE rtpType,
boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) { boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) {
if (isRTPing(player, sendi)) { //Is RTP'ing if (isRTPing(player, sendi)) //Is RTP'ing
if (world == null) return;
world = player.getWorld(); if (world == null)
if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName())) world = player.getWorld();
world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName())); if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName()))
if (ignoreCooldown || isCoolingDown(sendi, player, world)) { //Is Cooling down world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
boolean delay = false; // Not forced and has 'betterrtp.world.<world>'
if (!ignoreDelay && sendi == player) //Forced? if (sendi == player && !PermissionNode.getAWorld(sendi, world.getName())) {
if (getPl().getSettings().isDelayEnabled() && getPl().getSettings().getDelayTime() > 0) //Delay enabled? getPl().getText().getNoPermissionWorld(player, world.getName());
if (!getPl().getPerms().getBypassDelay(player)) //Can bypass? return;
delay = true; }
RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true, // Check disabled worlds
biomes, delay, rtpType, locations, !ignoreCooldown && cooldownApplies(sendi, player)); //ignore cooldown or else if (getPl().getRTP().getDisabledWorlds().contains(world.getName())) {
getPl().getRTP().start(setup_info); getPl().getText().getDisabledWorld(sendi, world.getName());
} return;
}
boolean delay = false;
if (!ignoreDelay && sendi == player) //Forced?
if (getPl().getSettings().isDelayEnabled() && getPl().getSettings().getDelayTime() > 0) //Delay enabled?
if (!PermissionNode.BYPASS_DELAY.check(player)) //Can bypass?
delay = true;
RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true,
biomes, delay, rtpType, locations, !ignoreCooldown && cooldownApplies(sendi, player)); //ignore cooldown or else
if (ignoreCooldown || isCoolingDown(sendi, player, setup_info)) { //Is Cooling down
getPl().getRTP().start(setup_info);
} }
} }
private static boolean isRTPing(Player player, CommandSender sendi) { private static boolean isRTPing(Player player, CommandSender sendi) {
if (getPl().getpInfo().getRtping().containsKey(player) && getPl().getpInfo().getRtping().get(player)) { if (getPl().getpInfo().getRtping().getOrDefault(player, false)) {
getPl().getText().getAlready(sendi); getPl().getText().getAlready(sendi);
return false; return true;
} }
return true; return false;
} }
private static boolean isCoolingDown(CommandSender sendi, Player player, World world) { private static boolean isCoolingDown(CommandSender sendi, Player player, RTPSetupInformation setupInfo) {
if (cooldownApplies(sendi, player)) { //Bypassing/Forced? if (!cooldownApplies(sendi, player)) //Bypassing/Forced?
CooldownHandler cooldownHandler = getPl().getCooldowns(); return true;
if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download CooldownHandler cooldownHandler = getPl().getCooldowns();
getPl().getText().getCooldown(sendi, String.valueOf(-1L)); if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download
getPl().getText().getCooldown(sendi, String.valueOf(-1L));
return false;
}
//Cooldown Data
CooldownData cooldownData = getPl().getCooldowns().get(player, setupInfo.getWorld());
if (cooldownData != null) {
if (cooldownHandler.locked(player)) { //Infinite cooldown (locked)
getPl().getText().getNoPermission(sendi);
return false; return false;
} } else { //Normal cooldown
//Cooldown Data long timeLeft = cooldownHandler.timeLeft(player, cooldownData, BetterRTP.getInstance().getRTP().getPlayerWorld(setupInfo));
CooldownData cooldownData = getPl().getCooldowns().get(player, world); if (timeLeft > 0) {
if (cooldownData != null) { //Still cooling down
if (cooldownHandler.locked(player)) { //Infinite cooldown (locked) getPl().getText().getCooldown(sendi, String.valueOf(timeLeft));
getPl().getText().getNoPermission(sendi);
return false; return false;
} else { //Normal cooldown } else {
long Left = cooldownHandler.timeLeft(cooldownData); //Reset timer, but allow them to tp
if (getPl().getSettings().isDelayEnabled() && !getPl().getPerms().getBypassDelay(sendi)) //cooldowns.add(id);
Left = Left + getPl().getSettings().getDelayTime(); return true;
if (Left > 0) {
//Still cooling down
getPl().getText().getCooldown(sendi, String.valueOf(Left));
return false;
} else {
//Reset timer, but allow them to tp
//cooldowns.add(id);
return true;
}
} }
} //else }
//cooldowns.add(id);
} }
return true; return true;
} }
private static boolean cooldownOverride(CommandSender sendi, Player player) { private static boolean cooldownOverride(CommandSender sendi, Player player) {
return sendi != player || getPl().getPerms().getBypassCooldown(player); return sendi != player || PermissionNode.BYPASS_COOLDOWN.check(player);
} }
private static boolean cooldownEnabled() { private static boolean cooldownEnabled() {

View File

@ -0,0 +1,6 @@
package me.SuperRonanCraft.BetterRTP.references.helpers;
public class HelperRTP_EditConfig {
}

View File

@ -0,0 +1,268 @@
package me.SuperRonanCraft.BetterRTP.references.helpers;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdEdit;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WORLD_TYPE;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HelperRTP_EditWorlds {
public static void editCustomWorld(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String world, String val) {
String path = "CustomWorlds";
if (editSingleMap(sendi, cmd, world, val, path, FileBasics.FILETYPE.CONFIG))
BetterRTP.getInstance().getRTP().loadWorlds();
}
public static void editLocation(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String location, String val) {
String path = "Locations";
if (editSingleMap(sendi, cmd, location, val, path, FileBasics.FILETYPE.LOCATIONS))
BetterRTP.getInstance().getRTP().loadLocations();
}
private static boolean editSingleMap(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String field, String val, String path, FileBasics.FILETYPE file) {
Object value;
try {
value = cmd.getResult(val);
} catch (Exception e) {
e.printStackTrace();
BetterRTP.getInstance().getText().getEditError(sendi);
return false;
}
if (value == null) {
BetterRTP.getInstance().getText().getEditError(sendi);
return false;
}
YamlConfiguration config = file.getConfig();
List<Map<?, ?>> map = config.getMapList(path);
boolean found = false;
for (Map<?, ?> m : map) {
if (m.keySet().toArray()[0].equals(field)) {
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(field, values);
map.add(map2);
}
config.set(path, map);
try {
config.save(file.getFile());
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
public static void editPermissionGroup(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String group, String world, String val) {
Object value;
try {
value = cmd.getResult(val);
} catch (Exception e) {
e.printStackTrace();
BetterRTP.getInstance().getText().getEditError(sendi);
return;
}
if (value == null) {
BetterRTP.getInstance().getText().getEditError(sendi);
return;
}
String path = "PermissionGroup.Groups";
FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG;
YamlConfiguration config = file.getConfig();
List<Map<?, ?>> map = config.getMapList(path);
for (Map<?, ?> m : map)
for (Map.Entry<?, ?> entry : m.entrySet()) {
String _group = entry.getKey().toString();
if (_group.equals(group)) {
BetterRTP.getInstance().getLogger().info("Group: " + group);
Object _value = entry.getValue();
for (Object worldList : ((ArrayList) _value)) {
BetterRTP.getInstance().getLogger().info("World: " + worldList.toString());
for (Object hash : ((HashMap) worldList).entrySet()) {
Map.Entry worldFields = (Map.Entry) hash;
BetterRTP.getInstance().getLogger().info("Hash: " + hash);
if (world.equals(worldFields.getKey().toString())) {
Map<Object, Object> values = (Map<Object, Object>) worldFields.getValue();
values.put(cmd.get(), value);
BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val);
}
}
}
}
}
/*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);
}*/
//if (!found)
// return;
config.set(path, map);
try {
config.save(file.getFile());
BetterRTP.getInstance().getRTP().loadPermissionGroups();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void editDefault(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String val) {
Object value;
try {
value = cmd.getResult(val);
} catch (Exception e) {
e.printStackTrace();
BetterRTP.getInstance().getText().getEditError(sendi);
return;
}
if (value == null) {
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().loadWorlds();
BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val);
} catch (IOException e) {
e.printStackTrace();
}
}
public static 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, CmdEdit.RTP_CMD_EDIT.WORLD_TYPE.name(), val);
} catch (IOException e) {
e.printStackTrace();
}
}
public static 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, CmdEdit.RTP_CMD_EDIT.OVERRIDE.name(), val);
} catch (IOException e) {
e.printStackTrace();
}
}
public static 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, CmdEdit.RTP_CMD_EDIT.BLACKLISTEDBLOCKS.name(), block);
} catch (IOException e) {
e.printStackTrace();
}
}
}

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTP.references.helpers; package me.SuperRonanCraft.BetterRTP.references.helpers;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -13,7 +14,7 @@ public class HelperRTP_Info {
public static List<String> getBiomes(String[] args, int start, CommandSender sendi) { public static List<String> getBiomes(String[] args, int start, CommandSender sendi) {
List<String> biomes = new ArrayList<>(); List<String> biomes = new ArrayList<>();
boolean error_sent = false; boolean error_sent = false;
if (BetterRTP.getInstance().getPerms().getBiome(sendi)) if (PermissionNode.BIOME.check(sendi))
for (int i = start; i < args.length; i++) { for (int i = start; i < args.length; i++) {
String str = args[i]; String str = args[i];
try { try {

View File

@ -2,13 +2,16 @@ package me.SuperRonanCraft.BetterRTP.references.rtpinfo;
import lombok.Getter; import lombok.Getter;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.database.DatabaseCooldownsWorlds; import me.SuperRonanCraft.BetterRTP.references.database.DatabaseCooldownsWorlds;
import me.SuperRonanCraft.BetterRTP.references.database.DatabasePlayers; import me.SuperRonanCraft.BetterRTP.references.database.DatabasePlayers;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer; import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData; import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -19,9 +22,8 @@ import java.util.List;
public class CooldownHandler { public class CooldownHandler {
@Getter boolean enabled, loaded, cooldownByWorld; @Getter boolean enabled, loaded, cooldownByWorld;
private int @Getter private int cooldownTime; //Global Cooldown timer
timer, //Global Cooldown timer private int lockedAfter; //Rtp's before being locked
lockedAfter; //Rtp's before being locked
private final List<Player> downloading = new ArrayList<>(); private final List<Player> downloading = new ArrayList<>();
private final DatabaseCooldownsWorlds cooldowns = new DatabaseCooldownsWorlds(); private final DatabaseCooldownsWorlds cooldowns = new DatabaseCooldownsWorlds();
private final DatabasePlayers players = new DatabasePlayers(); private final DatabasePlayers players = new DatabasePlayers();
@ -34,7 +36,7 @@ public class CooldownHandler {
downloading.clear(); downloading.clear();
loaded = false; loaded = false;
if (enabled) { if (enabled) {
timer = config.getInt("Settings.Cooldown.Time"); cooldownTime = config.getInt("Settings.Cooldown.Time");
lockedAfter = config.getInt("Settings.Cooldown.LockAfter"); lockedAfter = config.getInt("Settings.Cooldown.LockAfter");
cooldownByWorld = config.getBoolean("Settings.Cooldown.PerWorld"); cooldownByWorld = config.getBoolean("Settings.Cooldown.PerWorld");
} }
@ -100,9 +102,12 @@ public class CooldownHandler {
return null; return null;
} }
public long timeLeft(CooldownData data) { public long timeLeft(CommandSender sendi, CooldownData data, RTPWorld rtpWorld) {
long cooldown = data.getTime(); long cooldown = data.getTime();
return ((cooldown / 1000) + timer) - (System.currentTimeMillis() / 1000); long timeLeft = ((cooldown / 1000) + rtpWorld.getCooldown()) - (System.currentTimeMillis() / 1000);
if (BetterRTP.getInstance().getSettings().isDelayEnabled() && !PermissionNode.BYPASS_DELAY.check(sendi))
timeLeft = timeLeft + BetterRTP.getInstance().getSettings().getDelayTime();
return timeLeft;
} }
public boolean locked(Player player) { public boolean locked(Player player) {

View File

@ -24,20 +24,14 @@ public class PermissionGroup {
Object value = fields.getValue(); Object value = fields.getValue();
for (Object worldList : ((ArrayList) value)) { for (Object worldList : ((ArrayList) value)) {
for (Object hash : ((HashMap) worldList).entrySet()) { for (Object hash : ((HashMap) worldList).entrySet()) {
Map.Entry world = (Map.Entry) hash; Map.Entry worldFields = (Map.Entry) hash;
BetterRTP.debug("- -- World: " + world.getKey()); BetterRTP.debug("- -- World: " + worldFields.getKey());
WorldPermissionGroup permissionGroup = new WorldPermissionGroup(groupName, world.getKey().toString(), world); World world = Bukkit.getWorld(worldFields.getKey().toString());
boolean loaded = false; if (world != null) {
for (World realWorld : Bukkit.getWorlds()) { WorldPermissionGroup permissionGroup = new WorldPermissionGroup(groupName, world, worldFields);
if (realWorld.getName().equals(permissionGroup.world)) { this.worlds.put(worldFields.getKey().toString(), permissionGroup);
this.worlds.put(world.getKey().toString(), permissionGroup); } else
loaded = true; BetterRTP.debug("- - The Permission Group '" + groupName + "'s world '" + worldFields.getKey() + "' does not exist! Permission Group not loaded...");
break;
}
}
if (!loaded) {
BetterRTP.debug("- - The Permission groups '" + groupName + "'s world '" + world.getKey() + "' does not exist! World info not loaded...");
}
} }
} }
} }

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds;
import lombok.NonNull; import lombok.NonNull;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
import org.bukkit.World; import org.bukkit.World;
@ -29,4 +30,8 @@ public interface RTPWorld {
int getMinY(); int getMinY();
int getMaxY(); int getMaxY();
default long getCooldown() {
return BetterRTP.getInstance().getCooldowns().getCooldownTime();
}
} }

View File

@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
import org.bukkit.World;
import java.util.List; import java.util.List;
@ -21,7 +22,7 @@ public interface RTPWorld_Defaulted {
void setBiomes(List<String> value); void setBiomes(List<String> value);
void setWorld(String value); void setWorld(World value);
void setShape(RTP_SHAPE value); void setShape(RTP_SHAPE value);

View File

@ -12,13 +12,13 @@ import java.util.List;
import java.util.Map; import java.util.Map;
public class WorldCustom implements RTPWorld, RTPWorld_Defaulted { public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
public String world; public World world;
private boolean useWorldborder; private boolean useWorldborder;
private int centerX, centerZ, maxBorderRad, minBorderRad, price, miny, maxy; private int centerX, centerZ, maxBorderRad, minBorderRad, price, miny, maxy;
private List<String> biomes; private List<String> biomes;
private RTP_SHAPE shape; private RTP_SHAPE shape;
public WorldCustom(String world) { public WorldCustom(World world) {
//String pre = "CustomWorlds."; //String pre = "CustomWorlds.";
FileBasics.FILETYPE config = BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.CONFIG); FileBasics.FILETYPE config = BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.CONFIG);
List<Map<?, ?>> map = config.getMapList("CustomWorlds"); List<Map<?, ?>> map = config.getMapList("CustomWorlds");
@ -31,7 +31,7 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
for (Map<?, ?> m : map) { for (Map<?, ?> m : map) {
for (Map.Entry<?, ?> entry : m.entrySet()) { for (Map.Entry<?, ?> entry : m.entrySet()) {
String key = entry.getKey().toString(); String key = entry.getKey().toString();
if (!key.equals(world)) if (!key.equals(world.getName()))
continue; continue;
Map<?, ?> test = ((Map<?, ?>) m.get(key)); Map<?, ?> test = ((Map<?, ?>) m.get(key));
if (test == null) if (test == null)
@ -45,9 +45,8 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
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) {
if (test.get("MaxRadius").getClass() == Integer.class) if (test.get("MaxRadius").getClass() == Integer.class)
@ -173,7 +172,7 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
@NotNull @NotNull
@Override @Override
public World getWorld() { public World getWorld() {
return Bukkit.getWorld(world); return world;
} }
@Override @Override
@ -228,7 +227,7 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
} }
@Override @Override
public void setWorld(String value) { public void setWorld(World value) {
this.world = value; this.world = value;
} }

View File

@ -15,7 +15,7 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted {
private boolean useWorldborder; private boolean useWorldborder;
private int centerX, centerZ, maxRad, minRad, price, miny, maxy; private int centerX, centerZ, maxRad, minRad, price, miny, maxy;
private List<String> biomes; private List<String> biomes;
private String world; private World world;
private RTP_SHAPE shape; private RTP_SHAPE shape;
public WorldLocations(String location_name) { public WorldLocations(String location_name) {
@ -36,9 +36,10 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted {
continue; continue;
if (test.get("World") != null) { if (test.get("World") != null) {
if (test.get("World").getClass() == String.class) if (test.get("World").getClass() == String.class)
world = test.get("World").toString(); world = Bukkit.getWorld(test.get("World").toString());
} else { }
BetterRTP.getInstance().getLogger().warning("Location `" + location_name + "` does NOT have a World specified!"); if (world == null) {
BetterRTP.getInstance().getLogger().warning("Location `" + location_name + "` does NOT have a `World` or world doesnt exist!");
return; return;
} }
if (test.get("UseWorldBorder") != null) { if (test.get("UseWorldBorder") != null) {
@ -121,7 +122,7 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted {
@NotNull @NotNull
@Override @Override
public World getWorld() { public World getWorld() {
return Bukkit.getWorld(world); return world;
} }
@Override @Override
@ -212,7 +213,7 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted {
} }
@Override @Override
public void setWorld(String value) { public void setWorld(World value) {
this.world = value; this.world = value;
} }

View File

@ -17,12 +17,13 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
private boolean useWorldborder; private boolean useWorldborder;
private int centerX, centerZ, maxRad, minRad, price, miny, maxy; private int centerX, centerZ, maxRad, minRad, price, miny, maxy;
private List<String> biomes; private List<String> biomes;
public String world; public World world;
private RTP_SHAPE shape; private RTP_SHAPE shape;
@Getter private int priority; @Getter private int priority;
@Getter private String groupName; @Getter private final String groupName;
private long cooldown;
public WorldPermissionGroup(String group, String world, Map.Entry fields) { public WorldPermissionGroup(String group, World world, Map.Entry fields) {
this.groupName = group; this.groupName = group;
this.world = world; this.world = world;
setupDefaults(); setupDefaults();
@ -102,6 +103,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
this.shape = RTP_SHAPE.valueOf(hash3.getValue().toString().toUpperCase()); this.shape = RTP_SHAPE.valueOf(hash3.getValue().toString().toUpperCase());
BetterRTP.debug("- - Shape: " + shape.name()); BetterRTP.debug("- - Shape: " + shape.name());
} catch (Exception e) { } catch (Exception e) {
BetterRTP.debug("- - Shape: (INVALID) " + hash3.getValue().toString());
//Invalid shape //Invalid shape
} }
} }
@ -116,6 +118,11 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
this.maxy = Integer.parseInt(hash3.getValue().toString()); this.maxy = Integer.parseInt(hash3.getValue().toString());
BetterRTP.debug("- - MaxY: " + maxy); BetterRTP.debug("- - MaxY: " + maxy);
} }
if (field.equalsIgnoreCase("Cooldown"))
if (hash3.getValue().getClass() == Long.class) {
this.cooldown = Long.parseLong(hash3.getValue().toString());
BetterRTP.debug("- - Custom Cooldown: " + cooldown);
}
} }
} }
@ -156,7 +163,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
@Override @Override
public @NonNull World getWorld() { public @NonNull World getWorld() {
return Bukkit.getWorld(world); return world;
} }
@Override @Override
@ -174,6 +181,11 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
return maxy; return maxy;
} }
@Override
public long getCooldown() {
return cooldown;
}
@Override @Override
public void setUseWorldBorder(boolean value) { public void setUseWorldBorder(boolean value) {
this.useWorldborder = value; this.useWorldborder = value;
@ -210,7 +222,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
} }
@Override @Override
public void setWorld(String value) { public void setWorld(World value) {
this.world = value; this.world = value;
} }

View File

@ -59,14 +59,6 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted {
list.addAll(biomes); list.addAll(biomes);
} }
setBiomes(list); setBiomes(list);
//if (personal && player != null)
// setupGroup();
//Make sure our borders will not cause an invalid integer
if (getMaxRadius() <= getMinRadius()) {
setMinRadius(BetterRTP.getInstance().getRTP().defaultWorld.getMinRadius());
if (getMaxRadius() <= getMinRadius())
setMinRadius(0);
}
//World border protection //World border protection
if (getUseWorldborder()) { if (getUseWorldborder()) {
WorldBorder border = getWorld().getWorldBorder(); WorldBorder border = getWorld().getWorldBorder();
@ -76,6 +68,12 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted {
setCenterX(border.getCenter().getBlockX()); setCenterX(border.getCenter().getBlockX());
setCenterZ(border.getCenter().getBlockZ()); setCenterZ(border.getCenter().getBlockZ());
} }
//Make sure our borders will not cause an invalid integer
if (getMaxRadius() <= getMinRadius()) {
setMinRadius(BetterRTP.getInstance().getRTP().defaultWorld.getMinRadius());
if (getMaxRadius() <= getMinRadius())
setMinRadius(0);
}
//MinY //MinY
setMinY(world.getMinY()); setMinY(world.getMinY());
setMaxY(world.getMaxY()); setMaxY(world.getMaxY());
@ -236,8 +234,8 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted {
} }
@Override @Override
public void setWorld(String value) { public void setWorld(World value) {
//Can't override this one buddy
} }
//Custom World type //Custom World type

View File

@ -20,6 +20,7 @@ public class Settings {
@Getter private boolean useLocationIfAvailable; @Getter private boolean useLocationIfAvailable;
@Getter private boolean locationNeedPermission; @Getter private boolean locationNeedPermission;
@Getter private boolean locationOnlyAllowInWorld; @Getter private boolean locationOnlyAllowInWorld;
@Getter private boolean permissionGroupEnabled;
public void load() { //Load Settings public void load() { //Load Settings
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG; FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
@ -31,6 +32,7 @@ public class Settings {
rtpOnFirstJoin_SetAsRespawn = config.getBoolean("Settings.RtpOnFirstJoin.SetAsRespawn"); rtpOnFirstJoin_SetAsRespawn = config.getBoolean("Settings.RtpOnFirstJoin.SetAsRespawn");
preloadRadius = config.getInt("Settings.PreloadRadius"); preloadRadius = config.getInt("Settings.PreloadRadius");
statusMessages = config.getBoolean("Settings.StatusMessages"); statusMessages = config.getBoolean("Settings.StatusMessages");
permissionGroupEnabled = config.getBoolean("PermissionGroup.Enabled");
protocolLibSounds = FileBasics.FILETYPE.EFFECTS.getBoolean("Sounds.ProtocolLibSound"); protocolLibSounds = FileBasics.FILETYPE.EFFECTS.getBoolean("Sounds.ProtocolLibSound");
useLocationIfAvailable = FileBasics.FILETYPE.LOCATIONS.getBoolean("UseLocationIfAvailable"); useLocationIfAvailable = FileBasics.FILETYPE.LOCATIONS.getBoolean("UseLocationIfAvailable");
locationNeedPermission = FileBasics.FILETYPE.LOCATIONS.getBoolean("RequirePermission"); locationNeedPermission = FileBasics.FILETYPE.LOCATIONS.getBoolean("RequirePermission");

View File

@ -1,4 +1,4 @@
package me.SuperRonanCraft.BetterRTP.references; package me.SuperRonanCraft.BetterRTP.references.web;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;

View File

@ -79,6 +79,7 @@ BlacklistedBlocks:
- bedrock - bedrock
- oak_leaves - oak_leaves
- jungle_leaves - jungle_leaves
- kelp
## Worlds to NOT allow /rtp in, unless there is an override to another enabled world # ## Worlds to NOT allow /rtp in, unless there is an override to another enabled world #
DisabledWorlds: DisabledWorlds:

View File

@ -57,6 +57,7 @@ Usage:
Base: '&c用法&7/%command% edit <default/世界> [参数...]' Base: '&c用法&7/%command% edit <default/世界> [参数...]'
Default: '&c用法&7/%command% edit default <max/min/useworldborder/center> <值>' Default: '&c用法&7/%command% edit default <max/min/useworldborder/center> <值>'
World: '&c用法&7/%command% edit world <world> <max/min/useworldborder/center> <值>' World: '&c用法&7/%command% edit world <world> <max/min/useworldborder/center> <值>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
# Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>' # Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>' # Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -57,6 +57,7 @@ Usage:
Base: '&c用法&7: /%command% edit <default/world> [參數...]' Base: '&c用法&7: /%command% edit <default/world> [參數...]'
Default: '&c用法&7: /%command% edit default <max/min/useworldborder/center> <數值>' Default: '&c用法&7: /%command% edit default <max/min/useworldborder/center> <數值>'
World: '&c用法&7: /%command% edit world <world> <max/min/useworldborder/center> <數值>' World: '&c用法&7: /%command% edit world <world> <max/min/useworldborder/center> <數值>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
Worldtype: '&c用法&7: /%command% edit world_type <世界> <NETHER/NORMAL>' Worldtype: '&c用法&7: /%command% edit world_type <世界> <NETHER/NORMAL>'
Override: '&c用法&7: /%command% edit override <世界> <要傳送到的世界>' Override: '&c用法&7: /%command% edit override <世界> <要傳送到的世界>'
BlacklistedBlocks: '&c用法&7: /%command% edit blacklistedblocks <add/remove> <方塊ID>' BlacklistedBlocks: '&c用法&7: /%command% edit blacklistedblocks <add/remove> <方塊ID>'

View File

@ -57,6 +57,7 @@ Usage:
Base: '&cPoužití&7: /%command% edit <default/svět> [hodnoty...]' Base: '&cPoužití&7: /%command% edit <default/svět> [hodnoty...]'
Default: '&cPoužití&7: /%command% edit default <max/min/useworldborder/center> <hodnota>' Default: '&cPoužití&7: /%command% edit default <max/min/useworldborder/center> <hodnota>'
World: '&cPoužití&7: /%command% edit world <svět> <max/min/useworldborder/center> <hodnota>' World: '&cPoužití&7: /%command% edit world <svět> <max/min/useworldborder/center> <hodnota>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
# Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>' # Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>' # Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -57,6 +57,7 @@ Usage:
Base: '&Brug&7: /%command% edit <default/world> [args...]' Base: '&Brug&7: /%command% edit <default/world> [args...]'
Default: '&Brug&7: /%command% edit default <max/min/useworldborder/center> <value>' Default: '&Brug&7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&Brug&7: /%command% edit world <world> <max/min/useworldborder/center> <value>' World: '&Brug&7: /%command% edit world <world> <max/min/useworldborder/center> <value>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
Worldtype: '&Brug&7: /%command% edit world_type <world> <NETHER/NORMAL>' Worldtype: '&Brug&7: /%command% edit world_type <world> <NETHER/NORMAL>'
Override: '&Brug&7: /%command% edit override <world> <world_to>' Override: '&Brug&7: /%command% edit override <world> <world_to>'
BlacklistedBlocks: '&Brug&7: /%command% edit blacklistedblocks <add/remove> <block_id>' BlacklistedBlocks: '&Brug&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -57,6 +57,7 @@ Usage:
# Base: '&cUsage&7: /%command% edit <default/world> [args...]' # Base: '&cUsage&7: /%command% edit <default/world> [args...]'
# Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>' # Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>'
# World: '&cUsage&7: /%command% edit world <world> <max/min/useworldborder/center> <value>' # World: '&cUsage&7: /%command% edit world <world> <max/min/useworldborder/center> <value>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
# Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>' # Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>' # Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -56,7 +56,9 @@ Usage:
Edit: Edit:
Base: '&cUsage&7: /%command% edit <default/world> [args...]' Base: '&cUsage&7: /%command% edit <default/world> [args...]'
Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>' Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&cUsage&7: /%command% edit world <world> <max/min/useworldborder/center> <value>' World: '&cUsage&7: /%command% edit customworld <world> <max/min/useworldborder/center> <value>'
PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
Location: '&cUsage&7: /%command% edit location <location_name> <max/min/useworldborder/center> <value>'
Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>' Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>'
Override: '&cUsage&7: /%command% edit override <world> <world_to>' Override: '&cUsage&7: /%command% edit override <world> <world_to>'
BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>' BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -57,6 +57,7 @@ Usage:
Base: '&cUso&7: /%command% edit <default/world> [args...]' Base: '&cUso&7: /%command% edit <default/world> [args...]'
Default: '&cUso&7: /%command% edit default <max/min/useworldborder/center> <valor>' Default: '&cUso&7: /%command% edit default <max/min/useworldborder/center> <valor>'
World: '&cUso&7: /%command% edit world <mundo> <max/min/useworldborder/center> <valor>' World: '&cUso&7: /%command% edit world <mundo> <max/min/useworldborder/center> <valor>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
Worldtype: '&cUso&7: /%command% edit world_type <mundo> <NETHER/NORMAL>' Worldtype: '&cUso&7: /%command% edit world_type <mundo> <NETHER/NORMAL>'
Override: '&cUso&7: /%command% edit override <mundo1> <mundo2>' Override: '&cUso&7: /%command% edit override <mundo1> <mundo2>'
BlacklistedBlocks: '&cUso&7: /%command% edit blacklistedblocks <add/remove> <id_del_bloque>' BlacklistedBlocks: '&cUso&7: /%command% edit blacklistedblocks <add/remove> <id_del_bloque>'

View File

@ -58,6 +58,7 @@ Usage:
Base: '&cUtilisation &7: /%command% edit <default/world> [args...]' Base: '&cUtilisation &7: /%command% edit <default/world> [args...]'
Default: '&cUtilisation &7: /%command% edit default <max/min/useworldborder/center> <value>' Default: '&cUtilisation &7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&cUtilisation &7: /%command% edit world <world> <max/min/useworldborder/center> <value>' World: '&cUtilisation &7: /%command% edit world <world> <max/min/useworldborder/center> <value>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
Worldtype: '&cUtilisation &7: /%command% edit world_type <world> <NETHER/NORMAL>' Worldtype: '&cUtilisation &7: /%command% edit world_type <world> <NETHER/NORMAL>'
Override: '&cUtilisation &7: /%command% edit override <world> <world_to>' Override: '&cUtilisation &7: /%command% edit override <world> <world_to>'
BlacklistedBlocks: '&cUtilisation &7: /%command% edit blacklistedblocks <add/remove> <block_id>' BlacklistedBlocks: '&cUtilisation &7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -53,3 +53,4 @@ Usage:
Base: '&cUsa&7: /%command% edit <default/mondo> [argomenti...]' Base: '&cUsa&7: /%command% edit <default/mondo> [argomenti...]'
Default: '&cUsa&7: /%command% edit default <max/min/useworldborder/center> <value>' Default: '&cUsa&7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&cUsa&7: /%command% edit world <world> <max/min/useworldborder/center> <value>' World: '&cUsa&7: /%command% edit world <world> <max/min/useworldborder/center> <value>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'

View File

@ -57,6 +57,7 @@ Usage:
# Base: '&cUsage&7: /%command% edit <default/world> [args...]' # Base: '&cUsage&7: /%command% edit <default/world> [args...]'
# Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>' # Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>'
# World: '&cUsage&7: /%command% edit world <world> <max/min/useworldborder/center> <value>' # World: '&cUsage&7: /%command% edit world <world> <max/min/useworldborder/center> <value>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
# Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>' # Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>' # Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -57,6 +57,7 @@ Usage:
Base: '&cUsage &7: /%command% edit <default / world> [args ...]' Base: '&cUsage &7: /%command% edit <default / world> [args ...]'
Default: '&cUsage &7: /%command% edit default <max / min / useworldborder / center> <value>' Default: '&cUsage &7: /%command% edit default <max / min / useworldborder / center> <value>'
World: '&cUsage &7: /%command% edit world <world> <max / min / useworldborder / center> <value>' World: '&cUsage &7: /%command% edit world <world> <max / min / useworldborder / center> <value>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
Worldtype: '&cUsage &7: /%command% edit world_type <world> <NETHER / NORMAL>' Worldtype: '&cUsage &7: /%command% edit world_type <world> <NETHER / NORMAL>'
Override: '&cUsage &7: /%command% edit override <world> <world_to>' Override: '&cUsage &7: /%command% edit override <world> <world_to>'
BlacklistedBlocks: '&cUsage &7: /%command% edit blacklistedblocks <add / remove> <block_id>' BlacklistedBlocks: '&cUsage &7: /%command% edit blacklistedblocks <add / remove> <block_id>'

View File

@ -57,6 +57,7 @@ Usage:
Base: '&cUżycie&7: /%command% edit <default/world> [args...]' Base: '&cUżycie&7: /%command% edit <default/world> [args...]'
Default: '&cUżycie&7: /%command% edit default <max/min/useworldborder/center> <value>' Default: '&cUżycie&7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&cUżycie&7: /%command% edit world <world> <max/min/useworldborder/center> <value>' World: '&cUżycie&7: /%command% edit world <world> <max/min/useworldborder/center> <value>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
Worldtype: '&cUżycie&7: /%command% edit world_type <world> <NETHER/NORMAL>' Worldtype: '&cUżycie&7: /%command% edit world_type <world> <NETHER/NORMAL>'
Override: '&cUżycie&7: /%command% edit override <world> <world_to>' Override: '&cUżycie&7: /%command% edit override <world> <world_to>'
BlacklistedBlocks: '&cUżycie&7: /%command% edit blacklistedblocks <add/remove> <block_id>' BlacklistedBlocks: '&cUżycie&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -56,6 +56,7 @@ Usage:
Base: '&cFolosire&7: /%command% edit <default/world> [args...]' Base: '&cFolosire&7: /%command% edit <default/world> [args...]'
Default: '&cFolosire&7: /%command% edit default <max/min/useworldborder/center> <value>' Default: '&cFolosire&7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&cFolosire&7: /%command% edit world <world> <max/min/useworldborder/center> <value>' World: '&cFolosire&7: /%command% edit world <world> <max/min/useworldborder/center> <value>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
# Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>' # Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>' # Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -57,6 +57,7 @@ Usage:
Base: '&cUsage&7: /%command% edit <default/world> [аргументы...]' Base: '&cUsage&7: /%command% edit <default/world> [аргументы...]'
Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>' Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&cUsage&7: /%command% edit world <world> <max/min/useworldborder/center> <value>' World: '&cUsage&7: /%command% edit world <world> <max/min/useworldborder/center> <value>'
# PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
# Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>' # Worldtype: '&cUsage&7: /%command% edit world_type <world> <NETHER/NORMAL>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>' # Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -56,9 +56,8 @@ Usage:
Edit: Edit:
Base: '&cUsage&7: /%command% edit <default/world> [args...]' Base: '&cUsage&7: /%command% edit <default/world> [args...]'
Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>' Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&cUsage&7: /%command% edit world <thế giới> <max/min/useworldborder/center> World: '&cUsage&7: /%command% edit world <thế giới> <max/min/useworldborder/center> <value>'
<value>' # PermissionGroup: '&cUsage&7: /%command% edit permission_group <group> <world> <max/min/useworldborder/center> <value>'
Worldtype: '&cUsage&7: /%command% edit world_type <thế giới> <NETHER/NORMAL>' Worldtype: '&cUsage&7: /%command% edit world_type <thế giới> <NETHER/NORMAL>'
Override: '&cUsage&7: /%command% edit override <thế giới> <world_to>' Override: '&cUsage&7: /%command% edit override <thế giới> <world_to>'
BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'
<block_id>'