From 34815b7bb76a26ca8a9ecc9f5f624575c77b1a38 Mon Sep 17 00:00:00 2001 From: VinciDev Date: Tue, 17 Nov 2015 15:41:42 +0100 Subject: [PATCH 1/5] Updated all classes --- src/plugin.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/plugin.yml diff --git a/src/plugin.yml b/src/plugin.yml new file mode 100644 index 0000000..f832fed --- /dev/null +++ b/src/plugin.yml @@ -0,0 +1,16 @@ +name: BungeeCord +version: 2.7 +author: [VinciDev] +main: de.VinciDev.BungeeBan.Main +commands: + ban: + banip: + ban-ip: + banlist: + unban: + mute: + muteip: + mute-ip: + mutelist: + unmute: + check: \ No newline at end of file From 6eb52d603bc869ca12a7c84ade9a87d005b25b68 Mon Sep 17 00:00:00 2001 From: Luca Vinciguerra Date: Mon, 30 Nov 2015 12:55:49 +0100 Subject: [PATCH 2/5] Updated packagenames --- .../BungeeBan/Commands/CustomCommand.java | 2 +- .../BungeeBan/Events/BungeeBanEvent.java | 2 +- .../BungeeBan/Events/BungeeBanIpEvent.java | 2 +- .../BungeeBan/Events/BungeeKickEvent.java | 2 +- .../BungeeBan/Events/BungeeMuteEvent.java | 2 +- .../BungeeBan/Events/BungeeMuteIpEvent.java | 2 +- .../BungeeBan/Events/BungeeReportEvent.java | 2 +- .../BungeeBan/Events/BungeeUnbanEvent.java | 2 +- .../BungeeBan/Events/BungeeUnmuteEvent.java | 2 +- .../BungeeBan/Events/BungeeUnwarnEvent.java | 2 +- .../BungeeBan/Events/BungeeWarnEvent.java | 2 +- .../BungeeBan/Handlers/BroadcastHandlers.java | 24 +++++++++---------- .../BungeeBan/Handlers/PlayerConnect.java | 4 ++-- src/de/VinciDev/BungeeBan/Main.java | 16 +++++++------ .../VinciDev/BungeeBan/Metrics/Metrics.java | 2 +- src/de/VinciDev/BungeeBan/Util/BungeeBan.java | 10 ++++---- .../VinciDev/BungeeBan/Util/BungeeUtil.java | 2 +- .../VinciDev/BungeeBan/Util/FileManager.java | 4 ++-- src/de/VinciDev/BungeeBan/Util/MySQL.java | 4 ++-- .../BungeeBan/Util/UpdateChecker.java | 4 ++-- 20 files changed, 47 insertions(+), 45 deletions(-) diff --git a/src/de/VinciDev/BungeeBan/Commands/CustomCommand.java b/src/de/VinciDev/BungeeBan/Commands/CustomCommand.java index 33279a0..deaf52b 100644 --- a/src/de/VinciDev/BungeeBan/Commands/CustomCommand.java +++ b/src/de/VinciDev/BungeeBan/Commands/CustomCommand.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Commands; +package de.vincidev.bungeeban.commands; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.plugin.Command; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeBanEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeBanEvent.java index 58aed87..9333481 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeBanEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeBanEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeBanIpEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeBanIpEvent.java index d83a607..07b3236 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeBanIpEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeBanIpEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import net.md_5.bungee.api.plugin.Event; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeKickEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeKickEvent.java index 2f3a48a..67919ba 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeKickEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeKickEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeMuteEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeMuteEvent.java index cf8ef05..9b90058 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeMuteEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeMuteEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeMuteIpEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeMuteIpEvent.java index 1253c80..89366aa 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeMuteIpEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeMuteIpEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import net.md_5.bungee.api.plugin.Event; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeReportEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeReportEvent.java index d97680f..bb8f2a5 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeReportEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeReportEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeUnbanEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeUnbanEvent.java index 4627b0e..f5fe0e8 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeUnbanEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeUnbanEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeUnmuteEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeUnmuteEvent.java index 5d89529..b515b75 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeUnmuteEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeUnmuteEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeUnwarnEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeUnwarnEvent.java index a766ac3..e8d2207 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeUnwarnEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeUnwarnEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Events/BungeeWarnEvent.java b/src/de/VinciDev/BungeeBan/Events/BungeeWarnEvent.java index 2ff9c9c..035f841 100644 --- a/src/de/VinciDev/BungeeBan/Events/BungeeWarnEvent.java +++ b/src/de/VinciDev/BungeeBan/Events/BungeeWarnEvent.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Events; +package de.vincidev.bungeeban.events; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Handlers/BroadcastHandlers.java b/src/de/VinciDev/BungeeBan/Handlers/BroadcastHandlers.java index c17613d..fad16dd 100644 --- a/src/de/VinciDev/BungeeBan/Handlers/BroadcastHandlers.java +++ b/src/de/VinciDev/BungeeBan/Handlers/BroadcastHandlers.java @@ -1,15 +1,15 @@ -package de.VinciDev.BungeeBan.Handlers; - -import de.VinciDev.BungeeBan.Events.BungeeBanEvent; -import de.VinciDev.BungeeBan.Events.BungeeBanIpEvent; -import de.VinciDev.BungeeBan.Events.BungeeKickEvent; -import de.VinciDev.BungeeBan.Events.BungeeMuteEvent; -import de.VinciDev.BungeeBan.Events.BungeeMuteIpEvent; -import de.VinciDev.BungeeBan.Events.BungeeReportEvent; -import de.VinciDev.BungeeBan.Events.BungeeUnbanEvent; -import de.VinciDev.BungeeBan.Events.BungeeUnmuteEvent; -import de.VinciDev.BungeeBan.Events.BungeeUnwarnEvent; -import de.VinciDev.BungeeBan.Events.BungeeWarnEvent; +package de.vincidev.bungeeban.handlers; + +import de.vincidev.bungeeban.events.BungeeBanEvent; +import de.vincidev.bungeeban.events.BungeeBanIpEvent; +import de.vincidev.bungeeban.events.BungeeKickEvent; +import de.vincidev.bungeeban.events.BungeeMuteEvent; +import de.vincidev.bungeeban.events.BungeeMuteIpEvent; +import de.vincidev.bungeeban.events.BungeeReportEvent; +import de.vincidev.bungeeban.events.BungeeUnbanEvent; +import de.vincidev.bungeeban.events.BungeeUnmuteEvent; +import de.vincidev.bungeeban.events.BungeeUnwarnEvent; +import de.vincidev.bungeeban.events.BungeeWarnEvent; import net.md_5.bungee.api.plugin.Listener; import net.md_5.bungee.event.EventHandler; diff --git a/src/de/VinciDev/BungeeBan/Handlers/PlayerConnect.java b/src/de/VinciDev/BungeeBan/Handlers/PlayerConnect.java index 854145c..f8196c8 100644 --- a/src/de/VinciDev/BungeeBan/Handlers/PlayerConnect.java +++ b/src/de/VinciDev/BungeeBan/Handlers/PlayerConnect.java @@ -1,6 +1,6 @@ -package de.VinciDev.BungeeBan.Handlers; +package de.vincidev.bungeeban.handlers; -import de.VinciDev.BungeeBan.Util.BungeeBan; +import de.vincidev.bungeeban.util.BungeeBan; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.event.ServerConnectEvent; import net.md_5.bungee.api.plugin.Listener; diff --git a/src/de/VinciDev/BungeeBan/Main.java b/src/de/VinciDev/BungeeBan/Main.java index f1f4872..2f7203e 100644 --- a/src/de/VinciDev/BungeeBan/Main.java +++ b/src/de/VinciDev/BungeeBan/Main.java @@ -1,15 +1,16 @@ -package de.VinciDev.BungeeBan; +package de.vincidev.bungeeban; import java.io.IOException; import com.google.gson.Gson; -import de.VinciDev.BungeeBan.Handlers.PlayerConnect; -import de.VinciDev.BungeeBan.Metrics.Metrics; -import de.VinciDev.BungeeBan.Util.BungeeBan; -import de.VinciDev.BungeeBan.Util.FileManager; -import de.VinciDev.BungeeBan.Util.MySQL; -import de.VinciDev.BungeeBan.Util.UpdateChecker; +import de.vincidev.bungeeban.handlers.BroadcastHandlers; +import de.vincidev.bungeeban.handlers.PlayerConnect; +import de.vincidev.bungeeban.metrics.Metrics; +import de.vincidev.bungeeban.util.BungeeBan; +import de.vincidev.bungeeban.util.FileManager; +import de.vincidev.bungeeban.util.MySQL; +import de.vincidev.bungeeban.util.UpdateChecker; import net.md_5.bungee.BungeeCord; import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.plugin.PluginManager; @@ -77,6 +78,7 @@ public void onDisable() { public void register() { PluginManager pm = BungeeCord.getInstance().getPluginManager(); pm.registerListener(this, new PlayerConnect()); + pm.registerListener(this, new BroadcastHandlers()); } @SuppressWarnings("deprecation") diff --git a/src/de/VinciDev/BungeeBan/Metrics/Metrics.java b/src/de/VinciDev/BungeeBan/Metrics/Metrics.java index 7baf08a..65ea67e 100644 --- a/src/de/VinciDev/BungeeBan/Metrics/Metrics.java +++ b/src/de/VinciDev/BungeeBan/Metrics/Metrics.java @@ -25,7 +25,7 @@ * authors and contributors and should not be interpreted as representing official policies, * either expressed or implied, of anybody else. */ -package de.VinciDev.BungeeBan.Metrics; +package de.vincidev.bungeeban.metrics; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.plugin.Plugin; diff --git a/src/de/VinciDev/BungeeBan/Util/BungeeBan.java b/src/de/VinciDev/BungeeBan/Util/BungeeBan.java index 541ecc3..3d02c05 100644 --- a/src/de/VinciDev/BungeeBan/Util/BungeeBan.java +++ b/src/de/VinciDev/BungeeBan/Util/BungeeBan.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Util; +package de.vincidev.bungeeban.util; import java.sql.ResultSet; import java.sql.SQLException; @@ -7,10 +7,10 @@ import java.util.Date; import java.util.UUID; -import de.VinciDev.BungeeBan.Main; -import de.VinciDev.BungeeBan.Events.BungeeBanEvent; -import de.VinciDev.BungeeBan.Events.BungeeBanIpEvent; -import de.VinciDev.BungeeBan.Events.BungeeReportEvent; +import de.vincidev.bungeeban.Main; +import de.vincidev.bungeeban.events.BungeeBanEvent; +import de.vincidev.bungeeban.events.BungeeBanIpEvent; +import de.vincidev.bungeeban.events.BungeeReportEvent; import net.md_5.bungee.BungeeCord; import net.md_5.bungee.api.connection.ProxiedPlayer; diff --git a/src/de/VinciDev/BungeeBan/Util/BungeeUtil.java b/src/de/VinciDev/BungeeBan/Util/BungeeUtil.java index 8e4c4c7..ef234b9 100644 --- a/src/de/VinciDev/BungeeBan/Util/BungeeUtil.java +++ b/src/de/VinciDev/BungeeBan/Util/BungeeUtil.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Util; +package de.vincidev.bungeeban.util; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Util/FileManager.java b/src/de/VinciDev/BungeeBan/Util/FileManager.java index 3d2e1b2..ff542c7 100644 --- a/src/de/VinciDev/BungeeBan/Util/FileManager.java +++ b/src/de/VinciDev/BungeeBan/Util/FileManager.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Util; +package de.vincidev.bungeeban.util; import java.io.File; import java.io.IOException; @@ -6,7 +6,7 @@ import java.util.List; import java.util.UUID; -import de.VinciDev.BungeeBan.Main; +import de.vincidev.bungeeban.Main; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.config.Configuration; import net.md_5.bungee.config.ConfigurationProvider; diff --git a/src/de/VinciDev/BungeeBan/Util/MySQL.java b/src/de/VinciDev/BungeeBan/Util/MySQL.java index 6676949..4bb65de 100644 --- a/src/de/VinciDev/BungeeBan/Util/MySQL.java +++ b/src/de/VinciDev/BungeeBan/Util/MySQL.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Util; +package de.vincidev.bungeeban.util; import java.sql.Connection; import java.sql.DriverManager; @@ -6,7 +6,7 @@ import java.sql.ResultSet; import java.sql.SQLException; -import de.VinciDev.BungeeBan.Main; +import de.vincidev.bungeeban.Main; import net.md_5.bungee.BungeeCord; public class MySQL { diff --git a/src/de/VinciDev/BungeeBan/Util/UpdateChecker.java b/src/de/VinciDev/BungeeBan/Util/UpdateChecker.java index fbdfe9d..8a724ea 100644 --- a/src/de/VinciDev/BungeeBan/Util/UpdateChecker.java +++ b/src/de/VinciDev/BungeeBan/Util/UpdateChecker.java @@ -1,4 +1,4 @@ -package de.VinciDev.BungeeBan.Util; +package de.vincidev.bungeeban.util; import java.io.BufferedReader; import java.io.IOException; @@ -7,7 +7,7 @@ import java.net.MalformedURLException; import java.net.URL; -import de.VinciDev.BungeeBan.Main; +import de.vincidev.bungeeban.Main; public class UpdateChecker { public static boolean updateAvailable(Main instance, String rsID) { From 4fdd53a9f8dab245f8162179ffb011cfecfa00bc Mon Sep 17 00:00:00 2001 From: Luca Vinciguerra Date: Mon, 30 Nov 2015 12:57:55 +0100 Subject: [PATCH 3/5] Updated plugin.yml --- BungeeBan-latest.jar | Bin 47386 -> 0 bytes src/plugin.yml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 BungeeBan-latest.jar diff --git a/BungeeBan-latest.jar b/BungeeBan-latest.jar deleted file mode 100644 index fbbe2278877552f76c48b778c117acddf45406a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47386 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 diff --git a/src/plugin.yml b/src/plugin.yml index f832fed..a778bb5 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,7 +1,7 @@ -name: BungeeCord +name: BungeeBan version: 2.7 author: [VinciDev] -main: de.VinciDev.BungeeBan.Main +main: de.vincidev.bungeeban.Main commands: ban: banip: From 0d8e9d268cbec9910aa52f4e5efc3f7b89dd830b Mon Sep 17 00:00:00 2001 From: NubeBuster Date: Mon, 18 Jan 2016 13:55:10 +0100 Subject: [PATCH 4/5] Bug fixes Renamed package names to lower case as it's supposed to be (https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html) Renamed the Main.java to BungeeBan.java Fixed case sensitivity with names --- .../BungeeBan/{Main.java => BungeeBan.java} | 20 ++-- .../BungeeBanUtils.java} | 96 +++++++++---------- .../BungeeBan/{Util => utils}/BungeeUtil.java | 2 +- .../{Util => utils}/FileManager.java | 74 +++++++------- .../BungeeBan/{Util => utils}/MySQL.java | 6 +- .../{Util => utils}/UpdateChecker.java | 6 +- 6 files changed, 102 insertions(+), 102 deletions(-) rename src/de/VinciDev/BungeeBan/{Main.java => BungeeBan.java} (85%) rename src/de/VinciDev/BungeeBan/{Util/BungeeBan.java => utils/BungeeBanUtils.java} (87%) rename src/de/VinciDev/BungeeBan/{Util => utils}/BungeeUtil.java (97%) rename src/de/VinciDev/BungeeBan/{Util => utils}/FileManager.java (84%) rename src/de/VinciDev/BungeeBan/{Util => utils}/MySQL.java (93%) rename src/de/VinciDev/BungeeBan/{Util => utils}/UpdateChecker.java (86%) diff --git a/src/de/VinciDev/BungeeBan/Main.java b/src/de/VinciDev/BungeeBan/BungeeBan.java similarity index 85% rename from src/de/VinciDev/BungeeBan/Main.java rename to src/de/VinciDev/BungeeBan/BungeeBan.java index 2f7203e..0182535 100644 --- a/src/de/VinciDev/BungeeBan/Main.java +++ b/src/de/VinciDev/BungeeBan/BungeeBan.java @@ -7,19 +7,19 @@ import de.vincidev.bungeeban.handlers.BroadcastHandlers; import de.vincidev.bungeeban.handlers.PlayerConnect; import de.vincidev.bungeeban.metrics.Metrics; -import de.vincidev.bungeeban.util.BungeeBan; -import de.vincidev.bungeeban.util.FileManager; -import de.vincidev.bungeeban.util.MySQL; -import de.vincidev.bungeeban.util.UpdateChecker; +import de.vincidev.bungeeban.utils.BungeeBanUtils; +import de.vincidev.bungeeban.utils.FileManager; +import de.vincidev.bungeeban.utils.MySQL; +import de.vincidev.bungeeban.utils.UpdateChecker; import net.md_5.bungee.BungeeCord; import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.plugin.PluginManager; -public class Main extends Plugin { +public class BungeeBan extends Plugin { static String prefix = ""; static MySQL mysql; - static Main main; + static BungeeBan main; static Gson gson; public static final String rsId = "5924"; @@ -50,7 +50,7 @@ public void onEnable() { mysql.openConnection(); if (mysql.isConnected()) { log("§9Connection successful. Tables will be created if they do not already exist."); - BungeeBan.createTables(); + BungeeBanUtils.createTables(); } else { log("§cThe mysql connection was not successful. Please recheck your config.yml"); } @@ -86,7 +86,7 @@ public static void log(String msg) { BungeeCord.getInstance().getConsole().sendMessage(msg); } - public static Main getInstance() { + public static BungeeBan getInstance() { return main; } @@ -99,11 +99,11 @@ public static String getPrefix() { } public static void setMysql(MySQL mysql) { - Main.mysql = mysql; + BungeeBan.mysql = mysql; } public static void setPrefix(String prefix) { - Main.prefix = prefix; + BungeeBan.prefix = prefix; } public static Gson getGson() { diff --git a/src/de/VinciDev/BungeeBan/Util/BungeeBan.java b/src/de/VinciDev/BungeeBan/utils/BungeeBanUtils.java similarity index 87% rename from src/de/VinciDev/BungeeBan/Util/BungeeBan.java rename to src/de/VinciDev/BungeeBan/utils/BungeeBanUtils.java index 3d02c05..c3d8145 100644 --- a/src/de/VinciDev/BungeeBan/Util/BungeeBan.java +++ b/src/de/VinciDev/BungeeBan/utils/BungeeBanUtils.java @@ -1,4 +1,4 @@ -package de.vincidev.bungeeban.util; +package de.vincidev.bungeeban.utils; import java.sql.ResultSet; import java.sql.SQLException; @@ -7,7 +7,7 @@ import java.util.Date; import java.util.UUID; -import de.vincidev.bungeeban.Main; +import de.vincidev.bungeeban.BungeeBan; import de.vincidev.bungeeban.events.BungeeBanEvent; import de.vincidev.bungeeban.events.BungeeBanIpEvent; import de.vincidev.bungeeban.events.BungeeReportEvent; @@ -25,7 +25,7 @@ * API. If you need help using this class and its implemented * methods, don't hesitate to contact VinciDev in Skype. */ -public class BungeeBan { +public class BungeeBanUtils { public static final String tablePrefix = "BungeeBan_"; @@ -33,18 +33,18 @@ public class BungeeBan { * Creates the tables in the MySQL database in case they didn't exist yet. */ public static void createTables() { - Main.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + BungeeBan.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + "PlayerCache(Playername VARCHAR(16), UUID VARCHAR(100), FirstOnline LONG, LastOnline LONG, LastIP VARCHAR(100))"); - Main.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + BungeeBan.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + "Bans(UUID VARCHAR(100), BanReason VARCHAR(256), BannedOn LONG, BanEnd LONG, BannedBy VARCHAR(100))"); - Main.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + BungeeBan.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + "IPBans(IP VARCHAR(100), BanReason VARCHAR(256), BannedOn LONG, BanEnd LONG, BannedBy VARCHAR(100))"); - Main.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + BungeeBan.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + "Mutes(UUID VARCHAR(100), MuteReason VARCHAR(256), MutedOn LONG, MuteEnd LONG, MutedBy VARCHAR(100))"); - Main.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + BungeeBan.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + "IPMutes(IP VARCHAR(100), MuteReason VARCHAR(256), MutedOn LONG, MuteEnd LONG, MutedBy VARCHAR(100))"); - Main.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + "Warns(UUID VARCHAR(100), WarnLevel INT)"); - Main.getMysql() + BungeeBan.getMysql().update("CREATE TABLE IF NOT EXISTS " + tablePrefix + "Warns(UUID VARCHAR(100), WarnLevel INT)"); + BungeeBan.getMysql() .update("CREATE TABLE IF NOT EXISTS " + tablePrefix + "Logs(Date VARCHAR(100), Message VARCHAR(1024))"); } @@ -56,7 +56,7 @@ public static void createTables() { * @return nothing */ public static void report(UUID reported, UUID reportedBy, String reason, String servername) { - Main.getInstance().getProxy().getPluginManager() + BungeeBan.getInstance().getProxy().getPluginManager() .callEvent(new BungeeReportEvent(reported, reportedBy, reason, servername)); } @@ -68,17 +68,17 @@ public static void report(UUID reported, UUID reportedBy, String reason, String * the Player who should be pushed */ public static void pushPlayer(ProxiedPlayer p) { - ResultSet rs = Main.getMysql().getResult( + ResultSet rs = BungeeBan.getMysql().getResult( "SELECT * FROM " + tablePrefix + "PlayerCache WHERE UUID='" + p.getUniqueId().toString() + "'"); try { if (rs.next()) { - Main.getMysql() + BungeeBan.getMysql() .update("UPDATE " + tablePrefix + "PlayerCache SET Playername='" + p.getName() + "', LastOnline='" + System.currentTimeMillis() + "', LastIP='" + p.getAddress().getAddress().getHostAddress() + "' WHERE UUID='" + p.getUniqueId().toString() + "'"); } else { - Main.getMysql().update("INSERT INTO " + tablePrefix + BungeeBan.getMysql().update("INSERT INTO " + tablePrefix + "PlayerCache(Playername, UUID, FirstOnline, LastOnline, LastIP) VALUES('" + p.getName() + "', '" + p.getUniqueId().toString() + "', '" + System.currentTimeMillis() + "', '" + System.currentTimeMillis() + "', '" + p.getAddress().getAddress().getHostAddress() + "')"); @@ -97,8 +97,8 @@ public static void pushPlayer(ProxiedPlayer p) { * "null" if he doesn't. */ public static UUID getUniqueID(String playername) { - ResultSet rs = Main.getMysql() - .getResult("SELECT * FROM " + tablePrefix + "PlayerCache WHERE Playername='" + playername + "'"); + ResultSet rs = BungeeBan.getMysql() + .getResult("SELECT * FROM " + tablePrefix + "PlayerCache WHERE Playername like '" + playername + "'"); try { if (rs.next()) { return UUID.fromString(rs.getString("UUID")); @@ -118,7 +118,7 @@ public static UUID getUniqueID(String playername) { * he doesn't. */ public static String getPlayername(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "PlayerCache WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -156,7 +156,7 @@ public static String getUUID(String playername) { * exists, or "0" if he doesn't. */ public static long firstOnline(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "PlayerCache WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -178,7 +178,7 @@ public static long firstOnline(UUID uuid) { * exists, or "0" if he doesn't. */ public static long lastOnline(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "PlayerCache WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -200,7 +200,7 @@ public static long lastOnline(UUID uuid) { * exists, or "0" if he doesn't. */ public static String getLastIp(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "PlayerCache WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -220,7 +220,7 @@ public static String getLastIp(UUID uuid) { * @return true if the player is banned, false if the player is not banned. */ public static boolean isBanned(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Bans WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -240,7 +240,7 @@ public static boolean isBanned(UUID uuid) { * @return true if the player is banned, false if the player is not banned. */ public static boolean isBanned(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); try { if (rs.next()) { return true; @@ -259,7 +259,7 @@ public static boolean isBanned(String ip) { * @return true if the player is muted, false if the player is not muted. */ public static boolean isMuted(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Mutes WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -279,7 +279,7 @@ public static boolean isMuted(UUID uuid) { * @return true if the IP is muted, false if the IP is not muted. */ public static boolean isMuted(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE IP='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE IP='" + ip + "'"); try { if (rs.next()) { return true; @@ -298,7 +298,7 @@ public static boolean isMuted(String ip) { * @return true if the player is warned, false if the player is not warned. */ public static boolean isWarned(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Warns WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -319,7 +319,7 @@ public static boolean isWarned(UUID uuid) { * is not banned */ public static String getBanReason(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Bans WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -340,7 +340,7 @@ public static String getBanReason(UUID uuid) { * banned */ public static String getBanReason(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); try { if (rs.next()) { return rs.getString("BanReason"); @@ -360,7 +360,7 @@ public static String getBanReason(String ip) { * is not muted */ public static String getMuteReason(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Mutes WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -381,7 +381,7 @@ public static String getMuteReason(UUID uuid) { * muted */ public static String getMuteReason(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE IP='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE IP='" + ip + "'"); try { if (rs.next()) { return rs.getString("MuteReason"); @@ -402,7 +402,7 @@ public static String getMuteReason(String ip) { * if the player is not banned */ public static String getWhoBanned(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Bans WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -423,7 +423,7 @@ public static String getWhoBanned(UUID uuid) { * the IP is not banned */ public static String getWhoBanned(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); try { if (rs.next()) { return rs.getString("BannedBy"); @@ -444,7 +444,7 @@ public static String getWhoBanned(String ip) { * if the player is not muted */ public static String getWhoMuted(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Mutes WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -465,7 +465,7 @@ public static String getWhoMuted(UUID uuid) { * the IP is not muted */ public static String getWhoMuted(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE IP='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE IP='" + ip + "'"); try { if (rs.next()) { return rs.getString("MutedBy"); @@ -484,7 +484,7 @@ public static String getWhoMuted(String ip) { * @return The time when the player has been banned and 0 if he isnt banned */ public static long getBannedOn(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Bans WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -504,7 +504,7 @@ public static long getBannedOn(UUID uuid) { * @return The time when the IP has been banned and 0 if it isnt banned */ public static long getBannedOn(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); try { if (rs.next()) { return rs.getLong("BannedOn"); @@ -523,7 +523,7 @@ public static long getBannedOn(String ip) { * @return The time when the player has been muted and 0 if he isnt muted */ public static long getMutedOn(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Mutes WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -543,7 +543,7 @@ public static long getMutedOn(UUID uuid) { * @return The time when the IP has been muted and 0 if it isnt muted */ public static long getMutedOn(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE IP='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE IP='" + ip + "'"); try { if (rs.next()) { return rs.getLong("MutedOn"); @@ -563,7 +563,7 @@ public static long getMutedOn(String ip) { * -1 if he is permanently banned */ public static long getBanEnd(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Bans WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -584,7 +584,7 @@ public static long getBanEnd(UUID uuid) { * if he is permanently muted */ public static long getMuteEnd(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE UUID='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPMutes WHERE UUID='" + ip + "'"); try { if (rs.next()) { return rs.getLong("MuteEnd"); @@ -604,7 +604,7 @@ public static long getMuteEnd(String ip) { * if he is permanently muted */ public static long getMuteEnd(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Mutes WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -625,7 +625,7 @@ public static long getMuteEnd(UUID uuid) { * if he is permanently banned */ public static long getBanEnd(String ip) { - ResultSet rs = Main.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); + ResultSet rs = BungeeBan.getMysql().getResult("SELECT * FROM " + tablePrefix + "IPBans WHERE IP='" + ip + "'"); try { if (rs.next()) { return rs.getLong("BanEnd"); @@ -645,8 +645,8 @@ public static long getBanEnd(String ip) { public static void log(String message) { DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); Date date = new Date(); - if (Main.getMysql() != null) { - Main.getMysql().update("INSERT INTO " + tablePrefix + "Logs(Date, Message) VALUES('" + if (BungeeBan.getMysql() != null) { + BungeeBan.getMysql().update("INSERT INTO " + tablePrefix + "Logs(Date, Message) VALUES('" + dateFormat.format(date) + "', '" + message + "')"); } } @@ -660,7 +660,7 @@ public static void log(String message) { * and -1 if he hasn't. */ public static int getWarnLevel(UUID uuid) { - ResultSet rs = Main.getMysql() + ResultSet rs = BungeeBan.getMysql() .getResult("SELECT * FROM " + tablePrefix + "Warns WHERE UUID='" + uuid.toString() + "'"); try { if (rs.next()) { @@ -681,10 +681,10 @@ public static int getWarnLevel(UUID uuid) { */ public static void setWarnLevel(UUID uuid, int warnlevel) { if (getWarnLevel(uuid) != -1) { - Main.getMysql().update("UPDATE " + tablePrefix + "Warns SET WarnLevel='" + warnlevel + "' WHERE UUID='" + BungeeBan.getMysql().update("UPDATE " + tablePrefix + "Warns SET WarnLevel='" + warnlevel + "' WHERE UUID='" + uuid.toString() + "'"); } else { - Main.getMysql().update("INSERT INTO " + tablePrefix + "Warns(UUID, WarnLevel) VALUES('" + uuid.toString() + BungeeBan.getMysql().update("INSERT INTO " + tablePrefix + "Warns(UUID, WarnLevel) VALUES('" + uuid.toString() + "', '" + warnlevel + "')"); } } @@ -749,7 +749,7 @@ public static void banPlayer(UUID uuid, String bannedBy, String banReason, long end = System.currentTimeMillis() + (seconds * 1000); } // MySQL Insertion - Main.getMysql() + BungeeBan.getMysql() .update("INSERT INTO " + tablePrefix + "Bans(UUID, BanReason, BannedOn, BanEnd, BannedBy) VALUES('" + uuid.toString() + "', '" + banReason + "', '" + System.currentTimeMillis() + "', '" + end + "', '" + bannedBy + "')"); @@ -785,7 +785,7 @@ public static void banPlayer(String ip, String bannedBy, String banReason, long end = System.currentTimeMillis() + (seconds * 1000); } // MySQL Insertion - Main.getMysql() + BungeeBan.getMysql() .update("INSERT INTO " + tablePrefix + "IPBans(IP, BanReason, BannedOn, BanEnd, BannedBy) VALUES('" + ip.toString() + "', '" + banReason + "', '" + System.currentTimeMillis() + "', '" + end + "', '" + bannedBy + "')"); diff --git a/src/de/VinciDev/BungeeBan/Util/BungeeUtil.java b/src/de/VinciDev/BungeeBan/utils/BungeeUtil.java similarity index 97% rename from src/de/VinciDev/BungeeBan/Util/BungeeUtil.java rename to src/de/VinciDev/BungeeBan/utils/BungeeUtil.java index ef234b9..672f019 100644 --- a/src/de/VinciDev/BungeeBan/Util/BungeeUtil.java +++ b/src/de/VinciDev/BungeeBan/utils/BungeeUtil.java @@ -1,4 +1,4 @@ -package de.vincidev.bungeeban.util; +package de.vincidev.bungeeban.utils; import java.util.UUID; diff --git a/src/de/VinciDev/BungeeBan/Util/FileManager.java b/src/de/VinciDev/BungeeBan/utils/FileManager.java similarity index 84% rename from src/de/VinciDev/BungeeBan/Util/FileManager.java rename to src/de/VinciDev/BungeeBan/utils/FileManager.java index ff542c7..dead9e2 100644 --- a/src/de/VinciDev/BungeeBan/Util/FileManager.java +++ b/src/de/VinciDev/BungeeBan/utils/FileManager.java @@ -1,4 +1,4 @@ -package de.vincidev.bungeeban.util; +package de.vincidev.bungeeban.utils; import java.io.File; import java.io.IOException; @@ -6,7 +6,7 @@ import java.util.List; import java.util.UUID; -import de.vincidev.bungeeban.Main; +import de.vincidev.bungeeban.BungeeBan; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.config.Configuration; import net.md_5.bungee.config.ConfigurationProvider; @@ -19,10 +19,10 @@ public class FileManager { public static Configuration LanguageConfiguration; public static void loadFiles() { - if (!Main.getInstance().getDataFolder().exists()) { - Main.getInstance().getDataFolder().mkdir(); + if (!BungeeBan.getInstance().getDataFolder().exists()) { + BungeeBan.getInstance().getDataFolder().mkdir(); } - ConfigFile = new File(Main.getInstance().getDataFolder().getPath(), "config.yml"); + ConfigFile = new File(BungeeBan.getInstance().getDataFolder().getPath(), "config.yml"); if (!ConfigFile.exists()) { try { ConfigFile.createNewFile(); @@ -35,7 +35,7 @@ public static void loadFiles() { } catch (IOException e1) { e1.printStackTrace(); } - LanguageFile = new File(Main.getInstance().getDataFolder().getPath(), "lang.yml"); + LanguageFile = new File(BungeeBan.getInstance().getDataFolder().getPath(), "lang.yml"); if (!LanguageFile.exists()) { try { LanguageFile.createNewFile(); @@ -54,9 +54,9 @@ public static void setDefaultConfig() { if (ConfigConfiguration.get("MySQL") == null) { ConfigConfiguration.set("MySQL.Hostname", "127.0.0.1"); ConfigConfiguration.set("MySQL.Port", 3306); - ConfigConfiguration.set("MySQL.Username", "bungeeban"); + ConfigConfiguration.set("MySQL.Username", "BungeeBanUtils"); ConfigConfiguration.set("MySQL.Password", "walrus"); - ConfigConfiguration.set("MySQL.Database", "bungeeban"); + ConfigConfiguration.set("MySQL.Database", "BungeeBanUtils"); ConfigConfiguration.set("WebPanel.Username", "admin"); ConfigConfiguration.set("WebPanel.Password", "admin"); ConfigConfiguration.set("Report.CoolDownActivated", true); @@ -79,14 +79,14 @@ public static void readConfig() { String username = ConfigConfiguration.getString("MySQL.Username"); String password = ConfigConfiguration.getString("MySQL.Password"); String database = ConfigConfiguration.getString("MySQL.Database"); - Main.setMysql(new MySQL(hostname, port, username, password, database)); + BungeeBan.setMysql(new MySQL(hostname, port, username, password, database)); } @SuppressWarnings({ "rawtypes", "unchecked" }) public static void createLangFile() { if (LanguageConfiguration.get("Prefix") == null) { // Prefixes - LanguageConfiguration.set("Prefix", "&8[&cBungeeBan&8] "); + LanguageConfiguration.set("Prefix", "&8[&cBungeeBanUtils&8] "); // Errors LanguageConfiguration.set("Messages.NoPermissions", "&cYou are not allowed to use this."); LanguageConfiguration.set("Messages.Cooldown", "&cPlease wait a bit before using this again."); @@ -195,11 +195,11 @@ public static String getTranslation(String path) { public static List getBanKickMessage(UUID uuid) { List messages = new ArrayList<>(); - if (BungeeBan.isBanned(uuid)) { - String playername = BungeeBan.getPlayername(uuid); - String reason = BungeeBan.getBanReason(uuid); - String by = BungeeBan.getWhoBanned(uuid); - String end = BungeeBan.getRemainingTime(BungeeBan.getBanEnd(uuid)); + if (BungeeBanUtils.isBanned(uuid)) { + String playername = BungeeBanUtils.getPlayername(uuid); + String reason = BungeeBanUtils.getBanReason(uuid); + String by = BungeeBanUtils.getWhoBanned(uuid); + String end = BungeeBanUtils.getRemainingTime(BungeeBanUtils.getBanEnd(uuid)); messages = LanguageConfiguration.getStringList("Messages.Ban.Kick"); for (String message : messages) { message = ChatColor.translateAlternateColorCodes('&', message); @@ -214,11 +214,11 @@ public static List getBanKickMessage(UUID uuid) { public static List getBanBroadcastMessage(UUID uuid) { List messages = new ArrayList<>(); - if (BungeeBan.isBanned(uuid)) { - String playername = BungeeBan.getPlayername(uuid); - String reason = BungeeBan.getBanReason(uuid); - String by = BungeeBan.getWhoBanned(uuid); - String end = BungeeBan.getRemainingTime(BungeeBan.getBanEnd(uuid)); + if (BungeeBanUtils.isBanned(uuid)) { + String playername = BungeeBanUtils.getPlayername(uuid); + String reason = BungeeBanUtils.getBanReason(uuid); + String by = BungeeBanUtils.getWhoBanned(uuid); + String end = BungeeBanUtils.getRemainingTime(BungeeBanUtils.getBanEnd(uuid)); messages = LanguageConfiguration.getStringList("Messages.Ban.Broadcast"); for (String message : messages) { message = ChatColor.translateAlternateColorCodes('&', message); @@ -233,10 +233,10 @@ public static List getBanBroadcastMessage(UUID uuid) { public static List getBanBroadcastMessage(String ip) { List messages = new ArrayList<>(); - if (BungeeBan.isBanned(ip)) { - String reason = BungeeBan.getBanReason(ip); - String by = BungeeBan.getWhoBanned(ip); - String end = BungeeBan.getRemainingTime(BungeeBan.getBanEnd(ip)); + if (BungeeBanUtils.isBanned(ip)) { + String reason = BungeeBanUtils.getBanReason(ip); + String by = BungeeBanUtils.getWhoBanned(ip); + String end = BungeeBanUtils.getRemainingTime(BungeeBanUtils.getBanEnd(ip)); messages = LanguageConfiguration.getStringList("Messages.Ban.Broadcast"); for (String message : messages) { message = ChatColor.translateAlternateColorCodes('&', message); @@ -251,10 +251,10 @@ public static List getBanBroadcastMessage(String ip) { public static List getBanKickMessage(String ip) { List messages = new ArrayList<>(); - if (BungeeBan.isBanned(ip)) { - String reason = BungeeBan.getBanReason(ip); - String by = BungeeBan.getWhoBanned(ip); - String end = BungeeBan.getRemainingTime(BungeeBan.getBanEnd(ip)); + if (BungeeBanUtils.isBanned(ip)) { + String reason = BungeeBanUtils.getBanReason(ip); + String by = BungeeBanUtils.getWhoBanned(ip); + String end = BungeeBanUtils.getRemainingTime(BungeeBanUtils.getBanEnd(ip)); messages = LanguageConfiguration.getStringList("Messages.Ban.Kick"); for (String message : messages) { message = ChatColor.translateAlternateColorCodes('&', message); @@ -268,11 +268,11 @@ public static List getBanKickMessage(String ip) { public static List getMuteKickMessage(UUID uuid) { List messages = new ArrayList<>(); - if (BungeeBan.isBanned(uuid)) { - String playername = BungeeBan.getPlayername(uuid); - String reason = BungeeBan.getMuteReason(uuid); - String by = BungeeBan.getWhoMuted(uuid); - String end = BungeeBan.getRemainingTime(BungeeBan.getMuteEnd(uuid)); + if (BungeeBanUtils.isBanned(uuid)) { + String playername = BungeeBanUtils.getPlayername(uuid); + String reason = BungeeBanUtils.getMuteReason(uuid); + String by = BungeeBanUtils.getWhoMuted(uuid); + String end = BungeeBanUtils.getRemainingTime(BungeeBanUtils.getMuteEnd(uuid)); messages = LanguageConfiguration.getStringList("Messages.Mute.MuteMessage"); for (String message : messages) { message = ChatColor.translateAlternateColorCodes('&', message); @@ -287,10 +287,10 @@ public static List getMuteKickMessage(UUID uuid) { public static List getMuteKickMessage(String ip) { List messages = new ArrayList<>(); - if (BungeeBan.isBanned(ip)) { - String reason = BungeeBan.getMuteReason(ip); - String by = BungeeBan.getWhoMuted(ip); - String end = BungeeBan.getRemainingTime(BungeeBan.getMuteEnd(ip)); + if (BungeeBanUtils.isBanned(ip)) { + String reason = BungeeBanUtils.getMuteReason(ip); + String by = BungeeBanUtils.getWhoMuted(ip); + String end = BungeeBanUtils.getRemainingTime(BungeeBanUtils.getMuteEnd(ip)); messages = LanguageConfiguration.getStringList("Messages.Mute.MuteMessage"); for (String message : messages) { message = ChatColor.translateAlternateColorCodes('&', message); diff --git a/src/de/VinciDev/BungeeBan/Util/MySQL.java b/src/de/VinciDev/BungeeBan/utils/MySQL.java similarity index 93% rename from src/de/VinciDev/BungeeBan/Util/MySQL.java rename to src/de/VinciDev/BungeeBan/utils/MySQL.java index 4bb65de..24d7ccf 100644 --- a/src/de/VinciDev/BungeeBan/Util/MySQL.java +++ b/src/de/VinciDev/BungeeBan/utils/MySQL.java @@ -1,4 +1,4 @@ -package de.vincidev.bungeeban.util; +package de.vincidev.bungeeban.utils; import java.sql.Connection; import java.sql.DriverManager; @@ -6,7 +6,7 @@ import java.sql.ResultSet; import java.sql.SQLException; -import de.vincidev.bungeeban.Main; +import de.vincidev.bungeeban.BungeeBan; import net.md_5.bungee.BungeeCord; public class MySQL { @@ -53,7 +53,7 @@ public void closeConnection() { public void update(String query) { if (isConnected()) { - BungeeCord.getInstance().getScheduler().runAsync(Main.getInstance(), new Runnable() { + BungeeCord.getInstance().getScheduler().runAsync(BungeeBan.getInstance(), new Runnable() { @Override public void run() { try { diff --git a/src/de/VinciDev/BungeeBan/Util/UpdateChecker.java b/src/de/VinciDev/BungeeBan/utils/UpdateChecker.java similarity index 86% rename from src/de/VinciDev/BungeeBan/Util/UpdateChecker.java rename to src/de/VinciDev/BungeeBan/utils/UpdateChecker.java index 8a724ea..572d876 100644 --- a/src/de/VinciDev/BungeeBan/Util/UpdateChecker.java +++ b/src/de/VinciDev/BungeeBan/utils/UpdateChecker.java @@ -1,4 +1,4 @@ -package de.vincidev.bungeeban.util; +package de.vincidev.bungeeban.utils; import java.io.BufferedReader; import java.io.IOException; @@ -7,10 +7,10 @@ import java.net.MalformedURLException; import java.net.URL; -import de.vincidev.bungeeban.Main; +import de.vincidev.bungeeban.BungeeBan; public class UpdateChecker { - public static boolean updateAvailable(Main instance, String rsID) { + public static boolean updateAvailable(BungeeBan instance, String rsID) { int localVersion = Integer.parseInt(instance.getDescription().getVersion().replace(".", "")); try { HttpURLConnection con = (HttpURLConnection) new URL("http://www.spigotmc.org/api/general.php") From ad0081a4de0382a3267501e3d03374660c7378ba Mon Sep 17 00:00:00 2001 From: NubeBuster Date: Mon, 18 Jan 2016 13:59:49 +0100 Subject: [PATCH 5/5] Missing updates from the last commit some stuff that didnt update correctly --- src/de/VinciDev/BungeeBan/Handlers/PlayerConnect.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/de/VinciDev/BungeeBan/Handlers/PlayerConnect.java b/src/de/VinciDev/BungeeBan/Handlers/PlayerConnect.java index f8196c8..5e9b26f 100644 --- a/src/de/VinciDev/BungeeBan/Handlers/PlayerConnect.java +++ b/src/de/VinciDev/BungeeBan/Handlers/PlayerConnect.java @@ -1,6 +1,6 @@ package de.vincidev.bungeeban.handlers; -import de.vincidev.bungeeban.util.BungeeBan; +import de.vincidev.bungeeban.utils.BungeeBanUtils; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.event.ServerConnectEvent; import net.md_5.bungee.api.plugin.Listener; @@ -10,6 +10,6 @@ public class PlayerConnect implements Listener { @EventHandler public void onConnected(ServerConnectEvent e) { ProxiedPlayer p = e.getPlayer(); - BungeeBan.pushPlayer(p); + BungeeBanUtils.pushPlayer(p); } } \ No newline at end of file