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.rtp.RTP;
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.file.Files;
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.RTPCommandHelpable;
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_Info;
import org.bukkit.command.CommandSender;
@ -33,7 +34,7 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable {
}
public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getBiome(sendi);
return PermissionNode.BIOME.check(sendi);
}
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.player.commands.RTPCommandHelpable;
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.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 org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import java.io.IOException;
import java.util.*;
public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds properties
@ -25,65 +25,105 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
@Override
public void execute(CommandSender sendi, String label, String[] args) {
if (args.length >= 4) {
for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values())
if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) {
switch (cmd) {
case CUSTOMWORLD:
if (args.length >= 5) {
for (World world : Bukkit.getWorlds()) {
if (world.getName().startsWith(args[2])) {
for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values())
if (sub_cmd.name().toLowerCase().startsWith(args[3].toLowerCase())) {
editWorld(sendi, sub_cmd, args[2], args[4]);
return;
}
usage(sendi, label, cmd);
for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) {
if (!cmd.name().equalsIgnoreCase(args[1])) continue;
switch (cmd) {
case CUSTOMWORLD:
if (args.length >= 5) {
for (World world : Bukkit.getWorlds()) {
if (world.getName().equals(args[2])) {
for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values())
if (sub_cmd.name().equalsIgnoreCase(args[3])) {
HelperRTP_EditWorlds.editCustomWorld(sendi, sub_cmd, world.getName(), args[4]);
return;
}
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;
}
}
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;
}
usage(sendi, label, cmd);
return;
case DEFAULT:
for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values())
if (sub_cmd.name().toLowerCase().startsWith(args[2].toLowerCase())) {
editDefault(sendi, sub_cmd, args[3]);
return;
}
usage(sendi, label, cmd);
return;
case WORLD_TYPE:
for (World world : Bukkit.getWorlds()) {
if (world.getName().startsWith(args[2])) {
editWorldtype(sendi, args[2], args[3]);
//usage(sendi, label, cmd);
return;
}
usage(sendi, label, cmd);
return;
case WORLD_TYPE:
for (World world : Bukkit.getWorlds()) {
if (world.getName().equals(args[2])) {
HelperRTP_EditWorlds.editWorldtype(sendi, args[2], args[3]);
//usage(sendi, label, cmd);
return;
}
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
return;
case OVERRIDE:
for (World world : Bukkit.getWorlds()) {
if (world.getName().startsWith(args[2])) {
editOverride(sendi, args[2], args[3]);
//usage(sendi, label, cmd);
return;
}
}
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
return;
case OVERRIDE:
for (World world : Bukkit.getWorlds()) {
if (world.getName().equals(args[2])) {
HelperRTP_EditWorlds.editOverride(sendi, args[2], args[3]);
//usage(sendi, label, cmd);
return;
}
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
return;
case BLACKLISTEDBLOCKS:
if (args[2].equalsIgnoreCase("add")) {
editBlacklisted(sendi, args[3], true);
} else if (args[2].equalsIgnoreCase("remove")) {
editBlacklisted(sendi, args[3], false);
} else
usage(sendi, label, cmd);
return;
}
}
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
return;
case BLACKLISTEDBLOCKS:
if (args[2].equalsIgnoreCase("add")) {
HelperRTP_EditWorlds.editBlacklisted(sendi, args[3], true);
} else if (args[2].equalsIgnoreCase("remove")) {
HelperRTP_EditWorlds.editBlacklisted(sendi, args[3], false);
} else
usage(sendi, label, cmd);
return;
}
}
} else if (args.length >= 2) {
for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values())
if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) {
@ -91,231 +131,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
return;
}
}
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();
}
usage(sendi, label, null);
}
//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()))
list.add(world.getName());
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:
list.addAll(tabCompleteSub(args, cmd));
break;
@ -353,7 +179,13 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
if (cmd.name().equalsIgnoreCase(args[1]))
switch (cmd) {
case CUSTOMWORLD:
case LOCATION:
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:
if (args[2].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name()))
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) {
for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values())
if (cmd.name().equalsIgnoreCase(args[1]))
if (cmd == RTP_CMD_EDIT.CUSTOMWORLD) {
if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name()))
list.add(String.valueOf(((Player) sendi).getLocation().getBlockX()));
else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name()))
list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ()));
else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.SHAPE.name()))
for (RTP_SHAPE shape : RTP_SHAPE.values())
list.add(shape.name().toLowerCase());
/*else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.BIOME_ADD.name()))
for (Biome biome : Biome.values()) {
if (biome.name().toLowerCase().startsWith(args[4].toLowerCase()) && list.size() < 20)
list.add(biome.name());
}*/
switch (cmd) {
case CUSTOMWORLD:
case LOCATION:
if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name()))
list.add(String.valueOf(((Player) sendi).getLocation().getBlockX()));
else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name()))
list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ()));
else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.SHAPE.name()))
for (RTP_SHAPE shape : RTP_SHAPE.values())
list.add(shape.name().toLowerCase());
/*else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.BIOME_ADD.name()))
for (Biome biome : Biome.values()) {
if (biome.name().toLowerCase().startsWith(args[4].toLowerCase()) && list.size() < 20)
list.add(biome.name());
}*/
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;
@ -419,7 +270,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
@Override
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) {
@ -435,6 +286,10 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
BetterRTP.getInstance().getText().getUsageOverride(sendi, label); break;
case BLACKLISTEDBLOCKS:
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
BetterRTP.getInstance().getText().getUsageEdit(sendi, label);
@ -445,11 +300,19 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
return BetterRTP.getInstance().getText().getHelpEdit();
}
enum RTP_CMD_EDIT {
CUSTOMWORLD, /*LOCATION,*/ DEFAULT, WORLD_TYPE, OVERRIDE, BLACKLISTEDBLOCKS
public enum RTP_CMD_EDIT {
//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_Z("CenterZ", "INT"),
MAXRAD("MaxRadius", "INT"),
@ -469,11 +332,11 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
this.type = type;
}
String get() {
public String get() {
return str;
}
Object getResult(String input) {
public Object getResult(String input) {
if (this.type.equalsIgnoreCase("INT"))
return Integer.parseInt(input);
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.rtp.RTPParticles;
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.WorldPlayer;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
@ -34,7 +35,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
infoEffects(sendi);
else if (args[1].equalsIgnoreCase(CmdInfoSub.WORLD.name())) {
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
World world = null;
Player player = null;
@ -45,7 +46,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
}
if (world == null)
world = ((Player) sendi).getWorld();
sendInfoWorld(sendi, infoGetWorld(sendi, world, player));
sendInfoWorld(sendi, infoGetWorld(sendi, world, player, null));
} else
infoWorld(sendi);
}
@ -96,7 +97,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
}
//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.forEach(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
List<String> info = new ArrayList<>();
for (World w : Bukkit.getWorlds())
info.addAll(infoGetWorld(sendi, w, null));
info.addAll(infoGetWorld(sendi, w, null, null));
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<>();
BetterRTP pl = BetterRTP.getInstance();
String _true = "&aTrue", _false = "&bFalse";
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- &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
info.add("&7- &eDisabled: " + _true);
else {
@ -125,7 +126,8 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
info.add("&7- &6Overriden: " + _true + " &7- target `" + pl.getRTP().overriden.get(w.getName()) + "`");
else {
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;
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));
@ -146,7 +148,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
}
//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) {
case "centerx":
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) {
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.RTPCommandHelpable;
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.rtpinfo.worlds.RTPWorld;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations;
@ -39,7 +40,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
usage(sendi, label);
} else
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]);
if (p != null && p.isOnline()) {
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())
if (location_name.toLowerCase().startsWith(args[1].toLowerCase()))
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())
if (p.getName().toLowerCase().startsWith(args[2].toLowerCase()))
list.add(p.getName());
@ -72,7 +73,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
}
public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getLocation(sendi);
return PermissionNode.LOCATION.check(sendi);
}
public void usage(CommandSender sendi, String label) {
@ -88,7 +89,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
if (BetterRTP.getInstance().getSettings().isLocationNeedPermission()) {
HashMap<String, RTPWorld> locations = new HashMap<>();
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))
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.rtp.RTP_TYPE;
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_Info;
import org.bukkit.Bukkit;
@ -64,7 +65,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
}
public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getRtpOther(sendi);
return PermissionNode.RTP_OTHER.check(sendi);
}
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.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -22,7 +23,7 @@ public class CmdReload implements RTPCommand, RTPCommandHelpable {
}
public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getReload(sendi);
return PermissionNode.RELOAD.check(sendi);
}
@Override

