From 67cca730c460d154dc107beb46108c3a844379bb Mon Sep 17 00:00:00 2001 From: SuperRonanCraft Date: Thu, 12 Nov 2020 17:40:54 -0500 Subject: [PATCH] addons can now register commands + new portals addon --- .../BetterRTPAddons/Addon.java | 7 +- .../BetterRTPAddons/AddonsHandler.java | 15 ++- .../BetterRTPAddons/Files.java | 2 +- .../BetterRTPAddons/LocSerialization.java | 55 +++++++++ .../SuperRonanCraft/BetterRTPAddons/Main.java | 1 + .../BetterRTPAddons/PlayerInfo.java | 23 ++++ .../BetterRTPAddons/ReloadListener.java | 21 ++++ .../BetterRTPAddons/database/Database.java | 112 ++++++++++++++++++ .../BetterRTPAddons/database/Error.java | 16 +++ .../BetterRTPAddons/database/Errors.java | 16 +++ .../flashBack/AddonFlashback.java | 28 ----- .../flashBack/PlayerFlashback.java | 28 ----- .../flashback/AddonFlashback.java | 44 +++++++ .../flashback/FlashbackDatabase.java | 89 ++++++++++++++ .../flashback/FlashbackMessages.java | 17 +++ .../flashback/FlashbackPlayer.java | 39 ++++++ .../interfaces/AddonInterface.java | 22 ++++ .../BetterRTPAddons/portals/AddonPortals.java | 31 +++++ .../portals/PortalsCommand.java | 28 +++++ .../portals/PortalsDatabase.java | 89 ++++++++++++++ .../PortalsMessages.java} | 6 +- BetterRTPAddons/src/main/resources/config.yml | 0 .../src/main/resources/interface.yml | 1 + .../src/main/resources/portals.yml | 1 + .../BetterRTP/player/commands/Commands.java | 53 +++++---- .../BetterRTP/player/commands/RTPCommand.java | 6 + .../player/commands/types/CmdBiome.java | 4 + .../player/commands/types/CmdEdit.java | 4 + .../player/commands/types/CmdHelp.java | 4 + .../player/commands/types/CmdInfo.java | 4 + .../player/commands/types/CmdPlayer.java | 4 + .../player/commands/types/CmdReload.java | 4 + .../player/commands/types/CmdSettings.java | 4 + .../player/commands/types/CmdTest.java | 8 ++ .../player/commands/types/CmdVersion.java | 4 + .../player/commands/types/CmdWorld.java | 4 + .../customEvents/RTP_CommandEvent.java | 7 +- 37 files changed, 707 insertions(+), 94 deletions(-) create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/LocSerialization.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/PlayerInfo.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/ReloadListener.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Database.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Error.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Errors.java delete mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/AddonFlashback.java delete mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/PlayerFlashback.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/AddonFlashback.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackDatabase.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackMessages.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackPlayer.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/interfaces/AddonInterface.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/AddonPortals.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsCommand.java create mode 100644 BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsDatabase.java rename BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/{flashBack/MessagesFlashback.java => portals/PortalsMessages.java} (70%) create mode 100644 BetterRTPAddons/src/main/resources/config.yml create mode 100644 BetterRTPAddons/src/main/resources/interface.yml create mode 100644 BetterRTPAddons/src/main/resources/portals.yml diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Addon.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Addon.java index 2cf8fb9..3261660 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Addon.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Addon.java @@ -6,15 +6,20 @@ import org.bukkit.event.Listener; public interface Addon extends Listener { + //Addon will check if it can be enabled boolean isEnabled(); + //Load the addon if enabled void load(); + //Unload the addon if enabled + void unload(); + default void register() { Bukkit.getPluginManager().registerEvents(this, Main.getInstance()); } - default void disable() { + default void unregister() { HandlerList.unregisterAll(this); } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java index fea1c75..4950a22 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java @@ -1,9 +1,10 @@ package me.SuperRonanCraft.BetterRTPAddons; -import me.SuperRonanCraft.BetterRTPAddons.flashBack.AddonFlashback; +import me.SuperRonanCraft.BetterRTPAddons.flashback.AddonFlashback; +import me.SuperRonanCraft.BetterRTPAddons.interfaces.AddonInterface; +import me.SuperRonanCraft.BetterRTPAddons.portals.AddonPortals; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.logging.Level; @@ -21,12 +22,14 @@ public class AddonsHandler { addon.load(); addons.add(addon); } else { - Main.getInstance().getLogger().log(Level.INFO, "Addon was not loaded " + addon.name()); + Main.getInstance().getLogger().log(Level.INFO, "Addon " + addon.name() + " was NOT enabled."); } } enum Addons { - FLASH_BACK(new AddonFlashback()); + FLASH_BACK(new AddonFlashback()), + PORTALS(new AddonPortals()), + INTERFACES(new AddonInterface()); Addon addon; @@ -39,13 +42,13 @@ public class AddonsHandler { } void load() { - Main.getInstance().getLogger().log(Level.INFO, "Addon loaded " + this.name()); addon.register(); addon.load(); + Main.getInstance().getLogger().log(Level.INFO, "Addon " + this.name() + " has been enabled!"); } void disable() { - addon.disable(); + addon.unregister(); } } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Files.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Files.java index e784d45..265c9bf 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Files.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Files.java @@ -23,7 +23,7 @@ public class Files { } public enum FILETYPE { - CONFIG("config"), EFFECTS("flashback"); + CONFIG("config"), FLASHBACK("flashback"), PORTALS("portals"), INTERFACE("interface"); private final String fileName; private final YamlConfiguration config = new YamlConfiguration(); diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/LocSerialization.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/LocSerialization.java new file mode 100644 index 0000000..bc2638f --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/LocSerialization.java @@ -0,0 +1,55 @@ +package me.SuperRonanCraft.BetterRTPAddons; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.World; + +public class LocSerialization { + + public static String getStringFromLocation(Location loc) { + if (loc == null) { + return ""; + } + return loc.getWorld().getName() + ":" + loc.getX() + ":" + loc.getY() + ":" + loc.getZ() + ":" + loc.getYaw() + ":" + loc.getPitch() ; + } + + public static Location getLocationFromString(String s) { + if (s == null || s.trim() == "") { + return null; + } + final String[] parts = s.split(":"); + if (parts.length == 6) { + World w = Bukkit.getServer().getWorld(parts[0]); + double x = Double.parseDouble(parts[1]); + double y = Double.parseDouble(parts[2]); + double z = Double.parseDouble(parts[3]); + float yaw = Float.parseFloat(parts[4]); + float pitch = Float.parseFloat(parts[5]); + return new Location(w, x, y, z, yaw, pitch); + } + return null; + } + + public static String getLiteStringFromLocation(Location loc) { + if (loc == null) { + return ""; + } + return loc.getWorld().getName() + ":" + loc.getBlockX() + ":" + loc.getBlockY() + ":" + loc.getBlockZ() ; + } + + public static Location getLiteLocationFromString(String s) { + if (s == null || s.trim() == "") { + return null; + } + final String[] parts = s.split(":"); + if (parts.length == 4) { + World w = Bukkit.getServer().getWorld(parts[0]); + double x = Double.parseDouble(parts[1]); + double y = Double.parseDouble(parts[2]); + double z = Double.parseDouble(parts[3]); + return new Location(w, x, y, z); + } + return null; + } + +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Main.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Main.java index c5fd90f..d051c20 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Main.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Main.java @@ -11,6 +11,7 @@ public class Main extends JavaPlugin { @Override public void onEnable() { instance = this; + new ReloadListener(this); load(); } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/PlayerInfo.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/PlayerInfo.java new file mode 100644 index 0000000..15ed9e9 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/PlayerInfo.java @@ -0,0 +1,23 @@ +package me.SuperRonanCraft.BetterRTPAddons; + +import org.bukkit.Location; +import org.bukkit.entity.Player; + +public class PlayerInfo { + + private final Player player; + private final Location location; + + public PlayerInfo(Player player, Location location) { + this.player = player; + this.location = location; + } + + public Player getPlayer() { + return player; + } + + public Location getLocation() { + return location; + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/ReloadListener.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/ReloadListener.java new file mode 100644 index 0000000..ec022e5 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/ReloadListener.java @@ -0,0 +1,21 @@ +package me.SuperRonanCraft.BetterRTPAddons; + +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType; +import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdReload; +import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent; +import org.bukkit.Bukkit; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class ReloadListener implements Listener { + + ReloadListener(Main pl) { + Bukkit.getPluginManager().registerEvents(this, pl); + } + + @EventHandler + void reload(RTP_CommandEvent e) { + if (e.getCmd() instanceof CmdReload) + Main.getInstance().load(); + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Database.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Database.java new file mode 100644 index 0000000..9101419 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Database.java @@ -0,0 +1,112 @@ +package me.SuperRonanCraft.BetterRTPAddons.database; + +import me.SuperRonanCraft.BetterRTPAddons.Main; + +import java.io.File; +import java.io.IOException; +import java.sql.*; +import java.util.logging.Level; + +public abstract class Database { + + public String console_id = "CONSOLE"; + public Connection connection; + public Main plugin; + public String db_name; + public final String table = "BRTP_Data"; + + public enum COLUMNS { + UUID("uuid", "varchar(32)"), + NAME("player", "varchar(16)"), + LOCATION_OLD("location_old", "longtext"), + TIME_GOAL("time_goal", "bigint(19)"); + + public String name; + public String type; + + COLUMNS(String name, String type) { + this.name = name; + this.type = type; + } + } + + public Database(Main instance, String db_name) { + plugin = instance; + this.db_name = db_name; + } + + protected Connection getSQLConnection() { + File dataFolder = new File(plugin.getDataFolder().getPath() + File.separator + "data", db_name + ".db"); + if (!dataFolder.exists()){ + try { + dataFolder.getParentFile().mkdirs(); + dataFolder.createNewFile(); + } catch (IOException e) { + plugin.getLogger().log(Level.SEVERE, "File write error: " + db_name + ".db"); + } + } + try { + if(connection!=null&&!connection.isClosed()){ + return connection; + } + Class.forName("org.sqlite.JDBC"); + connection = DriverManager.getConnection("jdbc:sqlite:" + dataFolder); + return connection; + } catch (SQLException ex) { + plugin.getLogger().log(Level.SEVERE, "SQLite exception on initialize", ex); + } catch (ClassNotFoundException ex) { + plugin.getLogger().log(Level.SEVERE, "You need the SQLite JBDC library. Google it. Put it in /lib folder."); + } + return null; + } + + //Get the layout of the database table + public abstract String getTableFormat(); + + public void load() { + connection = getSQLConnection(); + try { + Statement s = connection.createStatement(); + s.executeUpdate(getTableFormat()); + for (COLUMNS c : COLUMNS.values()) { //Add missing columns dynamically + try { + String addMissingColumns = "ALTER TABLE " + table + " ADD COLUMN %column% %type%"; + s.executeUpdate(addMissingColumns.replace("%column%", c.name).replace("%type%", c.type)); + } catch (SQLException e) { + //e.printStackTrace(); + } + } + s.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + initialize(); + } + + private void initialize() { + Connection conn = null; + PreparedStatement ps = null; + ResultSet rs = null; + try { + conn = getSQLConnection(); + ps = conn.prepareStatement("SELECT * FROM " + table + " WHERE " + COLUMNS.UUID.name + " = ?"); + + rs = ps.executeQuery(); + } catch (SQLException ex) { + plugin.getLogger().log(Level.SEVERE, "Unable to retreive connection", ex); + } finally { + close(ps, rs, conn); + } + } + + //Processing + protected void close(PreparedStatement ps, ResultSet rs, java.sql.Connection conn) { + try { + if (ps != null) ps.close(); + if (conn != null) conn.close(); + if (rs != null) rs.close(); + } catch (SQLException ex) { + Error.close(plugin, ex); + } + } +} \ No newline at end of file diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Error.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Error.java new file mode 100644 index 0000000..e15eabb --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Error.java @@ -0,0 +1,16 @@ +package me.SuperRonanCraft.BetterRTPAddons.database; + +import me.SuperRonanCraft.BetterRTPAddons.Main; + +import java.util.logging.Level; + +public class Error { + + public static void execute(Main plugin, Exception ex){ + plugin.getLogger().log(Level.SEVERE, "Couldn't execute MySQL statement: ", ex); + } + + public static void close(Main plugin, Exception ex){ + plugin.getLogger().log(Level.SEVERE, "Failed to close MySQL connection: ", ex); + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Errors.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Errors.java new file mode 100644 index 0000000..94f4ea3 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Errors.java @@ -0,0 +1,16 @@ +package me.SuperRonanCraft.BetterRTPAddons.database; + +public class Errors { + public static String sqlConnectionExecute(){ + return "Couldn't execute MySQL statement: "; + } + public static String sqlConnectionClose(){ + return "Failed to close MySQL connection: "; + } + public static String noSQLConnection(){ + return "Unable to retreive MYSQL connection: "; + } + public static String noTableFound(){ + return "Database Error: No Table Found"; + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/AddonFlashback.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/AddonFlashback.java deleted file mode 100644 index b0565a9..0000000 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/AddonFlashback.java +++ /dev/null @@ -1,28 +0,0 @@ -package me.SuperRonanCraft.BetterRTPAddons.flashBack; - -import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent; -import me.SuperRonanCraft.BetterRTPAddons.Addon; -import me.SuperRonanCraft.BetterRTPAddons.Files; -import org.bukkit.event.EventHandler; - -public class AddonFlashback implements Addon { - - private Long time; - public MessagesFlashback msgs = new MessagesFlashback(); - - public boolean isEnabled() { - return Files.FILETYPE.EFFECTS.getBoolean("Enabled"); - } - - @Override - public void load() { - Files.FILETYPE file = Files.FILETYPE.EFFECTS; - this.time = file.getConfig().getLong("Time"); - } - - @EventHandler - void onTeleport(RTP_TeleportPostEvent e) { - System.out.println("Player " + e.getPlayer().getName() + " was rtp'd!"); - new PlayerFlashback(this, e.getPlayer(), e.getOldLocation(), 20L * time); - } -} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/PlayerFlashback.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/PlayerFlashback.java deleted file mode 100644 index 7310681..0000000 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/PlayerFlashback.java +++ /dev/null @@ -1,28 +0,0 @@ -package me.SuperRonanCraft.BetterRTPAddons.flashBack; - -import io.papermc.lib.PaperLib; -import me.SuperRonanCraft.BetterRTPAddons.Main; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.entity.Player; - -public class PlayerFlashback { - Player p; - Location oldLoc; - AddonFlashback plugin; - - public PlayerFlashback(AddonFlashback plugin, Player p, Location oldLoc, Long delayInTicks) { - this.plugin = plugin; - this.p = p; - this.oldLoc = oldLoc; - Bukkit.getScheduler().runTaskLater(Main.getInstance(), getTimedFlash(), delayInTicks); - } - - private Runnable getTimedFlash() { - return () -> { - plugin.msgs.getWarning(p); - PaperLib.teleportAsync(p, oldLoc); - }; - } - -} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/AddonFlashback.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/AddonFlashback.java new file mode 100644 index 0000000..bf51569 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/AddonFlashback.java @@ -0,0 +1,44 @@ +package me.SuperRonanCraft.BetterRTPAddons.flashback; + +import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent; +import me.SuperRonanCraft.BetterRTPAddons.Addon; +import me.SuperRonanCraft.BetterRTPAddons.Files; +import me.SuperRonanCraft.BetterRTPAddons.Main; +import org.bukkit.event.EventHandler; + +import java.util.ArrayList; +import java.util.List; + +//When rtp'ing, a player will be teleported back to old location after a set amount of time +public class AddonFlashback implements Addon { + + private Long time; + public FlashbackMessages msgs = new FlashbackMessages(); + public FlashbackDatabase database; + List players = new ArrayList<>(); + + public boolean isEnabled() { + return Files.FILETYPE.FLASHBACK.getBoolean("Enabled"); + } + + @Override + public void load() { + Files.FILETYPE file = Files.FILETYPE.FLASHBACK; + this.time = file.getConfig().getLong("Time"); + this.database = new FlashbackDatabase(Main.getInstance()); + this.database.load(); + } + + @Override + public void unload() { + for (FlashbackPlayer fbp : players) + fbp.cancel(); + players.clear(); + } + + @EventHandler + void onTeleport(RTP_TeleportPostEvent e) { + System.out.println("Player " + e.getPlayer().getName() + " was rtp'd!"); + players.add(new FlashbackPlayer(this, e.getPlayer(), e.getOldLocation(), time)); + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackDatabase.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackDatabase.java new file mode 100644 index 0000000..64373f8 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackDatabase.java @@ -0,0 +1,89 @@ +package me.SuperRonanCraft.BetterRTPAddons.flashback; + +import me.SuperRonanCraft.BetterRTPAddons.LocSerialization; +import me.SuperRonanCraft.BetterRTPAddons.Main; +import me.SuperRonanCraft.BetterRTPAddons.PlayerInfo; +import me.SuperRonanCraft.BetterRTPAddons.database.Database; +import me.SuperRonanCraft.BetterRTPAddons.database.Errors; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +import java.sql.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; +import java.util.logging.Level; + +public class FlashbackDatabase extends Database { + + List playerInfos = new ArrayList<>(); + + public FlashbackDatabase(Main instance){ + super(instance, "addon_flashback"); + } + + private final String createTable = "CREATE TABLE IF NOT EXISTS " + table + " (" + + "`" + COLUMNS.UUID.name + "` " + COLUMNS.UUID.type + " PRIMARY KEY NOT NULL," + + "`" + COLUMNS.NAME.name + "` " + COLUMNS.NAME.type + "," + + "`" + COLUMNS.LOCATION_OLD.name + "` " + COLUMNS.LOCATION_OLD.type + " NOT NULL," + + "`" + COLUMNS.TIME_GOAL.name + "` " + COLUMNS.LOCATION_OLD.type + " NOT NULL" + + ");"; + + + @Override + public String getTableFormat() { + return createTable; + } + + @Override + public void load() { + playerInfos.clear(); + super.load(); + } + + public PlayerInfo getPlayer(Player p) { + Connection conn = null; + PreparedStatement ps = null; + ResultSet rs = null; + try { + conn = getSQLConnection(); + ps = conn.prepareStatement("SELECT * FROM " + table + " WHERE " + COLUMNS.UUID.name + " = ?"); + UUID id = p.getUniqueId(); + ps.setString(1, id != null ? id.toString() : console_id); + rs = ps.executeQuery(); + if (rs.next()) { + Location loc = LocSerialization.getLocationFromString(rs.getString(COLUMNS.LOCATION_OLD.name)); + return new PlayerInfo(p, loc); + } + } catch (SQLException ex) { + plugin.getLogger().log(Level.SEVERE, Errors.sqlConnectionExecute(), ex); + } finally { + close(ps, rs, conn); + } + return null; + } + + public boolean setPlayer(Player p, Location oldLocation, Long timeGoal) { + Connection conn = null; + PreparedStatement ps = null; + boolean success = true; + try { + conn = getSQLConnection(); + ps = conn.prepareStatement("INSERT INTO " + table + "(" + COLUMNS.UUID.name + ", " + COLUMNS.LOCATION_OLD.name + ") VALUES (?, ?) " + + "ON CONFLICT(" + COLUMNS.UUID.name + ") DO UPDATE SET " + COLUMNS.LOCATION_OLD.name + " = + ?"); + UUID id = p.getUniqueId(); + ps.setString(1, id != null ? id.toString() : console_id); + String serialLocation = LocSerialization.getStringFromLocation(oldLocation); + ps.setString(2, serialLocation); + ps.setString(3, serialLocation); + ps.executeUpdate(); + } catch (SQLException ex) { + plugin.getLogger().log(Level.SEVERE, Errors.sqlConnectionExecute(), ex); + success = false; + } finally { + close(ps, null, conn); + } + return success; + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackMessages.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackMessages.java new file mode 100644 index 0000000..d1bee82 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackMessages.java @@ -0,0 +1,17 @@ +package me.SuperRonanCraft.BetterRTPAddons.flashback; + +import me.SuperRonanCraft.BetterRTPAddons.AddonsMessages; +import me.SuperRonanCraft.BetterRTPAddons.Files; +import org.bukkit.command.CommandSender; + +public class FlashbackMessages implements AddonsMessages { + private static String preM = "Messages"; + + private Files.FILETYPE getLang() { + return Files.FILETYPE.FLASHBACK; + } + + public void getWarning(CommandSender sendi) { + sms(sendi, getLang().getString(preM + "Warning")); + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackPlayer.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackPlayer.java new file mode 100644 index 0000000..b71257a --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashback/FlashbackPlayer.java @@ -0,0 +1,39 @@ +package me.SuperRonanCraft.BetterRTPAddons.flashback; + +import io.papermc.lib.PaperLib; +import me.SuperRonanCraft.BetterRTPAddons.Main; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitTask; + +public class FlashbackPlayer { + Player p; + Location oldLoc; + AddonFlashback plugin; + BukkitTask task; + + public FlashbackPlayer(AddonFlashback plugin, Player p, Location oldLoc, Long seconds) { + this.plugin = plugin; + this.p = p; + this.oldLoc = oldLoc; + this.task = Bukkit.getScheduler().runTaskLater(Main.getInstance(), getTimedFlash(seconds), 20L * seconds); + } + + private Runnable getTimedFlash(Long seconds) { + plugin.database.setPlayer(p, oldLoc, System.currentTimeMillis() + (seconds * 1000)); + return () -> { + plugin.msgs.getWarning(p); + PaperLib.teleportAsync(p, oldLoc); + completed(); + }; + } + + public void cancel() { + task.cancel(); + } + + private void completed() { + plugin.players.remove(this); + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/interfaces/AddonInterface.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/interfaces/AddonInterface.java new file mode 100644 index 0000000..e4097f3 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/interfaces/AddonInterface.java @@ -0,0 +1,22 @@ +package me.SuperRonanCraft.BetterRTPAddons.interfaces; + +import me.SuperRonanCraft.BetterRTPAddons.Addon; +import me.SuperRonanCraft.BetterRTPAddons.Files; + +public class AddonInterface implements Addon { + + @Override + public boolean isEnabled() { + return Files.FILETYPE.INTERFACE.getBoolean("Enabled"); + } + + @Override + public void load() { + + } + + @Override + public void unload() { + + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/AddonPortals.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/AddonPortals.java new file mode 100644 index 0000000..e3b8ab4 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/AddonPortals.java @@ -0,0 +1,31 @@ +package me.SuperRonanCraft.BetterRTPAddons.portals; + +import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent; +import me.SuperRonanCraft.BetterRTPAddons.Addon; +import me.SuperRonanCraft.BetterRTPAddons.Files; +import me.SuperRonanCraft.BetterRTPAddons.Main; +import org.bukkit.event.EventHandler; + +//With a gui, a player +public class AddonPortals implements Addon { + + public PortalsMessages msgs = new PortalsMessages(); + private PortalsDatabase database; + + public boolean isEnabled() { + return Files.FILETYPE.PORTALS.getBoolean("Enabled"); + } + + @Override + public void load() { + this.database = new PortalsDatabase(Main.getInstance()); + BetterRTP.getInstance().getCmd().registerCommand(new PortalsCommand(), false); + } + + @Override + public void unload() { + + } + +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsCommand.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsCommand.java new file mode 100644 index 0000000..62db3b0 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsCommand.java @@ -0,0 +1,28 @@ +package me.SuperRonanCraft.BetterRTPAddons.portals; + +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; +import org.bukkit.command.CommandSender; + +import java.util.List; + +public class PortalsCommand implements RTPCommand { + + public String getName() { + return "portals"; + } + + @Override + public void execute(CommandSender sendi, String label, String[] args) { + System.out.println("Portals command!"); + } + + @Override + public List tabComplete(CommandSender sendi, String[] args) { + return null; + } + + @Override + public boolean permission(CommandSender sendi) { + return true; + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsDatabase.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsDatabase.java new file mode 100644 index 0000000..faa4525 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsDatabase.java @@ -0,0 +1,89 @@ +package me.SuperRonanCraft.BetterRTPAddons.portals; + +import me.SuperRonanCraft.BetterRTPAddons.LocSerialization; +import me.SuperRonanCraft.BetterRTPAddons.Main; +import me.SuperRonanCraft.BetterRTPAddons.PlayerInfo; +import me.SuperRonanCraft.BetterRTPAddons.database.Database; +import me.SuperRonanCraft.BetterRTPAddons.database.Errors; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.logging.Level; + +public class PortalsDatabase extends Database { + + List playerInfos = new ArrayList<>(); + + public PortalsDatabase(Main instance){ + super(instance, "addon_flashback"); + } + + private final String createTable = "CREATE TABLE IF NOT EXISTS " + table + " (" + + "`" + COLUMNS.UUID.name + "` " + COLUMNS.UUID.type + " PRIMARY KEY NOT NULL," + + "`" + COLUMNS.NAME.name + "` " + COLUMNS.NAME.type + + ");"; + + + @Override + public String getTableFormat() { + return createTable; + } + + @Override + public void load() { + playerInfos.clear(); + super.load(); + } + + public PlayerInfo getPlayer(Player p) { + Connection conn = null; + PreparedStatement ps = null; + ResultSet rs = null; + try { + conn = getSQLConnection(); + ps = conn.prepareStatement("SELECT * FROM " + table + " WHERE " + COLUMNS.UUID.name + " = ?"); + UUID id = p.getUniqueId(); + ps.setString(1, id != null ? id.toString() : console_id); + rs = ps.executeQuery(); + if (rs.next()) { + Location loc = LocSerialization.getLocationFromString(rs.getString(COLUMNS.LOCATION_OLD.name)); + return new PlayerInfo(p, loc); + } + } catch (SQLException ex) { + plugin.getLogger().log(Level.SEVERE, Errors.sqlConnectionExecute(), ex); + } finally { + close(ps, rs, conn); + } + return null; + } + + public boolean setPlayer(Player p, Location oldLocation) { + Connection conn = null; + PreparedStatement ps = null; + boolean success = true; + try { + conn = getSQLConnection(); + ps = conn.prepareStatement("INSERT INTO " + table + "(" + COLUMNS.UUID.name + ", " + COLUMNS.LOCATION_OLD.name + ") VALUES (?, ?) " + + "ON CONFLICT(" + COLUMNS.UUID.name + ") DO UPDATE SET " + COLUMNS.LOCATION_OLD.name + " = + ?"); + UUID id = p.getUniqueId(); + ps.setString(1, id != null ? id.toString() : console_id); + String serialLocation = LocSerialization.getStringFromLocation(oldLocation); + ps.setString(2, serialLocation); + ps.setString(3, serialLocation); + ps.executeUpdate(); + } catch (SQLException ex) { + plugin.getLogger().log(Level.SEVERE, Errors.sqlConnectionExecute(), ex); + success = false; + } finally { + close(ps, null, conn); + } + return success; + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/MessagesFlashback.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsMessages.java similarity index 70% rename from BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/MessagesFlashback.java rename to BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsMessages.java index e936cee..dcd24ab 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/flashBack/MessagesFlashback.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/portals/PortalsMessages.java @@ -1,14 +1,14 @@ -package me.SuperRonanCraft.BetterRTPAddons.flashBack; +package me.SuperRonanCraft.BetterRTPAddons.portals; import me.SuperRonanCraft.BetterRTPAddons.AddonsMessages; import me.SuperRonanCraft.BetterRTPAddons.Files; import org.bukkit.command.CommandSender; -public class MessagesFlashback implements AddonsMessages { +public class PortalsMessages implements AddonsMessages { private static String preM = "Messages"; private Files.FILETYPE getLang() { - return Files.FILETYPE.EFFECTS; + return Files.FILETYPE.FLASHBACK; } public void getWarning(CommandSender sendi) { diff --git a/BetterRTPAddons/src/main/resources/config.yml b/BetterRTPAddons/src/main/resources/config.yml new file mode 100644 index 0000000..e69de29 diff --git a/BetterRTPAddons/src/main/resources/interface.yml b/BetterRTPAddons/src/main/resources/interface.yml new file mode 100644 index 0000000..4255c84 --- /dev/null +++ b/BetterRTPAddons/src/main/resources/interface.yml @@ -0,0 +1 @@ +Enabled: false diff --git a/BetterRTPAddons/src/main/resources/portals.yml b/BetterRTPAddons/src/main/resources/portals.yml new file mode 100644 index 0000000..4255c84 --- /dev/null +++ b/BetterRTPAddons/src/main/resources/portals.yml @@ -0,0 +1 @@ +Enabled: false diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java index 240d3b0..5e5c5d8 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java @@ -24,6 +24,7 @@ public class Commands { public HashMap rtping = new HashMap<>(); public RTPCooldown cooldowns = new RTPCooldown(); private int delayTimer; + List commands = new ArrayList<>(); public Commands(BetterRTP pl) { this.pl = pl; @@ -34,22 +35,28 @@ public class Commands { delayTimer = config.getInt("Settings.Delay.Time"); cooldowns.load(); rtping.clear(); + commands.clear(); + for (RTPCommandType cmd : RTPCommandType.values()) + registerCommand(cmd.getCmd(), false); + } + + public void registerCommand(RTPCommand cmd, boolean forced) { + if (!cmd.isDebugOnly() || pl.getSettings().debug || forced) //If debug only, can it be enabled? + commands.add(cmd); } public void commandExecuted(CommandSender sendi, String label, String[] args) { if (pl.getPerms().getUse(sendi)) { if (args != null && args.length > 0) { - for (RTPCommandType cmd : RTPCommandType.values()) { - if (cmd.name().equalsIgnoreCase(args[0])) { - if (!cmd.isDebugOnly() || pl.getSettings().debug) { //Debug only? - if (cmd.getCmd().permission(sendi)) { - cmd.getCmd().execute(sendi, label, args); - //Command Event - Bukkit.getServer().getPluginManager().callEvent(new RTP_CommandEvent(sendi, cmd)); - } else - noPerm(sendi); - return; - } + for (RTPCommand cmd : commands) { + if (cmd.getName().equalsIgnoreCase(args[0])) { + if (cmd.permission(sendi)) { + //Command Event + Bukkit.getServer().getPluginManager().callEvent(new RTP_CommandEvent(sendi, cmd)); + cmd.execute(sendi, label, args); + } else + noPerm(sendi); + return; } } invalid(sendi, label); @@ -66,21 +73,19 @@ public class Commands { public List onTabComplete(CommandSender sendi, String[] args) { List list = new ArrayList<>(); if (args.length == 1) { - for (RTPCommandType cmd : RTPCommandType.values()) { - if (cmd.name().toLowerCase().startsWith(args[0].toLowerCase())) - if (!cmd.isDebugOnly() || pl.getSettings().debug) //Debug only? - if (cmd.getCmd().permission(sendi)) - list.add(cmd.name().toLowerCase()); + for (RTPCommand cmd : commands) { + if (cmd.getName().toLowerCase().startsWith(args[0].toLowerCase())) + if (cmd.permission(sendi)) + list.add(cmd.getName().toLowerCase()); } } else if (args.length > 1) { - for (RTPCommandType cmd : RTPCommandType.values()) { - if (cmd.name().equalsIgnoreCase(args[0])) - if (!cmd.isDebugOnly() || pl.getSettings().debug) //Debug only? - if (cmd.getCmd().permission(sendi)) { - List _cmdlist = cmd.getCmd().tabComplete(sendi, args); - if (_cmdlist != null) - list.addAll(_cmdlist); - } + for (RTPCommand cmd : commands) { + if (cmd.getName().equalsIgnoreCase(args[0])) + if (cmd.permission(sendi)) { + List _cmdlist = cmd.tabComplete(sendi, args); + if (_cmdlist != null) + list.addAll(_cmdlist); + } } } return list; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommand.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommand.java index 2377f09..1f46e45 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommand.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommand.java @@ -11,4 +11,10 @@ public interface RTPCommand { List tabComplete(CommandSender sendi, String[] args); boolean permission(CommandSender sendi); + + String getName(); + + default boolean isDebugOnly() { + return false; + } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdBiome.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdBiome.java index 9c4d941..1cf716f 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdBiome.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdBiome.java @@ -11,6 +11,10 @@ import java.util.List; public class CmdBiome implements RTPCommand, RTPCommandHelpable { + public String getName() { + return "biome"; + } + //rtp biome public void execute(CommandSender sendi, String label, String[] args) { if (args.length >= 2) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java index 583ccb3..e3deb7b 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java @@ -15,6 +15,10 @@ import java.util.*; public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds properties + public String getName() { + return "edit"; + } + @Override public void execute(CommandSender sendi, String label, String[] args) { if (args.length >= 4) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java index d38a90e..73bf7e9 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java @@ -12,6 +12,10 @@ import java.util.List; public class CmdHelp implements RTPCommand, RTPCommandHelpable { + public String getName() { + return "help"; + } + public void execute(CommandSender sendi, String label, String[] args) { Messages txt = BetterRTP.getInstance().getText(); List list = new ArrayList<>(); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java index d6e3f7d..dbb81a8 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java @@ -18,6 +18,10 @@ import java.util.List; public class CmdInfo implements RTPCommand, RTPCommandHelpable { + public String getName() { + return "info"; + } + public void execute(CommandSender sendi, String label, String[] args) { if (args.length > 1) { if (args[1].equalsIgnoreCase(CmdInfoSub.PARTICLES.name())) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdPlayer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdPlayer.java index 052c008..203ef21 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdPlayer.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdPlayer.java @@ -16,6 +16,10 @@ import java.util.List; public class CmdPlayer implements RTPCommand, RTPCommandHelpable { + public String getName() { + return "player"; + } + //rtp player public void execute(CommandSender sendi, String label, String[] args) { if (args.length == 2) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdReload.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdReload.java index fee52cf..8d9a448 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdReload.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdReload.java @@ -9,6 +9,10 @@ import java.util.List; public class CmdReload implements RTPCommand, RTPCommandHelpable { + public String getName() { + return "reload"; + } + public void execute(CommandSender sendi, String label, String[] args) { BetterRTP.getInstance().reload(sendi); } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdSettings.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdSettings.java index 3964868..bf1016f 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdSettings.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdSettings.java @@ -11,6 +11,10 @@ import java.util.List; public class CmdSettings implements RTPCommand, RTPCommandHelpable { + public String getName() { + return "settings"; + } + public void execute(CommandSender sendi, String label, String[] args) { if (sendi instanceof Player) BetterRTP.getInstance().getInvs().getInv(RTP_INV_SETTINGS.MAIN).show((Player) sendi); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTest.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTest.java index 8454711..59a2441 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTest.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTest.java @@ -11,6 +11,10 @@ import java.util.List; //Meant to just test particles and effects without actually rtp'ing around the world public class CmdTest implements RTPCommand, RTPCommandHelpable { + public String getName() { + return "test"; + } + @Override public void execute(CommandSender sendi, String label, String[] args) { if (sendi instanceof Player) { @@ -35,4 +39,8 @@ public class CmdTest implements RTPCommand, RTPCommandHelpable { return BetterRTP.getInstance().getText().getHelpTest(); } + @Override + public boolean isDebugOnly() { + return true; + } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdVersion.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdVersion.java index 3e803ee..9ca1518 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdVersion.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdVersion.java @@ -9,6 +9,10 @@ import java.util.List; public class CmdVersion implements RTPCommand, RTPCommandHelpable { + public String getName() { + return "version"; + } + public void execute(CommandSender sendi, String label, String[] args) { sendi.sendMessage(BetterRTP.getInstance().getText().colorPre("&aVersion #&e" + BetterRTP.getInstance().getDescription().getVersion())); } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdWorld.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdWorld.java index 9fca70f..808d2b0 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdWorld.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdWorld.java @@ -14,6 +14,10 @@ import java.util.List; public class CmdWorld implements RTPCommand, RTPCommandHelpable { + public String getName() { + return "world"; + } + //rtp world public void execute(CommandSender sendi, String label, String[] args) { if (args.length >= 2) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_CommandEvent.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_CommandEvent.java index 9d8a7f9..4ea2fd5 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_CommandEvent.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_CommandEvent.java @@ -1,5 +1,6 @@ package me.SuperRonanCraft.BetterRTP.references.customEvents; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType; import org.bukkit.command.CommandSender; import org.bukkit.event.Event; @@ -8,10 +9,10 @@ import org.bukkit.event.HandlerList; public class RTP_CommandEvent extends Event { CommandSender sendi; - RTPCommandType cmd; + RTPCommand cmd; private static final HandlerList handler = new HandlerList(); - public RTP_CommandEvent(CommandSender sendi, RTPCommandType cmd) { + public RTP_CommandEvent(CommandSender sendi, RTPCommand cmd) { this.sendi = sendi; this.cmd = cmd; } @@ -20,7 +21,7 @@ public class RTP_CommandEvent extends Event { return sendi; } - public RTPCommandType getCmd() { + public RTPCommand getCmd() { return cmd; }