mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2026-02-16 02:21:06 +00:00
placeholder fixes + info command player argument
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -7,7 +7,7 @@
|
||||
<groupId>me.SuperRonanCraft</groupId>
|
||||
<artifactId>BetterRTP</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>3.4.5.1-DEV</version>
|
||||
<version>3.5.0-DEV</version>
|
||||
|
||||
<properties>
|
||||
<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.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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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<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<>();
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
|
||||
}
|
||||
|
||||
private static HashMap<String, RTPWorld> getLocations() {
|
||||
return BetterRTP.getInstance().getRTP().RTPworldLocations;
|
||||
return BetterRTP.getInstance().getRTP().getRTPworldLocations();
|
||||
}
|
||||
|
||||
//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.references.file.FileBasics;
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
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.<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<String, RTPWorld> 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<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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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<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())) {
|
||||
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?
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ public enum Placeholders {
|
||||
ATTEMPTS("attempts"),
|
||||
PRICE("price"),
|
||||
DELAY("delay"),
|
||||
TIME("time"),
|
||||
//Other
|
||||
BIOME("biome")
|
||||
;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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")) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -2,18 +2,19 @@
|
||||
betterrtp_count: 'Get total amount of rtp''s done'
|
||||
betterrtp_cooldown: 'Get cooldown in current 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: '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'
|
||||
|
||||
Reference in New Issue
Block a user