placeholder fixes + info command player argument

This commit is contained in:
RonanCraft
2022-10-13 17:17:04 -04:00
parent d3a9da2f76
commit 831f5d29da
25 changed files with 194 additions and 546 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId> <groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId> <artifactId>BetterRTP</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>3.4.5.1-DEV</version> <version>3.5.0-DEV</version>
<properties> <properties>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
@@ -5,22 +5,21 @@ import me.SuperRonanCraft.BetterRTP.player.PlayerInfo;
import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.events.EventListener; import me.SuperRonanCraft.BetterRTP.player.events.EventListener;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP;
import me.SuperRonanCraft.BetterRTP.references.Permissions;
import me.SuperRonanCraft.BetterRTP.references.WarningHandler; import me.SuperRonanCraft.BetterRTP.references.WarningHandler;
import me.SuperRonanCraft.BetterRTP.references.database.DatabaseHandler; 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.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.Message_RTP;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore; 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.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.Metrics;
import me.SuperRonanCraft.BetterRTP.references.web.Updater;
import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -1,15 +1,13 @@
package me.SuperRonanCraft.BetterRTP.player.commands.types; 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.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP; import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@@ -9,6 +9,7 @@ import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.messages.Message; import me.SuperRonanCraft.BetterRTP.references.messages.Message;
import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP; 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.messages.MessagesHelp;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueHandler; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueHandler;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldDefault; 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) { if (args.length > 2 && Bukkit.getWorld(args[2]) != null) {
sendInfoWorld(sendi, infoGetWorld(sendi, Bukkit.getWorld(args[2]), null, null)); sendInfoWorld(sendi, infoGetWorld(sendi, Bukkit.getWorld(args[2]), null, null));
} else if (sendi instanceof Player) { //Personalize with permission groups } else if (sendi instanceof Player) { //Personalize with permission groups
World world = null; Player player = (Player) sendi;
Player player = null; World world = player.getWorld();
if (args.length > 2) {
player = Bukkit.getPlayer(args[2]);
if (player != null)
world = player.getWorld();
}
if (world == null)
world = ((Player) sendi).getWorld();
sendInfoWorld(sendi, infoGetWorld(sendi, world, player, null)); sendInfoWorld(sendi, infoGetWorld(sendi, world, player, null));
} else } else
infoWorld(sendi); 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 } else
infoWorld(sendi); infoWorld(sendi);
@@ -65,7 +74,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
} }
enum CmdInfoSub { //Sub commands, future expansions enum CmdInfoSub { //Sub commands, future expansions
PARTICLES, SHAPES, POTION_EFFECTS, WORLD PARTICLES, SHAPES, POTION_EFFECTS, WORLD, PLAYER
} }
//Particles //Particles
@@ -116,40 +125,40 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
sendInfoWorld(sendi, info); sendInfoWorld(sendi, info);
} }
public static List<String> infoGetWorld(CommandSender sendi, World w, Player player, WorldPlayer _rtpworld) { //Specific world public static List<String> infoGetWorld(CommandSender sendi, World world, Player player, WorldPlayer _rtpworld) { //Specific world
List<String> info = new ArrayList<>(); List<String> info = new ArrayList<>();
BetterRTP pl = BetterRTP.getInstance(); BetterRTP pl = BetterRTP.getInstance();
String _true = "&aTrue", _false = "&bFalse"; String _true = "&aTrue", _false = "&bFalse";
info.add("&bRTP info for &7" + w.getName() + (player != null ? " &d(personalized)" : "")); info.add("&bRTP info for &7" + world.getName() + (player != null ? " &d(personalized)" : ""));
info.add("&7- &eViewing as: &b" + (player != null ? player.getName() : "ADMIN")); info.add("&7- &eViewing as: &b" + (player != null ? player.getName() : "ADMIN"));
info.add("&7- &6Allowed: " + (player != null ? PermissionNode.getAWorld(player, w.getName()) ? _true : _false : "&cN/A")); info.add("&7- &6Allowed: " + (player != null ? PermissionNode.getAWorld(player, world.getName()) ? _true : _false : "&cN/A"));
if (pl.getRTP().getDisabledWorlds().contains(w.getName())) //World disabled if (pl.getRTP().getDisabledWorlds().contains(world.getName()) && !pl.getRTP().overriden.containsKey(world.getName())) //World disabled
info.add("&7- &eDisabled: " + _true); info.add("&7- &eDisabled: " + _true);
else { else {
info.add("&7- &eDisabled: " + _false); info.add("&7- &eDisabled: " + _false);
if (pl.getRTP().overriden.containsKey(w.getName())) //World Overriden if (pl.getRTP().overriden.containsKey(world.getName())) { //World Overriden
info.add("&7- &6Overriden: " + _true + " &7- target `" + pl.getRTP().overriden.get(w.getName()) + "`"); world = Bukkit.getWorld(pl.getRTP().overriden.get(world.getName()));
else { info.add("&7- &6Overriden: " + _true + " &7- target `" + world.getName() + "`");
} else
info.add("&7- &6Overriden&7: " + _false); info.add("&7- &6Overriden&7: " + _false);
if (_rtpworld == null) if (_rtpworld == null)
_rtpworld = HelperRTP.getPlayerWorld(new RTPSetupInformation(w, player != null ? player : sendi, player, player != null)); _rtpworld = HelperRTP.getPlayerWorld(new RTPSetupInformation(world, player != null ? player : sendi, player, player != null));
WorldDefault worldDefault = BetterRTP.getInstance().getRTP().getRTPdefaultWorld(); WorldDefault worldDefault = BetterRTP.getInstance().getRTP().getRTPdefaultWorld();
info.add("&7- &eSetup Type&7: " + _rtpworld.setup_type.name() + getInfo(_rtpworld, worldDefault, "setup")); info.add("&7- &eSetup Type&7: " + _rtpworld.setup_type.name() + getInfo(_rtpworld, worldDefault, "setup"));
info.add("&7- &6Use World Border&7: " + (_rtpworld.getUseWorldborder() ? _true : _false)); info.add("&7- &6Use World Border&7: " + (_rtpworld.getUseWorldborder() ? _true : _false));
info.add("&7- &eWorld Type&7: &f" + _rtpworld.getWorldtype().name()); 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- &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- &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- &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- &eMin Radius&7: &f" + _rtpworld.getMinRadius() + getInfo(_rtpworld, worldDefault, "minrad"));
info.add("&7- &6Min Y&7: &f" + _rtpworld.getMinY()); info.add("&7- &6Min Y&7: &f" + _rtpworld.getMinY());
info.add("&7- &eMax Y&7: &f" + _rtpworld.getMaxY()); info.add("&7- &eMax Y&7: &f" + _rtpworld.getMaxY());
info.add("&7- &6Price&7: &f" + _rtpworld.getPrice() + getInfo(_rtpworld, worldDefault, "price")); 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- &eCooldown&7: &f" + _rtpworld.getCooldown() + getInfo(_rtpworld, worldDefault, "cooldown"));
info.add("&7- &6Biomes&7: &f" + _rtpworld.getBiomes().toString()); 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- &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- &6Permission Group&7: " + (_rtpworld.getConfig() != null ? "&a" + _rtpworld.getConfig().getGroupName() : "&cN/A"));
info.add("&7- &eQueue Available&7: " + QueueHandler.getApplicable(_rtpworld).size()); info.add("&7- &eQueue Available&7: " + QueueHandler.getApplicable(_rtpworld).size());
}
} }
return info; return info;
} }
@@ -84,7 +84,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
} }
private static HashMap<String, RTPWorld> getLocations() { private static HashMap<String, RTPWorld> getLocations() {
return BetterRTP.getInstance().getRTP().RTPworldLocations; return BetterRTP.getInstance().getRTP().getRTPworldLocations();
} }
//Get locations a player has access to //Get locations a player has access to
@@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
@@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
@@ -5,7 +5,7 @@ import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager; import com.comphenix.protocol.ProtocolManager;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.packets.WrapperPlayServerNamedSoundEffect; 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.Location;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -7,19 +7,13 @@ import me.SuperRonanCraft.BetterRTP.references.helpers.*;
import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer; import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData; import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData; 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.rtpinfo.worlds.WorldPlayer;
import me.SuperRonanCraft.BetterRTP.references.settings.Settings;
import me.clip.placeholderapi.expansion.PlaceholderExpansion; import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.Date;
import java.util.concurrent.TimeUnit;
public class DepPlaceholderAPI extends PlaceholderExpansion { public class DepPlaceholderAPI extends PlaceholderExpansion {
@NotNull @NotNull
@@ -45,29 +39,20 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
PlayerData data = HelperPlayer.getData(player); PlayerData data = HelperPlayer.getData(player);
if (request.equalsIgnoreCase("count")) { if (request.equalsIgnoreCase("count")) {
return String.valueOf(data.getRtpCount()); return String.valueOf(data.getRtpCount());
} else if (request.equalsIgnoreCase("cooldown")) { } else if (request.startsWith("cooldown")) {
return cooldown(data, player.getWorld()); if (request.equalsIgnoreCase("cooldown")) {
} else if (request.startsWith("cooldown_")) { return cooldown(data, player.getWorld());
World world = null; } else if (request.startsWith("cooldown_")) {
String world_name = request.replace("cooldown_", ""); World world = getWorld(request.replace("cooldown_", ""));
if (world_name.length() > 0) { return cooldown(data, world);
for (World _world : Bukkit.getWorlds()) { } else if (request.equalsIgnoreCase("cooldowntime")) {
if (world_name.equalsIgnoreCase(_world.getName())) { return cooldownTime(data, player.getWorld());
world = _world; } else if (request.startsWith("cooldowntime_")) {
break; World world = getWorld(request.replace("cooldowntime_", ""));
} return cooldownTime(data, world);
}
} }
return cooldown(data, world);
} else if (request.startsWith("canrtp_")) { } else if (request.startsWith("canrtp_")) {
String world_name = request.replace("canrtp_", ""); World world = getWorld(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;
}
return canRTP(player, world); return canRTP(player, world);
} else if (request.equalsIgnoreCase("canrtp")) { } else if (request.equalsIgnoreCase("canrtp")) {
World world = player.getWorld(); World world = player.getWorld();
@@ -78,19 +63,23 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
private String cooldown(PlayerData data, World world) { private String cooldown(PlayerData data, World world) {
if (world == null) return "Invalid World"; if (world == null) return "Invalid World";
if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName())) CooldownData cooldownData = data.getCooldowns().getOrDefault(HelperRTP.getActualWorld(data.player, world), null);
world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
CooldownData cooldownData = data.getCooldowns().getOrDefault(world, null);
if (cooldownData != null) if (cooldownData != null)
return HelperDate.stringFrom(cooldownData.getTime()); return HelperDate.left(cooldownData.getTime());
else 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) { private String canRTP(Player player, World world) {
if (world == null) return "Invalid World"; if (world == null) return "Invalid World";
if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName())) world = HelperRTP.getActualWorld(player, world);
world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
//Permission //Permission
if (!PermissionNode.getAWorld(player, world.getName())) if (!PermissionNode.getAWorld(player, world.getName()))
return BetterRTP.getInstance().getSettings().getPlaceholder_nopermission(); return BetterRTP.getInstance().getSettings().getPlaceholder_nopermission();
@@ -108,4 +97,15 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
//True //True
return BetterRTP.getInstance().getSettings().getPlaceholder_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;
}
} }
@@ -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<String> 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();
}
}
@@ -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<String> 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'");
}
}
@@ -13,10 +13,20 @@ public class HelperDate {
return Calendar.getInstance().getTime(); return Calendar.getInstance().getTime();
} }
public static String stringFrom(Long amount) { public static String left(Long amount) {
Date current_date = HelperDate.getDate(); Date current_date = HelperDate.getDate();
long min = Math.min(amount, current_date.getTime()); return fromTo(current_date.getTime(), amount);
long max = Math.max(amount, current_date.getTime()); }
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 diffInMillies = max - min;
long days = 0, hours = 0, minutes = 0, seconds = 0; long days = 0, hours = 0, minutes = 0, seconds = 0;
if (diffInMillies > 0) { if (diffInMillies > 0) {
@@ -28,16 +38,14 @@ public class HelperDate {
diffInMillies -= (1000 * 60) * minutes; diffInMillies -= (1000 * 60) * minutes;
seconds = TimeUnit.SECONDS.convert(diffInMillies, TimeUnit.MILLISECONDS); seconds = TimeUnit.SECONDS.convert(diffInMillies, TimeUnit.MILLISECONDS);
} }
Settings settings = BetterRTP.getInstance().getSettings(); String time_str = "";
String time_str = settings.getPlaceholder_timeFormat(); if (days > 0)
if (time_str.contains("%d")) time_str += settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(days));
time_str = time_str.replace("%d", settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(days))); if (days > 0 || hours > 0)
if (time_str.contains("%h")) time_str += settings.getPlaceholder_timeHours().replace("{0}", String.valueOf(hours));
time_str = time_str.replace("%h", settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(hours))); if (days > 0 || hours > 0 || minutes > 0)
if (time_str.contains("%m")) time_str += settings.getPlaceholder_timeMinutes().replace("{0}", String.valueOf(minutes));
time_str = time_str.replace("%m", settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(max))); time_str += settings.getPlaceholder_timeSeconds().replace("{0}", String.valueOf(seconds));
if (time_str.contains("%s"))
time_str = time_str.replace("%s", settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(seconds)));
return time_str; return time_str;
} }
@@ -39,26 +39,23 @@ public class HelperRTP {
public static void tp(@NotNull Player player, CommandSender sendi, @Nullable World world, List<String> biomes, RTP_TYPE rtpType, public static void tp(@NotNull Player player, CommandSender sendi, @Nullable World world, List<String> biomes, RTP_TYPE rtpType,
boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) { boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) {
if (world == null) world = getActualWorld(player, world);
world = player.getWorld();
if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName()))
world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName()));
RTPSetupInformation setup_info = new RTPSetupInformation( RTPSetupInformation setup_info = new RTPSetupInformation(
world, world,
sendi, sendi,
player, player,
true, true,
biomes, biomes,
!ignoreDelay && HelperRTP_Check.isDelay(player, sendi), !ignoreDelay && HelperRTP_Check.applyDelay(player, sendi),
rtpType, rtpType,
locations, locations,
!ignoreCooldown && HelperRTP_Check.checkCooldown(sendi, player) !ignoreCooldown && HelperRTP_Check.applyCooldown(sendi, player)
); );
//RTP request cancelled reason
WorldPlayer pWorld = getPlayerWorld(setup_info); WorldPlayer pWorld = getPlayerWorld(setup_info);
RTP_ERROR_REQUEST_REASON cantReason = HelperRTP_Check.canRTP(player, sendi, pWorld, ignoreCooldown); RTP_ERROR_REQUEST_REASON cantReason = HelperRTP_Check.canRTP(player, sendi, pWorld, ignoreCooldown);
// Not forced and has 'betterrtp.world.<world>'
if (cantReason != null) { if (cantReason != null) {
cantReason.getMsg().send(sendi); cantReason.getMsg().send(sendi, pWorld);
return; return;
} }
//ignore cooldown or else //ignore cooldown or else
@@ -69,6 +66,14 @@ public class HelperRTP {
return BetterRTP.getInstance(); 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 @Nullable
public static WorldLocations getRandomLocation(CommandSender sender, World world) { public static WorldLocations getRandomLocation(CommandSender sender, World world) {
HashMap<String, RTPWorld> locations_permissible = CmdLocation.getLocations(sender, world); HashMap<String, RTPWorld> locations_permissible = CmdLocation.getLocations(sender, world);
@@ -109,21 +114,7 @@ public class HelperRTP {
} }
if (!pWorld.isSetup()) { if (!pWorld.isSetup()) {
WorldPermissionGroup group = null; WorldPermissionGroup group = getGroup(pWorld);
if (pWorld.getPlayer() != null)
for (Map.Entry<String, PermissionGroup> permissionGroup : BetterRTP.getInstance().getRTP().getPermissionGroups().entrySet()) {
for (Map.Entry<String, WorldPermissionGroup> 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();
}
}
}
}
//Permission Group //Permission Group
if (group != null) { if (group != null) {
@@ -159,4 +150,22 @@ public class HelperRTP {
return world_type; return world_type;
} }
public static WorldPermissionGroup getGroup(WorldPlayer pWorld) {
WorldPermissionGroup group = null;
if (pWorld.getPlayer() != null)
for (Map.Entry<String, PermissionGroup> permissionGroup : BetterRTP.getInstance().getRTP().getPermissionGroups().entrySet()) {
for (Map.Entry<String, WorldPermissionGroup> 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;
}
} }
@@ -24,12 +24,12 @@ public class HelperRTP_Check {
if (getPl().getRTP().getDisabledWorlds().contains(pWorld.getWorld().getName())) { if (getPl().getRTP().getDisabledWorlds().contains(pWorld.getWorld().getName())) {
return RTP_ERROR_REQUEST_REASON.WORLD_DISABLED; 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; 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; 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 RTP_ERROR_REQUEST_REASON.PRICE_HUNGER;
return null; return null;
} }
@@ -39,7 +39,7 @@ public class HelperRTP_Check {
} }
public static boolean isCoolingDown(CommandSender sendi, Player player, WorldPlayer pWorld) { public static boolean isCoolingDown(CommandSender sendi, Player player, WorldPlayer pWorld) {
if (!checkCooldown(sendi, player)) //Bypassing/Forced? if (!applyCooldown(sendi, player)) //Bypassing/Forced?
return false; return false;
CooldownHandler cooldownHandler = getPl().getCooldowns(); CooldownHandler cooldownHandler = getPl().getCooldowns();
if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download
@@ -70,11 +70,11 @@ public class HelperRTP_Check {
return false; 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)); 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; boolean delay = false;
if (sendi == player) //Forced? if (sendi == player) //Forced?
if (getPl().getSettings().isDelayEnabled() && getPl().getSettings().getDelayTime() > 0) //Delay enabled? if (getPl().getSettings().isDelayEnabled() && getPl().getSettings().getDelayTime() > 0) //Delay enabled?
@@ -1,7 +1,6 @@
package me.SuperRonanCraft.BetterRTP.references.messages; package me.SuperRonanCraft.BetterRTP.references.messages;
import me.SuperRonanCraft.BetterRTP.references.file.FileData; import me.SuperRonanCraft.BetterRTP.references.file.FileData;
import me.ronancraft.AmethystGear.resources.files.FileData;
public interface MessageData { public interface MessageData {
@@ -1,8 +1,10 @@
package me.SuperRonanCraft.BetterRTP.references.messages.placeholder; package me.SuperRonanCraft.BetterRTP.references.messages.placeholder;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -20,11 +22,21 @@ public class PlaceholderAnalyzer {
str = ints(str, (Integer) info); str = ints(str, (Integer) info);
if (info instanceof Biome) if (info instanceof Biome)
str = biome(str, (Biome) info); 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) if (p instanceof Player)
str = papi((Player) p, str); str = papi((Player) p, str);
return 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) { private static String string(String str, String info) {
if (str.contains(Placeholders.COMMAND.name)) if (str.contains(Placeholders.COMMAND.name))
str = str.replace(Placeholders.COMMAND.name, info); 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())); str = str.replace(Placeholders.LOCATION_Y.name, String.valueOf(loc.getBlockY()));
if (str.contains(Placeholders.LOCATION_Z.name)) if (str.contains(Placeholders.LOCATION_Z.name))
str = str.replace(Placeholders.LOCATION_Z.name, String.valueOf(loc.getBlockZ())); 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)) 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; return str;
} }
@@ -73,6 +89,8 @@ public class PlaceholderAnalyzer {
str = str.replace(Placeholders.PRICE.name, String.valueOf(num)); str = str.replace(Placeholders.PRICE.name, String.valueOf(num));
if (str.contains(Placeholders.DELAY.name)) if (str.contains(Placeholders.DELAY.name))
str = str.replace(Placeholders.DELAY.name, String.valueOf(num)); 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; return str;
} }
@@ -15,6 +15,7 @@ public enum Placeholders {
ATTEMPTS("attempts"), ATTEMPTS("attempts"),
PRICE("price"), PRICE("price"),
DELAY("delay"), DELAY("delay"),
TIME("time"),
//Other //Other
BIOME("biome") BIOME("biome")
; ;
@@ -33,7 +33,7 @@ public interface RTPWorld_Defaulted {
void setCooldown(long value); void setCooldown(long value);
default void setupDefaults() { default void setupDefaults() {
setAllFrom(BetterRTP.getInstance().getRTP().RTPdefaultWorld); setAllFrom(BetterRTP.getInstance().getRTP().getRTPdefaultWorld());
} }
default void setAllFrom(RTPWorld rtpWorld) { default void setAllFrom(RTPWorld rtpWorld) {
@@ -65,7 +65,7 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
if (maxRad <= 0) { if (maxRad <= 0) {
Message_RTP.sms(Bukkit.getConsoleSender(), Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Custom world '" + world + "' Maximum radius of '" + maxRad + "' is not allowed! Set to default value!"); "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) { if (test.get("MinRadius") != null) {
@@ -76,9 +76,9 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
if (minRad < 0 || minRad >= maxRad) { if (minRad < 0 || minRad >= maxRad) {
Message_RTP.sms(Bukkit.getConsoleSender(), Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Custom world '" + world + "' Minimum radius of '" + minRad + "' is not allowed! Set to default value!"); "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) if (minRad >= maxRad)
maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius(); maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
} }
} }
if (test.get("Biomes") != null) { if (test.get("Biomes") != null) {
@@ -127,13 +127,13 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted {
if (maxRad <= 0) { if (maxRad <= 0) {
Message_RTP.sms(Bukkit.getConsoleSender(), Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Custom world '" + world + "' Maximum radius of '" + maxRad + "' is not allowed! Set to default value!"); "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) { if (minRad < 0 || minRad >= maxRad) {
Message_RTP.sms(Bukkit.getConsoleSender(), Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Custom world '" + world + "' Minimum radius of '" + minRad + "' is not allowed! Set to default value!"); "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();
} }
} }
@@ -4,6 +4,7 @@ package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import org.bukkit.World; import org.bukkit.World;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -74,7 +74,7 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted {
if (maxRad <= 0) { if (maxRad <= 0) {
Message_RTP.sms(Bukkit.getConsoleSender(), Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Location '" + location_name + "' Maximum radius of '" + maxRad + "' is not allowed! Set to default value!"); "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); BetterRTP.debug("- - MaxRadius: " + maxRad);
} }
@@ -84,9 +84,9 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted {
if (minRad < 0 || minRad >= maxRad) { if (minRad < 0 || minRad >= maxRad) {
Message_RTP.sms(Bukkit.getConsoleSender(), Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Location '" + location_name + "' Minimum radius of '" + minRad + "' is not allowed! Set to default value!"); "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) { if (minRad >= maxRad) {
maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius(); maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
BetterRTP.debug("- ! MaxRadius: " + maxRad); BetterRTP.debug("- ! MaxRadius: " + maxRad);
} }
} }
@@ -66,7 +66,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
if (maxRad <= 0) { if (maxRad <= 0) {
Message_RTP.sms(Bukkit.getConsoleSender(), Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Group '" + group + "' Maximum radius of '" + maxRad + "' is not allowed! Set to default value!"); "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")) { if (field.equalsIgnoreCase("MinRadius")) {
@@ -77,9 +77,9 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted {
if (minRad < 0 || minRad >= maxRad) { if (minRad < 0 || minRad >= maxRad) {
Message_RTP.sms(Bukkit.getConsoleSender(), Message_RTP.sms(Bukkit.getConsoleSender(),
"WARNING! Group '" + group + "' Minimum radius of '" + minRad + "' is not allowed! Set to default value!"); "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) if (minRad >= maxRad)
maxRad = BetterRTP.getInstance().getRTP().RTPdefaultWorld.getMaxRadius(); maxRad = BetterRTP.getInstance().getRTP().getRTPdefaultWorld().getMaxRadius();
} }
} }
if (field.equalsIgnoreCase("Biomes")) { if (field.equalsIgnoreCase("Biomes")) {
@@ -29,11 +29,11 @@ public class Settings {
@Getter private String placeholder_cooldown; @Getter private String placeholder_cooldown;
@Getter private String placeholder_balance; @Getter private String placeholder_balance;
@Getter private String placeholder_hunger; @Getter private String placeholder_hunger;
@Getter private String placeholder_timeFormat;
@Getter private String placeholder_timeDays; @Getter private String placeholder_timeDays;
@Getter private String placeholder_timeHours; @Getter private String placeholder_timeHours;
@Getter private String placeholder_timeMinutes; @Getter private String placeholder_timeMinutes;
@Getter private String placeholder_timeSeconds; @Getter private String placeholder_timeSeconds;
@Getter private String placeholder_timeZero;
public void load() { //Load Settings public void load() { //Load Settings
@@ -58,11 +58,11 @@ public class Settings {
placeholder_cooldown = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.CanRTP.Cooldown"); placeholder_cooldown = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.CanRTP.Cooldown");
placeholder_balance = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.CanRTP.Price"); placeholder_balance = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.CanRTP.Price");
placeholder_hunger = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.CanRTP.Hunger"); 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_timeDays = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Days");
placeholder_timeHours = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Hours"); placeholder_timeHours = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Hours");
placeholder_timeMinutes = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Minutes"); placeholder_timeMinutes = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Minutes");
placeholder_timeSeconds = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Seconds"); placeholder_timeSeconds = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Seconds");
placeholder_timeZero = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.ZeroAll");
depends.load(); depends.load();
} }
@@ -5,6 +5,7 @@ import lombok.Setter;
import me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins.REGIONPLUGINS; import me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins.REGIONPLUGINS;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import java.util.logging.Level; import java.util.logging.Level;
+6 -5
View File
@@ -2,18 +2,19 @@
betterrtp_count: 'Get total amount of rtp''s done' betterrtp_count: 'Get total amount of rtp''s done'
betterrtp_cooldown: 'Get cooldown in current world' betterrtp_cooldown: 'Get cooldown in current world'
betterrtp_cooldown_<world_name>: 'Get cooldown of a specified world' betterrtp_cooldown_<world_name>: 'Get cooldown of a specified world'
betterrtp_cooldowntime: 'Get cooldown time subject to in current world'
betterrtp_cooldowntime_<world_name>: 'Get cooldown time subject to in specified world'
betterrtp_canrtp_<world_name>: 'Get the reason or yes output if player can rtp in set world' betterrtp_canrtp_<world_name>: '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' betterrtp_canrtp: 'Get the reason or yes output if player can rtp in current world'
##Config section for placeholder outputs ##Config section for placeholder outputs
Config: Config:
TimeFormat: TimeFormat:
Days: '{0} Day(s)' Days: '{0} Day(s), '
Hours: '{0} Hours' Hours: '{0} Hours, '
Minutes: '{0} Mins' Minutes: '{0} Mins and '
Seconds: '{0} Secs' Seconds: '{0} Secs'
#Placeholder %d = DAYS, %h = HOURS, %m = MINUTES, %s = SECONDS ZeroAll: 'None'
Format: '%d, %h, %m and %s'
CanRTP: CanRTP:
Success: '&aYes' Success: '&aYes'
NoPermission: '&cNo Permission' NoPermission: '&cNo Permission'