diff --git a/pom.xml b/pom.xml
index ba1827c..62d86e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
me.SuperRonanCraft
BetterRTP
jar
- 3.4.5.1-DEV
+ 3.5.0-DEV
1.8
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java
index fbd6145..2dec9b8 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java
@@ -5,22 +5,21 @@ import me.SuperRonanCraft.BetterRTP.player.PlayerInfo;
import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.events.EventListener;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP;
+import me.SuperRonanCraft.BetterRTP.references.Permissions;
import me.SuperRonanCraft.BetterRTP.references.WarningHandler;
import me.SuperRonanCraft.BetterRTP.references.database.DatabaseHandler;
+import me.SuperRonanCraft.BetterRTP.references.depends.DepEconomy;
import me.SuperRonanCraft.BetterRTP.references.depends.DepPlaceholderAPI;
+import me.SuperRonanCraft.BetterRTP.references.file.Files;
+import me.SuperRonanCraft.BetterRTP.references.invs.RTPInventories;
import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore;
-import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueHandler;
-import me.SuperRonanCraft.BetterRTP.references.Permissions;
-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.MessagesOLD;
-import me.SuperRonanCraft.BetterRTP.references.invs.RTPInventories;
-import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler;
-import me.SuperRonanCraft.BetterRTP.references.settings.Settings;
import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerDataManager;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueHandler;
+import me.SuperRonanCraft.BetterRTP.references.settings.Settings;
import me.SuperRonanCraft.BetterRTP.references.web.Metrics;
+import me.SuperRonanCraft.BetterRTP.references.web.Updater;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java
index f8ad66e..af82a85 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java
@@ -1,15 +1,13 @@
package me.SuperRonanCraft.BetterRTP.player.commands.types;
-import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
-import me.SuperRonanCraft.BetterRTP.references.file.MessagesOLD;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
+import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.List;
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 b16c0e8..d2009f8 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 me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.messages.Message;
import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
+import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueHandler;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldDefault;
@@ -42,18 +43,26 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
if (args.length > 2 && 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;
- if (args.length > 2) {
- player = Bukkit.getPlayer(args[2]);
- if (player != null)
- world = player.getWorld();
- }
- if (world == null)
- world = ((Player) sendi).getWorld();
+ Player player = (Player) sendi;
+ World world = player.getWorld();
sendInfoWorld(sendi, infoGetWorld(sendi, world, player, null));
} else
infoWorld(sendi);
+ } else if (args[1].equalsIgnoreCase(CmdInfoSub.PLAYER.name())) {
+ World world = null;
+ Player player = null;
+ if (args.length > 2) {
+ player = Bukkit.getPlayer(args[2]);
+ if (player != null)
+ world = player.getWorld();
+ }
+ if (player == null) {
+ MessagesCore.NOTONLINE.send(sendi, args.length > 2 ? args[2] : "NULL");
+ return;
+ }
+ if (world == null)
+ world = player.getWorld();
+ sendInfoWorld(sendi, infoGetWorld(sendi, world, player, null));
}
} else
infoWorld(sendi);
@@ -65,7 +74,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
}
enum CmdInfoSub { //Sub commands, future expansions
- PARTICLES, SHAPES, POTION_EFFECTS, WORLD
+ PARTICLES, SHAPES, POTION_EFFECTS, WORLD, PLAYER
}
//Particles
@@ -116,40 +125,40 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
sendInfoWorld(sendi, info);
}
- public static List infoGetWorld(CommandSender sendi, World w, Player player, WorldPlayer _rtpworld) { //Specific world
+ public static List infoGetWorld(CommandSender sendi, World world, Player player, WorldPlayer _rtpworld) { //Specific world
List 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("&bRTP info for &7" + world.getName() + (player != null ? " &d(personalized)" : ""));
info.add("&7- &eViewing as: &b" + (player != null ? player.getName() : "ADMIN"));
- 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- &6Allowed: " + (player != null ? PermissionNode.getAWorld(player, world.getName()) ? _true : _false : "&cN/A"));
+ if (pl.getRTP().getDisabledWorlds().contains(world.getName()) && !pl.getRTP().overriden.containsKey(world.getName())) //World disabled
info.add("&7- &eDisabled: " + _true);
else {
info.add("&7- &eDisabled: " + _false);
- if (pl.getRTP().overriden.containsKey(w.getName())) //World Overriden
- info.add("&7- &6Overriden: " + _true + " &7- target `" + pl.getRTP().overriden.get(w.getName()) + "`");
- else {
+ if (pl.getRTP().overriden.containsKey(world.getName())) { //World Overriden
+ world = Bukkit.getWorld(pl.getRTP().overriden.get(world.getName()));
+ info.add("&7- &6Overriden: " + _true + " &7- target `" + world.getName() + "`");
+ } else
info.add("&7- &6Overriden&7: " + _false);
- if (_rtpworld == null)
- _rtpworld = HelperRTP.getPlayerWorld(new RTPSetupInformation(w, player != null ? player : sendi, player, player != null));
- WorldDefault worldDefault = BetterRTP.getInstance().getRTP().getRTPdefaultWorld();
- 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- &eWorld Type&7: &f" + _rtpworld.getWorldtype().name());
- info.add("&7- &6Center X&7: &f" + _rtpworld.getCenterX() + getInfo(_rtpworld, worldDefault, "centerx"));
- info.add("&7- &eCenter Z&7: &f" + _rtpworld.getCenterZ() + getInfo(_rtpworld, worldDefault, "centerz"));
- info.add("&7- &6Max Radius&7: &f" + _rtpworld.getMaxRadius() + getInfo(_rtpworld, worldDefault, "maxrad"));
- info.add("&7- &eMin Radius&7: &f" + _rtpworld.getMinRadius() + getInfo(_rtpworld, worldDefault, "minrad"));
- info.add("&7- &6Min Y&7: &f" + _rtpworld.getMinY());
- info.add("&7- &eMax Y&7: &f" + _rtpworld.getMaxY());
- info.add("&7- &6Price&7: &f" + _rtpworld.getPrice() + getInfo(_rtpworld, worldDefault, "price"));
- info.add("&7- &eCooldown&7: &f" + _rtpworld.getCooldown() + getInfo(_rtpworld, worldDefault, "cooldown"));
- info.add("&7- &6Biomes&7: &f" + _rtpworld.getBiomes().toString());
- info.add("&7- &eShape&7: &f" + _rtpworld.getShape().toString() + getInfo(_rtpworld, worldDefault, "shape"));
- info.add("&7- &6Permission Group&7: " + (_rtpworld.getConfig() != null ? "&a" + _rtpworld.getConfig().getGroupName() : "&cN/A"));
- info.add("&7- &eQueue Available&7: " + QueueHandler.getApplicable(_rtpworld).size());
- }
+ if (_rtpworld == null)
+ _rtpworld = HelperRTP.getPlayerWorld(new RTPSetupInformation(world, player != null ? player : sendi, player, player != null));
+ WorldDefault worldDefault = BetterRTP.getInstance().getRTP().getRTPdefaultWorld();
+ 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- &eWorld Type&7: &f" + _rtpworld.getWorldtype().name());
+ info.add("&7- &6Center X&7: &f" + _rtpworld.getCenterX() + getInfo(_rtpworld, worldDefault, "centerx"));
+ info.add("&7- &eCenter Z&7: &f" + _rtpworld.getCenterZ() + getInfo(_rtpworld, worldDefault, "centerz"));
+ info.add("&7- &6Max Radius&7: &f" + _rtpworld.getMaxRadius() + getInfo(_rtpworld, worldDefault, "maxrad"));
+ info.add("&7- &eMin Radius&7: &f" + _rtpworld.getMinRadius() + getInfo(_rtpworld, worldDefault, "minrad"));
+ info.add("&7- &6Min Y&7: &f" + _rtpworld.getMinY());
+ info.add("&7- &eMax Y&7: &f" + _rtpworld.getMaxY());
+ info.add("&7- &6Price&7: &f" + _rtpworld.getPrice() + getInfo(_rtpworld, worldDefault, "price"));
+ info.add("&7- &eCooldown&7: &f" + _rtpworld.getCooldown() + getInfo(_rtpworld, worldDefault, "cooldown"));
+ info.add("&7- &6Biomes&7: &f" + _rtpworld.getBiomes().toString());
+ info.add("&7- &eShape&7: &f" + _rtpworld.getShape().toString() + getInfo(_rtpworld, worldDefault, "shape"));
+ info.add("&7- &6Permission Group&7: " + (_rtpworld.getConfig() != null ? "&a" + _rtpworld.getConfig().getGroupName() : "&cN/A"));
+ info.add("&7- &eQueue Available&7: " + QueueHandler.getApplicable(_rtpworld).size());
}
return info;
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java
index 3f7116e..b661f85 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java
@@ -84,7 +84,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
}
private static HashMap getLocations() {
- return BetterRTP.getInstance().getRTP().RTPworldLocations;
+ return BetterRTP.getInstance().getRTP().getRTPworldLocations();
}
//Get locations a player has access to
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPParticles.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPParticles.java
index 42afd77..717468b 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPParticles.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPParticles.java
@@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
+import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
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 68f2657..2687a34 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPotions.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPotions.java
@@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
+import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSounds.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSounds.java
index 02aa680..1da13ac 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSounds.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSounds.java
@@ -5,7 +5,7 @@ import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.packets.WrapperPlayServerNamedSoundEffect;
-import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
+import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepPlaceholderAPI.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepPlaceholderAPI.java
index 0aef8dc..0b6f843 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepPlaceholderAPI.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepPlaceholderAPI.java
@@ -7,19 +7,13 @@ import me.SuperRonanCraft.BetterRTP.references.helpers.*;
import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
-import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler;
-import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
-import me.SuperRonanCraft.BetterRTP.references.settings.Settings;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
-import java.util.Date;
-import java.util.concurrent.TimeUnit;
-
public class DepPlaceholderAPI extends PlaceholderExpansion {
@NotNull
@@ -45,29 +39,20 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
PlayerData data = HelperPlayer.getData(player);
if (request.equalsIgnoreCase("count")) {
return String.valueOf(data.getRtpCount());
- } else if (request.equalsIgnoreCase("cooldown")) {
- return cooldown(data, player.getWorld());
- } else if (request.startsWith("cooldown_")) {
- World world = null;
- String world_name = request.replace("cooldown_", "");
- if (world_name.length() > 0) {
- for (World _world : Bukkit.getWorlds()) {
- if (world_name.equalsIgnoreCase(_world.getName())) {
- world = _world;
- break;
- }
- }
+ } else if (request.startsWith("cooldown")) {
+ if (request.equalsIgnoreCase("cooldown")) {
+ return cooldown(data, player.getWorld());
+ } else if (request.startsWith("cooldown_")) {
+ World world = getWorld(request.replace("cooldown_", ""));
+ return cooldown(data, world);
+ } else if (request.equalsIgnoreCase("cooldowntime")) {
+ return cooldownTime(data, player.getWorld());
+ } else if (request.startsWith("cooldowntime_")) {
+ World world = getWorld(request.replace("cooldowntime_", ""));
+ return cooldownTime(data, world);
}
- return cooldown(data, world);
} else if (request.startsWith("canrtp_")) {
- String world_name = request.replace("canrtp_", "");
- World world = null;
- if (world_name.length() > 0)
- for (World _world : Bukkit.getWorlds())
- if (world_name.equalsIgnoreCase(_world.getName())) {
- world = _world;
- break;
- }
+ World world = getWorld(request.replace("canrtp_", ""));
return canRTP(player, world);
} else if (request.equalsIgnoreCase("canrtp")) {
World world = player.getWorld();
@@ -78,19 +63,23 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
private String cooldown(PlayerData data, World world) {
if (world == null) return "Invalid World";
- if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName()))
- world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
- CooldownData cooldownData = data.getCooldowns().getOrDefault(world, null);
+ CooldownData cooldownData = data.getCooldowns().getOrDefault(HelperRTP.getActualWorld(data.player, world), null);
if (cooldownData != null)
- return HelperDate.stringFrom(cooldownData.getTime());
+ return HelperDate.left(cooldownData.getTime());
else
- return "None";
+ return HelperDate.total(0L);
+ }
+
+ private String cooldownTime(PlayerData data, World world) {
+ if (world == null) return "Invalid World";
+ RTPSetupInformation setup_info = new RTPSetupInformation(HelperRTP.getActualWorld(data.player, world), data.player, data.player, true);
+ WorldPlayer pWorld = HelperRTP.getPlayerWorld(setup_info);
+ return HelperDate.total(HelperRTP_Check.applyCooldown(data.player, data.player) ? pWorld.getCooldown() * 1000L : 0L);
}
private String canRTP(Player player, World world) {
if (world == null) return "Invalid World";
- if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName()))
- world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
+ world = HelperRTP.getActualWorld(player, world);
//Permission
if (!PermissionNode.getAWorld(player, world.getName()))
return BetterRTP.getInstance().getSettings().getPlaceholder_nopermission();
@@ -108,4 +97,15 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
//True
return BetterRTP.getInstance().getSettings().getPlaceholder_true();
}
+
+ private World getWorld(String world_name) {
+ World world = null;
+ if (world_name.length() > 0)
+ for (World _world : Bukkit.getWorlds())
+ if (world_name.equalsIgnoreCase(_world.getName())) {
+ world = _world;
+ break;
+ }
+ return world;
+ }
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/LangFile.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/LangFile.java
deleted file mode 100644
index c6cf8b0..0000000
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/LangFile.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package me.SuperRonanCraft.BetterRTP.references.file;
-
-import me.SuperRonanCraft.BetterRTP.BetterRTP;
-import org.bukkit.configuration.file.YamlConfiguration;
-
-import java.io.File;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Arrays;
-import java.util.List;
-
-public class LangFile {
- private YamlConfiguration config = new YamlConfiguration();
-
- String getString(String path) {
- if (config.isString(path))
- return config.getString(path);
- return "SOMETHING WENT WRONG";
- }
-
- @SuppressWarnings("all")
- public List getStringList(String path) {
- if (config.isList(path))
- return config.getStringList(path);
- return Arrays.asList("SOMETHING WENT WRONG!");
- }
-
- public boolean getBoolean(String path) {
- return config.getBoolean(path);
- }
-
- @SuppressWarnings("all")
- public void load() {
- generateDefaults();
- String fileName = "lang" + File.separator + getPl().getFiles().getType(FileOther.FILETYPE.CONFIG).getString("Language-File");
- File file = new File(getPl().getDataFolder(), fileName);
- if (!file.exists()) {
- fileName = "lang" + File.separator + defaultLangs[0]; //Default to english
- file = new File(getPl().getDataFolder(), fileName);
- }
- try {
- config.load(file);
- InputStream in = BetterRTP.getInstance().getResource(fileName);
- if (in == null)
- in = getPl().getResource(fileName.replace(File.separator, "/"));
- if (in != null) {
- config.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(in)));
- config.options().copyDefaults(true);
- in.close();
- }
- config.save(file);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private final String[] defaultLangs = {
- "chs.yml", //Chinese Simplified (OasisAkari)
- "cht.yml", //Chinese (OasisAkari & kamiya10)
- "cs.yml", //Czech (Lewisparkle)
- "da.yml", //Danish (Janbchr)
- "de.yml", //German (IBimsDaNico#8690)
- "en.yml",
- "es.yml", //Spanish (emgv)
- "fr.yml", //French (At0micA55 & Mrflo67)
- "he.yml", //Hebrew (thefourcraft)
- "it.yml", //Italian (iVillager)
- "ja.yml", //Japanese (ViaSnake)
- "nl.yml", //Dutch (QuestalNetwork) (GeleVla)
- "no.yml", //Norwegian (Fraithor & Janbchr)
- "pl.yml", //Polish (Farum & TeksuSiK)
- "ro.yml", //Romanian (GamingXBlood)
- "ru.yml", //Russian (Logan)
- "vi.yml", //Vietnamese (VoChiDanh#0862)
- };
-
- private void generateDefaults() {
- //Generate all language files
- for (String yaml : defaultLangs) {
- generateDefaultConfig(yaml, yaml); //Generate its own defaults
- if (!yaml.equals(defaultLangs[0]))
- generateDefaultConfig(yaml, defaultLangs[0]); //Generate the english defaults (incase)
- }
- }
-
- private void generateDefaultConfig(String fName, String fNameDef /*Name of file to generate defaults*/) {
- String fileName = "lang" + File.separator + fName;
- File file = new File(getPl().getDataFolder(), fileName);
- if (!file.exists())
- getPl().saveResource(fileName, false);
- try {
- YamlConfiguration config = new YamlConfiguration();
- config.load(file);
- String fileNameDef = "lang" + File.separator + fNameDef;
- InputStream in = BetterRTP.getInstance().getResource(fileNameDef);
- if (in == null)
- in = getPl().getResource(fileNameDef.replace(File.separator, "/"));
- if (in != null) {
- config.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(in)));
- config.options().copyDefaults(true);
- in.close();
- }
- config.save(file);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- }
-
- private BetterRTP getPl() {
- return BetterRTP.getInstance();
- }
-}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/MessagesOLD.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/MessagesOLD.java
deleted file mode 100644
index 952270e..0000000
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/MessagesOLD.java
+++ /dev/null
@@ -1,285 +0,0 @@
-package me.SuperRonanCraft.BetterRTP.references.file;
-
-import me.SuperRonanCraft.BetterRTP.BetterRTP;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class MessagesOLD {
- private final String preM = "Messages.", preH = "Help.", preU = "Usage.";
-
- private FileLanguage getLang() {
- return BetterRTP.getInstance().getFiles().getLang();
- }
-
- public void sms(CommandSender sendi, String msg) {
- if (!msg.equals(""))
- sendi.sendMessage(colorPre(msg));
- }
-
- public void sms(CommandSender sendi, List msg) {
- if (msg != null && !msg.isEmpty()) {
- msg.forEach(str ->
- msg.set(msg.indexOf(str), color(str)));
- sendi.sendMessage(msg.toArray(new String[0]));
- }
- }
-
- //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
- ("%x%", x).replaceAll("%y%", y).replaceAll("%z%", z).replaceAll("%world%", world).replaceAll
- ("%attempts%", Integer.toString(attempts)));
- }
-
- public void getSuccessBypass(CommandSender sendi, String x, String y, String z, String world, int attemtps) {
- sms(sendi, getLang().getString(preM + "Success.Bypass").replaceAll("%x%", x).replaceAll("%y%", y).replaceAll
- ("%z%", z).replaceAll("%world%", world).replaceAll("%attempts%", Integer.toString(attemtps)));
- }
-
- public void getSuccessLoading(CommandSender sendi) {
- 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)));
- }
-
- public void getFailedPrice(CommandSender sendi, int price) {
- sms(sendi, getLang().getString(preM + "Failed.Price").replaceAll("%price%", String.valueOf(price)));
- }
-
- public void getFailedHunger(CommandSender sendi) {
- sms(sendi, getLang().getString(preM + "Failed.Hunger"));
- }
-
- public void getOtherNotSafe(CommandSender sendi, int attempts, String player) {
- sms(sendi, getLang().getString(preM + "Other.NotSafe").replaceAll("%attempts%", Integer.toString(attempts))
- .replaceAll("%player%", player));
- }
-
- public void getOtherSuccess(CommandSender sendi, String player, String x, String y, String z, String world, int
- attempts) {
- sms(sendi, getLang().getString(preM + "Other.Success").replaceAll("%player%", player).replaceAll("%x%", x)
- .replaceAll("%y%", y).replaceAll("%z%", z).replaceAll("%world%", world).replaceAll("%attempts%",
- Integer.toString(attempts)));
- }
-
- public void getOtherBiome(CommandSender sendi, String biome) {
- sms(sendi, getLang().getString(preM + "Other.Biome").replaceAll("%biome%", biome));
- }
-
- public void getNotExist(CommandSender sendi, String world) {
- sms(sendi, getLang().getString(preM + "NotExist").replaceAll("%world%", world));
- }
-
- public void getReload(CommandSender sendi) {
- sms(sendi, getLang().getString(preM + "Reload"));
- }
-
- public void getNoPermission(CommandSender sendi) {
- sms(sendi, getLang().getString(preM + "NoPermission.Basic"));
- }
-
- public void getNoPermissionWorld(CommandSender sendi, String world) {
- sms(sendi, getLang().getString(preM + "NoPermission.World").replaceAll("%world%", world));
- }
-
- public void getDisabledWorld(CommandSender sendi, String world) {
- sms(sendi, getLang().getString(preM + "DisabledWorld").replaceAll("%world%", world));
- }
-
- public void getCooldown(CommandSender sendi, String time) {
- sms(sendi, getLang().getString(preM + "Cooldown").replaceAll("%time%", time));
- }
-
- public void getInvalid(CommandSender sendi, String cmd) {
- sms(sendi, getLang().getString(preM + "Invalid").replaceAll("%command%", cmd));
- }
-
- public void getNotOnline(CommandSender sendi, String player) {
- sms(sendi, getLang().getString(preM + "NotOnline").replaceAll("%player%", player));
- }
-
- public void getDelay(CommandSender sendi, int time) {
- sms(sendi, getLang().getString(preM + "Delay").replaceAll("%time%", String.valueOf(time)));
- }
-
- public void getSignCreated(CommandSender sendi, String cmd) {
- sms(sendi, getLang().getString(preM + "Sign").replaceAll("%command%", cmd));
- }
-
- public void getMoved(CommandSender sendi) {
- sms(sendi, getLang().getString(preM + "Moved"));
- }
-
- public void getAlready(CommandSender sendi) {
- sms(sendi, getLang().getString(preM + "Already"));
- }
-
- private String getPrefix() {
- return getLang().getString(preM + "Prefix");
- }
-
- public String color(String str) {
- return translateHexColorCodes(str);
- }
-
- //Thank you to zwrumpy on Spigot! (https://www.spigotmc.org/threads/hex-color-code-translate.449748/#post-4270781)
- //Supports 1.8 to 1.18
- private static String translateHexColorCodes(String message) {
- Pattern pattern = Pattern.compile("#[a-fA-F0-9]{6}");
- Matcher matcher = pattern.matcher(message);
- while (matcher.find()) {
- String hexCode = message.substring(matcher.start(), matcher.end());
- String replaceSharp = hexCode.replace('#', 'x');
-
- char[] ch = replaceSharp.toCharArray();
- StringBuilder builder = new StringBuilder("");
- for (char c : ch) {
- builder.append("&").append(c);
- }
-
- message = message.replace(hexCode, builder.toString());
- matcher = pattern.matcher(message);
- }
- return ChatColor.translateAlternateColorCodes('&', message);
- }
-
- public String colorPre(String str) {
- return color(getPrefix() + str);
- }
-
- //Edit
- public void getEditError(CommandSender sendi) {
- sms(sendi, getLang().getString(preM + "Edit.Error"));
- }
-
- public void getEditSet(CommandSender sendi, String type, String value) {
- sms(sendi, getLang().getString(preM + "Edit.Set").replaceAll("%type%", type).replaceAll("%value%", value));
- }
-
- public void getEditRemove(CommandSender sendi, String world) {
- sms(sendi, getLang().getString(preM + "Edit.Remove").replaceAll("%world%", world));
- }
-
- //Help
- public String getHelpPrefix() {
- return getLang().getString(preH + "Prefix");
- }
-
- public String getHelpMain() { //rtp
- return getLang().getString(preH + "Main");
- }
-
- public String getHelpBiome() { //rtp biome
- return getLang().getString(preH + "Biome");
- }
-
- public String getHelpEdit() { //rtp edit
- return getLang().getString(preH + "Edit");
- }
-
- public String getHelpHelp() { //rtp help
- return getLang().getString(preH + "Help");
- }
-
- public String getHelpInfo() { //rtp info
- return getLang().getString(preH + "Info");
- }
-
- public String getHelpPlayer() { //rtp player
- return getLang().getString(preH + "Player");
- }
-
- public String getHelpReload() {
- return getLang().getString(preH + "Reload");
- }
-
- public String getHelpSettings() { //rtp settings
- return getLang().getString(preH + "Settings");
- }
-
- public String getHelpTest() { //rtp test
- return getLang().getString(preH + "Test");
- }
-
- public String getHelpVersion() { //rtp version
- return getLang().getString(preH + "Version");
- }
-
- public String getHelpWorld() { //rtp world
- return getLang().getString(preH + "World");
- }
-
- public String getHelpLocation() { //rtp location
- return getLang().getString(preH + "Location");
- }
-
- //Usage
- public void getUsageRTPOther(CommandSender sendi, String cmd) {
- sms(sendi, getLang().getString(preU + "Player").replaceAll("%command%", cmd));
- }
-
- public void getUsageWorld(CommandSender sendi, String cmd) {
- sms(sendi, getLang().getString(preU + "World").replaceAll("%command%", cmd));
- }
-
- public void getUsageBiome(CommandSender sendi, String cmd) {
- sms(sendi, getLang().getString(preU + "Biome").replaceAll("%command%", cmd));
- }
-
- public void getUsageLocation(CommandSender sendi, String 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) {
- sms(sendi, getLang().getString(preU + "Edit.Base").replaceAll("%command%", cmd));
- }
-
- public void getUsageEditDefault(CommandSender sendi, String cmd) {
- sms(sendi, getLang().getString(preU + "Edit.Default").replaceAll("%command%", cmd));
- }
-
- public void getUsageEditWorld(CommandSender sendi, String cmd) {
- sms(sendi, getLang().getString(preU + "Edit.World").replaceAll("%command%", cmd));
- }
-
- public void getUsageWorldtype(CommandSender sendi, String cmd) {
- sms(sendi, getLang().getString(preU + "Edit.Worldtype").replaceAll("%command%", cmd));
- }
-
- public void getUsageOverride(CommandSender sendi, String cmd) {
- sms(sendi, getLang().getString(preU + "Edit.Override").replaceAll("%command%", cmd));
- }
-
- public void getUsageBlacklistedBlocks(CommandSender sendi, String 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
- public void error(CommandSender sendi) {
- sms(sendi, "&cERROR &7Seems like your Administrator did not update their language file!");
- }
-
- public void getNotPlayer(CommandSender sendi, String cmd) {
- sms(sendi, "Must be a player to use this command! Try '/" + cmd + " help'");
- }
-}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperDate.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperDate.java
index d9aa483..9353bb0 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperDate.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperDate.java
@@ -13,10 +13,20 @@ public class HelperDate {
return Calendar.getInstance().getTime();
}
- public static String stringFrom(Long amount) {
+ public static String left(Long amount) {
Date current_date = HelperDate.getDate();
- long min = Math.min(amount, current_date.getTime());
- long max = Math.max(amount, current_date.getTime());
+ return fromTo(current_date.getTime(), amount);
+ }
+ public static String total(Long amount) {
+ return fromTo(0L, amount);
+ }
+
+ public static String fromTo(Long from, Long to) {
+ Settings settings = BetterRTP.getInstance().getSettings();
+ long min = Math.min(from, to);
+ long max = Math.max(from, to);
+ if (max == min)
+ return settings.getPlaceholder_timeZero();
long diffInMillies = max - min;
long days = 0, hours = 0, minutes = 0, seconds = 0;
if (diffInMillies > 0) {
@@ -28,16 +38,14 @@ public class HelperDate {
diffInMillies -= (1000 * 60) * minutes;
seconds = TimeUnit.SECONDS.convert(diffInMillies, TimeUnit.MILLISECONDS);
}
- Settings settings = BetterRTP.getInstance().getSettings();
- String time_str = settings.getPlaceholder_timeFormat();
- if (time_str.contains("%d"))
- time_str = time_str.replace("%d", settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(days)));
- if (time_str.contains("%h"))
- time_str = time_str.replace("%h", settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(hours)));
- if (time_str.contains("%m"))
- time_str = time_str.replace("%m", settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(max)));
- if (time_str.contains("%s"))
- time_str = time_str.replace("%s", settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(seconds)));
+ String time_str = "";
+ if (days > 0)
+ time_str += settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(days));
+ if (days > 0 || hours > 0)
+ time_str += settings.getPlaceholder_timeHours().replace("{0}", String.valueOf(hours));
+ if (days > 0 || hours > 0 || minutes > 0)
+ time_str += settings.getPlaceholder_timeMinutes().replace("{0}", String.valueOf(minutes));
+ time_str += settings.getPlaceholder_timeSeconds().replace("{0}", String.valueOf(seconds));
return time_str;
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java
index a22511b..34a4c1c 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java
@@ -39,26 +39,23 @@ public class HelperRTP {
public static void tp(@NotNull Player player, CommandSender sendi, @Nullable World world, List biomes, RTP_TYPE rtpType,
boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) {
- if (world == null)
- world = player.getWorld();
- if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName()))
- world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
+ world = getActualWorld(player, world);
RTPSetupInformation setup_info = new RTPSetupInformation(
world,
sendi,
player,
true,
biomes,
- !ignoreDelay && HelperRTP_Check.isDelay(player, sendi),
+ !ignoreDelay && HelperRTP_Check.applyDelay(player, sendi),
rtpType,
locations,
- !ignoreCooldown && HelperRTP_Check.checkCooldown(sendi, player)
+ !ignoreCooldown && HelperRTP_Check.applyCooldown(sendi, player)
);
+ //RTP request cancelled reason
WorldPlayer pWorld = getPlayerWorld(setup_info);
RTP_ERROR_REQUEST_REASON cantReason = HelperRTP_Check.canRTP(player, sendi, pWorld, ignoreCooldown);
- // Not forced and has 'betterrtp.world.'
if (cantReason != null) {
- cantReason.getMsg().send(sendi);
+ cantReason.getMsg().send(sendi, pWorld);
return;
}
//ignore cooldown or else
@@ -69,6 +66,14 @@ public class HelperRTP {
return BetterRTP.getInstance();
}
+ public static World getActualWorld(Player player, World world) {
+ if (world == null)
+ world = player.getWorld();
+ if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName()))
+ world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
+ return world;
+ }
+
@Nullable
public static WorldLocations getRandomLocation(CommandSender sender, World world) {
HashMap locations_permissible = CmdLocation.getLocations(sender, world);
@@ -109,21 +114,7 @@ public class HelperRTP {
}
if (!pWorld.isSetup()) {
- WorldPermissionGroup group = null;
- if (pWorld.getPlayer() != null)
- for (Map.Entry permissionGroup : BetterRTP.getInstance().getRTP().getPermissionGroups().entrySet()) {
- for (Map.Entry worldPermission : permissionGroup.getValue().getWorlds().entrySet()) {
- if (pWorld.getWorld().equals(worldPermission.getValue().getWorld())) {
- if (PermissionNode.getPermissionGroup(pWorld.getPlayer(), permissionGroup.getKey())) {
- if (group != null) {
- if (group.getPriority() < worldPermission.getValue().getPriority())
- continue;
- }
- group = worldPermission.getValue();
- }
- }
- }
- }
+ WorldPermissionGroup group = getGroup(pWorld);
//Permission Group
if (group != null) {
@@ -159,4 +150,22 @@ public class HelperRTP {
return world_type;
}
+ public static WorldPermissionGroup getGroup(WorldPlayer pWorld) {
+ WorldPermissionGroup group = null;
+ if (pWorld.getPlayer() != null)
+ for (Map.Entry permissionGroup : BetterRTP.getInstance().getRTP().getPermissionGroups().entrySet()) {
+ for (Map.Entry worldPermission : permissionGroup.getValue().getWorlds().entrySet()) {
+ if (pWorld.getWorld().equals(worldPermission.getValue().getWorld())) {
+ if (PermissionNode.getPermissionGroup(pWorld.getPlayer(), permissionGroup.getKey())) {
+ if (group != null) {
+ if (group.getPriority() < worldPermission.getValue().getPriority())
+ continue;
+ }
+ group = worldPermission.getValue();
+ }
+ }
+ }
+ }
+ return group;
+ }
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Check.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Check.java
index 529f915..3fad311 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Check.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Check.java
@@ -24,12 +24,12 @@ public class HelperRTP_Check {
if (getPl().getRTP().getDisabledWorlds().contains(pWorld.getWorld().getName())) {
return RTP_ERROR_REQUEST_REASON.WORLD_DISABLED;
}
- if (sendi == player && checkCooldown(sendi, player) && isCoolingDown(sendi, player, pWorld)) { //Is Cooling down
+ if (sendi == player && applyCooldown(sendi, player) && isCoolingDown(sendi, player, pWorld)) { //Is Cooling down
return RTP_ERROR_REQUEST_REASON.COOLDOWN;
}
- if (getPl().getEco().hasBalance(sendi, pWorld))
+ if (!getPl().getEco().hasBalance(sendi, pWorld))
return RTP_ERROR_REQUEST_REASON.PRICE_ECONOMY;
- if (getPl().getEco().hasHunger(sendi, pWorld))
+ if (!getPl().getEco().hasHunger(sendi, pWorld))
return RTP_ERROR_REQUEST_REASON.PRICE_HUNGER;
return null;
}
@@ -39,7 +39,7 @@ public class HelperRTP_Check {
}
public static boolean isCoolingDown(CommandSender sendi, Player player, WorldPlayer pWorld) {
- if (!checkCooldown(sendi, player)) //Bypassing/Forced?
+ if (!applyCooldown(sendi, player)) //Bypassing/Forced?
return false;
CooldownHandler cooldownHandler = getPl().getCooldowns();
if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download
@@ -70,11 +70,11 @@ public class HelperRTP_Check {
return false;
}
- static boolean checkCooldown(CommandSender sendi, Player player) {
+ public static boolean applyCooldown(CommandSender sendi, Player player) {
return getPl().getCooldowns().isEnabled() && !(sendi != player || PermissionNode.BYPASS_COOLDOWN.check(player));
}
- static boolean isDelay(Player player, CommandSender sendi) {
+ public static boolean applyDelay(Player player, CommandSender sendi) {
boolean delay = false;
if (sendi == player) //Forced?
if (getPl().getSettings().isDelayEnabled() && getPl().getSettings().getDelayTime() > 0) //Delay enabled?
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/MessageData.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/MessageData.java
index 3d33393..2616796 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/MessageData.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/MessageData.java
@@ -1,7 +1,6 @@
package me.SuperRonanCraft.BetterRTP.references.messages;
import me.SuperRonanCraft.BetterRTP.references.file.FileData;
-import me.ronancraft.AmethystGear.resources.files.FileData;
public interface MessageData {
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java
index 5cf870a..c9d5da2 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java
@@ -1,8 +1,10 @@
package me.SuperRonanCraft.BetterRTP.references.messages.placeholder;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.Location;
+import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -20,11 +22,21 @@ public class PlaceholderAnalyzer {
str = ints(str, (Integer) info);
if (info instanceof Biome)
str = biome(str, (Biome) info);
+ if (info instanceof WorldPlayer)
+ str = worldPlayer((WorldPlayer) info, str);
+ if (info instanceof World)
+ str = world(str, (World) info);
if (p instanceof Player)
str = papi((Player) p, str);
return str;
}
+ private static String worldPlayer(WorldPlayer pWorld, String str) {
+ str = ints(str, pWorld.getPrice());
+ str = world(str, pWorld.getWorld());
+ return player(str, pWorld.getPlayer());
+ }
+
private static String string(String str, String info) {
if (str.contains(Placeholders.COMMAND.name))
str = str.replace(Placeholders.COMMAND.name, info);
@@ -44,8 +56,12 @@ public class PlaceholderAnalyzer {
str = str.replace(Placeholders.LOCATION_Y.name, String.valueOf(loc.getBlockY()));
if (str.contains(Placeholders.LOCATION_Z.name))
str = str.replace(Placeholders.LOCATION_Z.name, String.valueOf(loc.getBlockZ()));
+ return world(str, loc.getWorld());
+ }
+
+ private static String world(String str, World world) {
if (str.contains(Placeholders.WORLD.name))
- str = str.replace(Placeholders.WORLD.name, loc.getWorld().getName());
+ str = str.replace(Placeholders.WORLD.name, world.getName());
return str;
}
@@ -73,6 +89,8 @@ public class PlaceholderAnalyzer {
str = str.replace(Placeholders.PRICE.name, String.valueOf(num));
if (str.contains(Placeholders.DELAY.name))
str = str.replace(Placeholders.DELAY.name, String.valueOf(num));
+ if (str.contains(Placeholders.TIME.name))
+ str = str.replace(Placeholders.TIME.name, String.valueOf(num));
return str;
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/Placeholders.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/Placeholders.java
index 185f3fd..941d592 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/Placeholders.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/Placeholders.java
@@ -15,6 +15,7 @@ public enum Placeholders {
ATTEMPTS("attempts"),
PRICE("price"),
DELAY("delay"),
+ TIME("time"),
//Other
BIOME("biome")
;
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java
index 5a060c2..54a4270 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java
@@ -33,7 +33,7 @@ public interface RTPWorld_Defaulted {
void setCooldown(long value);
default void setupDefaults() {
- setAllFrom(BetterRTP.getInstance().getRTP().RTPdefaultWorld);
+ setAllFrom(BetterRTP.getInstance().getRTP().getRTPdefaultWorld());
}
default void setAllFrom(RTPWorld rtpWorld) {
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java
index c67803b..428324e 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java
@@ -65,7 +65,7 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
if (maxRad <= 0) {
Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Custom world '" + world + "' Maximum radius of '" + maxRad + "' is not allowed! Set to default value!");
- maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius();
+ maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
}
}
if (test.get("MinRadius") != null) {
@@ -76,9 +76,9 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
if (minRad < 0 || minRad >= maxRad) {
Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Custom world '" + world + "' Minimum radius of '" + minRad + "' is not allowed! Set to default value!");
- minRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMinRadius();
+ minRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMinRadius();
if (minRad >= maxRad)
- maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius();
+ maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
}
}
if (test.get("Biomes") != null) {
@@ -127,13 +127,13 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
if (maxRad <= 0) {
Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Custom world '" + world + "' Maximum radius of '" + maxRad + "' is not allowed! Set to default value!");
- maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius();
+ maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
}
if (minRad < 0 || minRad >= maxRad) {
Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Custom world '" + world + "' Minimum radius of '" + minRad + "' is not allowed! Set to default value!");
- minRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMinRadius();
+ minRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMinRadius();
}
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldDefault.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldDefault.java
index ca6f49a..146ab9d 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldDefault.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldDefault.java
@@ -4,6 +4,7 @@ package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
+import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import org.bukkit.World;
import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java
index a63c5e0..21f3d68 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java
@@ -74,7 +74,7 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted {
if (maxRad <= 0) {
Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Location '" + location_name + "' Maximum radius of '" + maxRad + "' is not allowed! Set to default value!");
- maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius();
+ maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
}
BetterRTP.debug("- - MaxRadius: " + maxRad);
}
@@ -84,9 +84,9 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted {
if (minRad < 0 || minRad >= maxRad) {
Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Location '" + location_name + "' Minimum radius of '" + minRad + "' is not allowed! Set to default value!");
- minRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMinRadius();
+ minRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMinRadius();
if (minRad >= maxRad) {
- maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius();
+ maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
BetterRTP.debug("- ! MaxRadius: " + maxRad);
}
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPermissionGroup.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPermissionGroup.java
index 13a92d0..1cf3301 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPermissionGroup.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPermissionGroup.java
@@ -66,7 +66,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
if (maxRad <= 0) {
Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Group '" + group + "' Maximum radius of '" + maxRad + "' is not allowed! Set to default value!");
- maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius();
+ maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
}
}
if (field.equalsIgnoreCase("MinRadius")) {
@@ -77,9 +77,9 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
if (minRad < 0 || minRad >= maxRad) {
Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Group '" + group + "' Minimum radius of '" + minRad + "' is not allowed! Set to default value!");
- minRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMinRadius();
+ minRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMinRadius();
if (minRad >= maxRad)
- maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius();
+ maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
}
}
if (field.equalsIgnoreCase("Biomes")) {
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java
index 9d73081..18ad266 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java
@@ -29,11 +29,11 @@ public class Settings {
@Getter private String placeholder_cooldown;
@Getter private String placeholder_balance;
@Getter private String placeholder_hunger;
- @Getter private String placeholder_timeFormat;
@Getter private String placeholder_timeDays;
@Getter private String placeholder_timeHours;
@Getter private String placeholder_timeMinutes;
@Getter private String placeholder_timeSeconds;
+ @Getter private String placeholder_timeZero;
public void load() { //Load Settings
@@ -58,11 +58,11 @@ public class Settings {
placeholder_cooldown = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.CanRTP.Cooldown");
placeholder_balance = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.CanRTP.Price");
placeholder_hunger = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.CanRTP.Hunger");
- placeholder_timeFormat = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Format");
placeholder_timeDays = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Days");
placeholder_timeHours = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Hours");
placeholder_timeMinutes = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Minutes");
placeholder_timeSeconds = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Seconds");
+ placeholder_timeZero = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.ZeroAll");
depends.load();
}
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 7208589..79fe226 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java
@@ -5,6 +5,7 @@ import lombok.Setter;
import me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins.REGIONPLUGINS;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
+import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import org.bukkit.Bukkit;
import java.util.logging.Level;
diff --git a/src/main/resources/placeholders.yml b/src/main/resources/placeholders.yml
index 64559b6..ec382d7 100644
--- a/src/main/resources/placeholders.yml
+++ b/src/main/resources/placeholders.yml
@@ -2,18 +2,19 @@
betterrtp_count: 'Get total amount of rtp''s done'
betterrtp_cooldown: 'Get cooldown in current world'
betterrtp_cooldown_: 'Get cooldown of a specified world'
+betterrtp_cooldowntime: 'Get cooldown time subject to in current world'
+betterrtp_cooldowntime_: 'Get cooldown time subject to in specified world'
betterrtp_canrtp_: 'Get the reason or yes output if player can rtp in set world'
betterrtp_canrtp: 'Get the reason or yes output if player can rtp in current world'
##Config section for placeholder outputs
Config:
TimeFormat:
- Days: '{0} Day(s)'
- Hours: '{0} Hours'
- Minutes: '{0} Mins'
+ Days: '{0} Day(s), '
+ Hours: '{0} Hours, '
+ Minutes: '{0} Mins and '
Seconds: '{0} Secs'
- #Placeholder %d = DAYS, %h = HOURS, %m = MINUTES, %s = SECONDS
- Format: '%d, %h, %m and %s'
+ ZeroAll: 'None'
CanRTP:
Success: '&aYes'
NoPermission: '&cNo Permission'