diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/Main.java b/src/main/java/me/SuperRonanCraft/BetterRTP/Main.java index 2b9a3c4..8c08aac 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/Main.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/Main.java @@ -20,7 +20,7 @@ import java.util.List; public class Main extends JavaPlugin { private final Permissions perms = new Permissions(); - private final Messages text = new Messages(this); + private final Messages text = new Messages(); private final DepEconomy eco = new DepEconomy(); private final Commands cmd = new Commands(this); private final RTP rtp = new RTP(); @@ -105,7 +105,7 @@ public class Main extends JavaPlugin { return pInfo; } - //Load + //(Re)Load all plugin systems/files/cache private void loadAll() { files.loadAll(); settings.load(); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java index d6990f9..c89c9ef 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java @@ -9,6 +9,7 @@ import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.WorldBorder; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffectType; import xyz.xenondevs.particle.ParticleEffect; @@ -25,16 +26,21 @@ public class CmdInfo implements RTPCommand { infoShapes(sendi); else if (args[1].equalsIgnoreCase(CmdInfoSub.POTION_EFFECTS.name())) infoEffects(sendi); - else - infoWorlds(sendi); + else if (args[1].equalsIgnoreCase(CmdInfoSub.WORLD.name())) { + if (sendi instanceof Player) { + sendInfoWorld(sendi, infoGetWorld(((Player) sendi).getWorld())); + } else + infoWorld(sendi); + } } else - infoWorlds(sendi); + infoWorld(sendi); } enum CmdInfoSub { //Sub commands, future expansions - PARTICLES, SHAPES, POTION_EFFECTS + PARTICLES, SHAPES, POTION_EFFECTS, WORLD } + //Particles private void infoParticles(CommandSender sendi) { List info = new ArrayList<>(); Main pl = Main.getInstance(); @@ -53,9 +59,9 @@ public class CmdInfo implements RTPCommand { sendi.sendMessage(info.toString()); } + //Shapes private void infoShapes(CommandSender sendi) { List info = new ArrayList<>(); - Main pl = Main.getInstance(); for (String shape : RTPParticles.shapeTypes) { if (info.isEmpty()) { @@ -67,60 +73,70 @@ public class CmdInfo implements RTPCommand { } info.forEach(str -> - info.set(info.indexOf(str), pl.getText().color(str))); + info.set(info.indexOf(str), Main.getInstance().getText().color(str))); sendi.sendMessage(info.toString()); } - private void infoWorlds(CommandSender sendi) { - List info = new ArrayList<>(); - info.add("&e&m-----&6 BetterRTP Info &e&m-----"); - Main pl = Main.getInstance(); - for (World w : Bukkit.getWorlds()) { - info.add("&aWorld: &7" + w.getName()); - if (pl.getRTP().getDisabledWorlds().contains(w.getName())) //DISABLED - info.add("&7- &6Disabled: &bTrue"); - else { - info.add("&7- &6Disabled: &cFalse"); - if (pl.getRTP().overriden.containsKey(w.getName())) - info.add("&7- &6Overriden: &bTrue"); - else { - info.add("&7- &6WorldType: &f" + pl.getRTP().world_type.getOrDefault(w.getName(), RTP_WORLD_TYPE.NORMAL).name()); - info.add("&7- &6Overriden: &cFalse"); - RTPWorld _rtpworld = pl.getRTP().defaultWorld; - for (RTPWorld __rtpworld : pl.getRTP().customWorlds.values()) { - if (__rtpworld.getWorld() != null && __rtpworld.getWorld().getName().equals(w.getName())) { - _rtpworld = __rtpworld; - break; - } - } - if (_rtpworld == pl.getRTP().defaultWorld) - info.add("&7- &6Custom: &cFalse"); - else - info.add("&7- &6Custom: &bTrue"); - if (_rtpworld.getUseWorldborder()) { - info.add("&7- &6UseWorldborder: &bTrue"); - WorldBorder border = w.getWorldBorder(); - info.add("&7- &6Center X: &7" + border.getCenter().getBlockX()); - info.add("&7- &6Center Z: &7" + border.getCenter().getBlockZ()); - info.add("&7- &6MaxRad: &7" + (border.getSize() / 2)); - } else { - info.add("&7- &6UseWorldborder: &cFalse"); - info.add("&7- &6Center X: &7" + _rtpworld.getCenterX()); - info.add("&7- &6Center Z: &7" + _rtpworld.getCenterZ()); - info.add("&7- &6MaxRad: &7" + _rtpworld.getMaxRad()); - } - info.add("&7- &6MinRad: &7" + _rtpworld.getMinRad()); - } - } - } - info.forEach(str -> - info.set(info.indexOf(str), pl.getText().color(str))); - sendi.sendMessage(info.toArray(new String[0])); + //World + private void sendInfoWorld(CommandSender sendi, List list) { //Send info + list.add(0, "&e&m-----&6 BetterRTP Info &e&m-----"); + list.forEach(str -> + list.set(list.indexOf(str), Main.getInstance().getText().color(str))); + sendi.sendMessage(list.toArray(new String[0])); } - void infoEffects(CommandSender sendi) { + private void infoWorld(CommandSender sendi) { //All worlds + List info = new ArrayList<>(); + for (World w : Bukkit.getWorlds()) + info.addAll(infoGetWorld(w)); + sendInfoWorld(sendi, info); + } + + private List infoGetWorld(World w) { //Specific world List info = new ArrayList<>(); Main pl = Main.getInstance(); + info.add("&aWorld: &7" + w.getName()); + if (pl.getRTP().getDisabledWorlds().contains(w.getName())) //DISABLED + info.add("&7- &6Disabled: &bTrue"); + else { + info.add("&7- &6Disabled: &cFalse"); + if (pl.getRTP().overriden.containsKey(w.getName())) + info.add("&7- &6Overriden: &bTrue"); + else { + info.add("&7- &6WorldType: &f" + pl.getRTP().world_type.getOrDefault(w.getName(), RTP_WORLD_TYPE.NORMAL).name()); + info.add("&7- &6Overriden: &cFalse"); + RTPWorld _rtpworld = pl.getRTP().defaultWorld; + for (RTPWorld __rtpworld : pl.getRTP().customWorlds.values()) { + if (__rtpworld.getWorld() != null && __rtpworld.getWorld().getName().equals(w.getName())) { + _rtpworld = __rtpworld; + break; + } + } + if (_rtpworld == pl.getRTP().defaultWorld) + info.add("&7- &6Custom: &cFalse"); + else + info.add("&7- &6Custom: &bTrue"); + if (_rtpworld.getUseWorldborder()) { + info.add("&7- &6UseWorldborder: &bTrue"); + WorldBorder border = w.getWorldBorder(); + info.add("&7- &6Center X: &7" + border.getCenter().getBlockX()); + info.add("&7- &6Center Z: &7" + border.getCenter().getBlockZ()); + info.add("&7- &6MaxRad: &7" + (border.getSize() / 2)); + } else { + info.add("&7- &6UseWorldborder: &cFalse"); + info.add("&7- &6Center X: &7" + _rtpworld.getCenterX()); + info.add("&7- &6Center Z: &7" + _rtpworld.getCenterZ()); + info.add("&7- &6MaxRad: &7" + _rtpworld.getMaxRad()); + } + info.add("&7- &6MinRad: &7" + _rtpworld.getMinRad()); + } + } + return info; + } + + //Effects + private void infoEffects(CommandSender sendi) { + List info = new ArrayList<>(); for (PotionEffectType effect : PotionEffectType.values()) { if (info.isEmpty()) { @@ -132,7 +148,7 @@ public class CmdInfo implements RTPCommand { } info.forEach(str -> - info.set(info.indexOf(str), pl.getText().color(str))); + info.set(info.indexOf(str), Main.getInstance().getText().color(str))); sendi.sendMessage(info.toString()); } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java index 2ef947e..4f58f7e 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java @@ -168,8 +168,10 @@ public class RTP { getPl().getCmd().rtping.put(p.getUniqueId(), true); //Cache player so they cant run '/rtp' again while rtp'ing if (getPl().getSettings().delayEnabled && delay) { new RTPDelay(sendi, pWorld, delayTime, cancelOnMove, cancelOnDamage); - } else + } else { + getPl().getText().getSuccessTeleport(sendi); findSafeLocation(sendi, pWorld); + } } void findSafeLocation(CommandSender sendi, PlayerWorld pWorld) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPluginValidation.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPluginValidation.java index c70f2e4..e2beb93 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPluginValidation.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPluginValidation.java @@ -19,8 +19,8 @@ public class RTPPluginValidation { //Safe locations depending on enabled depende boolean worldguard = getWorlguard(loc); boolean griefPrevention = getGriefprevention(loc); boolean towny = getTowny(loc); - boolean redProject = getRedProject(loc); - return worldguard && griefPrevention && towny && redProject; + boolean redProtect = getRedProtect(loc); + return worldguard && griefPrevention && towny && redProtect; } // TESTED on v2.12.3 @@ -71,7 +71,7 @@ public class RTPPluginValidation { //Safe locations depending on enabled depende // TESTED 2.12.3 // RedProtect v7.7.2 // https://www.spigotmc.org/resources/redprotect.15841/ - private boolean getRedProject(Location loc) { + private boolean getRedProtect(Location loc) { boolean result = true; if (getPl().getSettings().getsDepends().isRedProtect()) try { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPotions.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPotions.java index b44b5ed..b7e0b51 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPotions.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPotions.java @@ -50,7 +50,7 @@ public class RTPPotions { //Potions AND Invincibility void giveEffects(Player p) { if (invincibleEnabled) - p.setNoDamageTicks(invincibleTime); + p.setNoDamageTicks(invincibleTime * 20); if (potionEnabled) { List effects = new ArrayList<>(); for (PotionEffectType e : potionEffects.keySet()) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java index ae58c96..52234d4 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java @@ -7,15 +7,10 @@ import org.bukkit.Sound; import org.bukkit.command.CommandSender; public class Messages { - private Main pl; - private String preM = "Messages.", preT = "Titles.", preH = "Help.", preU = "Usage."; - - public Messages(Main pl) { - this.pl = pl; - } + private final String preM = "Messages.", preH = "Help.", preU = "Usage."; private LangFile getLang() { - return pl.getFiles().getLang(); + return Main.getInstance().getFiles().getLang(); } public void sms(CommandSender sendi, String msg) { @@ -23,6 +18,7 @@ public class Messages { sendi.sendMessage(colorPre(msg)); } + //SUCCESS public void getSuccessPaid(CommandSender sendi, int price, String x, String y, String z, String world, int attempts) { sms(sendi, getLang().getString(preM + "Success.Paid").replaceAll("%price%", String.valueOf(price)).replaceAll @@ -39,6 +35,11 @@ public class Messages { sms(sendi, getLang().getString(preM + "Success.Loading")); } + public void getSuccessTeleport(CommandSender sendi) { + sms(sendi, getLang().getString(preM + "Success.Teleport")); + } + + //FAILED public void getFailedNotSafe(CommandSender sendi, int attempts) { sms(sendi, getLang().getString(preM + "Failed.NotSafe").replaceAll("%attempts%", Integer.toString(attempts))); } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java index f04aea1..c8e6152 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java @@ -36,34 +36,39 @@ public class SoftDepends { void load() { FileBasics.FILETYPE config = Main.getInstance().getFiles().getType(FileBasics.FILETYPE.CONFIG); - respect_worldguard = config.getBoolean("Settings.Respect.WorldGuard"); - respect_griefprevention = config.getBoolean("Settings.Respect.GriefPrevention"); - respect_towny = config.getBoolean("Settings.Respect.Towny"); - respect_redProtect = config.getBoolean("Settings.Respect.RedProtect"); + String pre = "Settings.Respect."; + respect_worldguard = config.getBoolean( pre + "WorldGuard"); + respect_griefprevention = config.getBoolean(pre + "GriefPrevention"); + respect_towny = config.getBoolean( pre + "Towny"); + respect_redProtect = config.getBoolean( pre + "RedProtect"); registerWorldguard(); registerGriefPrevention(); registerTowny(); - registerRedProject(); + registerRedProtect(); } public void registerWorldguard() { worldguard = respect_worldguard && Bukkit.getPluginManager().isPluginEnabled("WorldGuard"); - debug("Registered `WorldGuard` = " + worldguard); + if (respect_worldguard) + debug("Respecting `WorldGuard` was " + (worldguard ? "SUCCESSFULLY" : "NOT") + " registered"); } public void registerGriefPrevention() { griefprevention = respect_griefprevention && Bukkit.getPluginManager().isPluginEnabled("GriefPrevention"); - debug("Registered `GriefPrevention` = " + griefprevention); + if (respect_griefprevention) + debug("Respecting `GriefPrevention` was " + (griefprevention ? "SUCCESSFULLY" : "NOT") + " registered"); } public void registerTowny() { towny = respect_towny && Bukkit.getPluginManager().isPluginEnabled("Towny"); - debug("Registered `Towny` = " + towny); + if (respect_towny) + debug("Respecting `Towny` was " + (towny ? "SUCCESSFULLY" : "NOT") + " registered"); } - public void registerRedProject() { + public void registerRedProtect() { redProtect = respect_redProtect && Bukkit.getPluginManager().isPluginEnabled("RedProtect"); - debug("Registered `RedProtect` = " + redProtect); + if (respect_redProtect) + debug("Respecting `RedProtect` was " + (redProtect ? "SUCCESSFULLY" : "NOT") + " registered"); } private void debug(String str) {