View File

@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
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.player.commands.RTPCommand;
import org.bukkit.command.CommandSender;
@ -27,7 +28,7 @@ public class CmdSettings implements RTPCommand, RTPCommandHelpable {
}
public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getSettings(sendi);
return PermissionNode.SETTINGS.check(sendi);
}
@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.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -32,7 +33,7 @@ public class CmdTest implements RTPCommand, RTPCommandHelpable {
@Override
public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getTest(sendi);
return PermissionNode.TEST.check(sendi);
}
@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.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -22,7 +23,7 @@ public class CmdVersion implements RTPCommand, RTPCommandHelpable {
}
public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getVersion(sendi);
return PermissionNode.VERSION.check(sendi);
}
@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.RTPCommandHelpable;
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_Info;
import org.bukkit.Bukkit;
@ -24,6 +25,8 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
public void execute(CommandSender sendi, String label, String[] args) {
if (args.length >= 2) {
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)
CmdTeleport.teleport(sendi, label, world, HelperRTP_Info.getBiomes(args, 2, sendi));
else
@ -38,7 +41,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
for (World w : Bukkit.getWorlds()) {
String _wName = w.getName().replace(" ", "_");
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);
}
} else if (args.length >= 3) {
@ -49,7 +52,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
}
public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().getWorld(sendi);
return PermissionNode.WORLD.check(sendi);
}
public void usage(CommandSender sendi, String label) {

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTP.player.events;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.block.Block;
@ -46,7 +47,7 @@ class Interact {
}
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);
if (line != null && (line.equalsIgnoreCase(title) ||
line.equalsIgnoreCase("[RTP]"))) {

View File

@ -2,7 +2,8 @@ package me.SuperRonanCraft.BetterRTP.player.events;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
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.helpers.HelperRTP;
import org.bukkit.Bukkit;
@ -22,7 +23,7 @@ public class Join {
//Updater
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))
getPl().getText().sms(p, "&7There is currently an update for &6BetterRTP &7version &e#" +
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 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.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
@ -65,6 +68,10 @@ public class RTP {
RTPLoader.loadLocations(worldLocations);
}
public void loadPermissionGroups() { //Keeping this here because of the edit command
RTPLoader.loadPermissionGroups(worldPermissionGroups);
}
public WorldPlayer getPlayerWorld(RTPSetupInformation setup_info) {
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, WorldPermissionGroup> worldPermission : permissionGroup.getValue().getWorlds().entrySet()) {
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.getPriority() < worldPermission.getValue().getPriority())
continue;
@ -137,56 +144,14 @@ public class RTP {
public void start(RTPSetupInformation setup_info) {
RTP_SettingUpEvent setup = new RTP_SettingUpEvent(setup_info.getPlayer());
Bukkit.getPluginManager().callEvent(setup);
if (setup.isCancelled()) {
if (setup.isCancelled())
return;
}
World world_name = setup_info.getWorld();
Player p = setup_info.getPlayer();
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);
//Debugging!
//CmdInfo.sendInfoWorld(sendi, CmdInfo.infoGetWorld(sendi, setup_info.getWorld(), setup_info.getPlayer(), pWorld));
// Economy
if (!getPl().getEco().hasBalance(sendi, pWorld))
return;

View File

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

View File

@ -13,7 +13,13 @@ public class Permissions {
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) {
return checkPerm(pre + "use", sendi);
@ -101,9 +107,4 @@ public class Permissions {
public boolean getPermissionGroup(CommandSender sendi, String group) {
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;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
@ -33,7 +34,7 @@ public class DepEconomy {
}
}
//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 {
EconomyResponse r = e.withdrawPlayer(player, pWorld.getPrice());
boolean passed_economy = r.transactionSuccess();
@ -57,7 +58,7 @@ public class DepEconomy {
Player player = pWorld.getPlayer();
//Hunger Stuff
if (hunger != 0
&& !BetterRTP.getInstance().getPerms().getBypassHunger(sendi)
&& !PermissionNode.BYPASS_HUNGER.check(sendi)
&& (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) {
boolean has_hunger = player.getFoodLevel() > hunger;
if (!has_hunger) {
@ -66,7 +67,7 @@ public class DepEconomy {
}
}
//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 {
boolean passed_economy = e.getBalance(player) >= pWorld.getPrice();
if (!passed_economy) {

View File

@ -242,6 +242,10 @@ public class Messages {
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) {
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));
}
public void getUsagePermissionGroup(CommandSender sendi, String cmd) {
sms(sendi, getLang().getString(preU + "Edit.PermissionGroup").replaceAll("%command%", cmd));
}
// Not Found
public void error(CommandSender sendi) {
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.rtp.RTPSetupInformation;
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.CooldownHandler;
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,
boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) {
if (isRTPing(player, sendi)) { //Is RTP'ing
if (world == null)
world = player.getWorld();
if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName()))
world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
if (ignoreCooldown || isCoolingDown(sendi, player, world)) { //Is Cooling down
boolean delay = false;
if (!ignoreDelay && sendi == player) //Forced?
if (getPl().getSettings().isDelayEnabled() && getPl().getSettings().getDelayTime() > 0) //Delay enabled?
if (!getPl().getPerms().getBypassDelay(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
getPl().getRTP().start(setup_info);
}
if (isRTPing(player, sendi)) //Is RTP'ing
return;
if (world == null)
world = player.getWorld();
if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName()))
world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
// Not forced and has 'betterrtp.world.<world>'
if (sendi == player && !PermissionNode.getAWorld(sendi, world.getName())) {
getPl().getText().getNoPermissionWorld(player, world.getName());
return;
}
// Check disabled worlds
if (getPl().getRTP().getDisabledWorlds().contains(world.getName())) {
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) {
if (getPl().getpInfo().getRtping().containsKey(player) && getPl().getpInfo().getRtping().get(player)) {
if (getPl().getpInfo().getRtping().getOrDefault(player, false)) {
getPl().getText().getAlready(sendi);
return false;
return true;
}
return true;
return false;
}
private static boolean isCoolingDown(CommandSender sendi, Player player, World world) {
if (cooldownApplies(sendi, player)) { //Bypassing/Forced?
CooldownHandler cooldownHandler = getPl().getCooldowns();
if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download
getPl().getText().getCooldown(sendi, String.valueOf(-1L));
private static boolean isCoolingDown(CommandSender sendi, Player player, RTPSetupInformation setupInfo) {
if (!cooldownApplies(sendi, player)) //Bypassing/Forced?
return true;
CooldownHandler cooldownHandler = getPl().getCooldowns();
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;
}
//Cooldown Data
CooldownData cooldownData = getPl().getCooldowns().get(player, world);
if (cooldownData != null) {
if (cooldownHandler.locked(player)) { //Infinite cooldown (locked)
getPl().getText().getNoPermission(sendi);
} else { //Normal cooldown
long timeLeft = cooldownHandler.timeLeft(player, cooldownData, BetterRTP.getInstance().getRTP().getPlayerWorld(setupInfo));
if (timeLeft > 0) {
//Still cooling down
getPl().getText().getCooldown(sendi, String.valueOf(timeLeft));
return false;
} else { //Normal cooldown
long Left = cooldownHandler.timeLeft(cooldownData);
if (getPl().getSettings().isDelayEnabled() && !getPl().getPerms().getBypassDelay(sendi))
Left = Left + getPl().getSettings().getDelayTime();
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 {
//Reset timer, but allow them to tp
//cooldowns.add(id);
return true;
}
} //else
//cooldowns.add(id);
}
}
return true;
}
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() {

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

View File

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

View File

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

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds;
import lombok.NonNull;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
import org.bukkit.World;
@ -29,4 +30,8 @@ public interface RTPWorld {
int getMinY();
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.player.rtp.RTP_SHAPE;
import org.bukkit.World;
import java.util.List;
@ -21,7 +22,7 @@ public interface RTPWorld_Defaulted {
void setBiomes(List<String> value);
void setWorld(String value);
void setWorld(World value);
void setShape(RTP_SHAPE value);

View File

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

View File

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

View File

@ -17,12 +17,13 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
private boolean useWorldborder;
private int centerX, centerZ, maxRad, minRad, price, miny, maxy;
private List<String> biomes;
public String world;
public World world;
private RTP_SHAPE shape;
@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.world = world;
setupDefaults();
@ -102,6 +103,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
this.shape = RTP_SHAPE.valueOf(hash3.getValue().toString().toUpperCase());
BetterRTP.debug("- - Shape: " + shape.name());
} catch (Exception e) {
BetterRTP.debug("- - Shape: (INVALID) " + hash3.getValue().toString());
//Invalid shape
}
}
@ -116,6 +118,11 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
this.maxy = Integer.parseInt(hash3.getValue().toString());
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
public @NonNull World getWorld() {
return Bukkit.getWorld(world);
return world;
}
@Override
@ -174,6 +181,11 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
return maxy;
}
@Override
public long getCooldown() {
return cooldown;
}
@Override
public void setUseWorldBorder(boolean value) {
this.useWorldborder = value;
@ -210,7 +222,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
}
@Override
public void setWorld(String value) {
public void setWorld(World value) {
this.world = value;
}

View File

@ -59,14 +59,6 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted {
list.addAll(biomes);
}
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
if (getUseWorldborder()) {
WorldBorder border = getWorld().getWorldBorder();
@ -76,6 +68,12 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted {
setCenterX(border.getCenter().getBlockX());
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
setMinY(world.getMinY());
setMaxY(world.getMaxY());
@ -236,8 +234,8 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted {
}
@Override
public void setWorld(String value) {
public void setWorld(World value) {
//Can't override this one buddy
}
//Custom World type

View File

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

View File

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

View File

@ -57,6 +57,7 @@ Usage:
Base: '&c用法&7/%command% edit <default/世界> [参数...]'
Default: '&c用法&7/%command% edit default <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>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

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

View File

@ -56,7 +56,9 @@ Usage:
Edit:
Base: '&cUsage&7: /%command% edit <default/world> [args...]'
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>'
Override: '&cUsage&7: /%command% edit override <world> <world_to>'
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...]'
Default: '&cUso&7: /%command% edit default <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>'
Override: '&cUso&7: /%command% edit override <mundo1> <mundo2>'
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...]'
Default: '&cUtilisation &7: /%command% edit default <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>'
Override: '&cUtilisation &7: /%command% edit override <world> <world_to>'
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...]'
Default: '&cUsa&7: /%command% edit default <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...]'
# Default: '&cUsage&7: /%command% edit default <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>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# 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 ...]'
Default: '&cUsage &7: /%command% edit default <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>'
Override: '&cUsage &7: /%command% edit override <world> <world_to>'
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...]'
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>'
# 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>'
Override: '&cUżycie&7: /%command% edit override <world> <world_to>'
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...]'
Default: '&cFolosire&7: /%command% edit default <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>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

@ -57,6 +57,7 @@ Usage:
Base: '&cUsage&7: /%command% edit <default/world> [аргументы...]'
Default: '&cUsage&7: /%command% edit default <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>'
# Override: '&cUsage&7: /%command% edit override <world> <world_to>'
# BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks <add/remove> <block_id>'

View File

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