diff --git a/.gitignore b/.gitignore index a0e0a01..c8fff8f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,11 @@ /.settings/* /bin/* /.classpath -/.project \ No newline at end of file +/.project +/target/ + +*.jar + +*.jar + +dl/GeoIP.dat.gz diff --git a/dl/GeoIP.dat.gz b/dl/GeoIP.dat.gz old mode 100644 new mode 100755 diff --git a/dl/update.txt b/dl/update.txt old mode 100644 new mode 100755 diff --git a/lib/AntiCheat.jar b/lib/AntiCheat.jar old mode 100644 new mode 100755 diff --git a/pom.xml b/pom.xml index 19ec571..8630192 100644 --- a/pom.xml +++ b/pom.xml @@ -1,84 +1,81 @@ - - 4.0.0 - - - com.superspytx.ab - AntiBot - jar - AntiBot - 4.0.4 - http://dev.bukkit.org/server-mods/antibot - + + 4.0.0 + + + com.superspytx.ab + AntiBot + jar + AntiBot + 4.0.5 + http://dev.bukkit.org/server-mods/antibot + The ultimate anti spam protection plugin for Minecraft. It trolls users who use login spam tools like PWN4G3 and Paradigm. - - - UTF-8 - - - - scm:git:git://github.com/SuperSpyTX/AntiBot.git - scm:git:ssh://git@github.com:SuperSpyTX/AntiBot.git - http://github.com/SuperSpyTX/AntiBot - - - - GitHub - https://github.com/SuperSpyTX/AntiBot/issues - - - - ${basedir}/src - ${project.artifactId}-${project.version}-SNAPSHOT - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - 1.6 - 1.6 - ${project.build.sourceEncoding} - - - - - - - - . - true - ${basedir}/ - - plugin.yml - - - - - - - - - org.bukkit - bukkit - 1.4.7-R1.1-SNAPSHOT - - - net.h31ix.anticheat - AntiCheat - 1.0 - system - ${basedir}/lib/AntiCheat.jar - - - - - - bukkit-repo - http://repo.bukkit.org/content/groups/public - - + + + UTF-8 + + + + scm:git:git://github.com/SuperSpyTX/AntiBot.git + scm:git:ssh://git@github.com:SuperSpyTX/AntiBot.git + http://github.com/SuperSpyTX/AntiBot + + + + GitHub + https://github.com/SuperSpyTX/AntiBot/issues + + + + ${basedir}/src + ${project.artifactId}-${project.version}-SNAPSHOT + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.7 + 1.7 + + + + + + src/main/resources + true + + + + + + + + org.bukkit + bukkit + 1.8-R0.1-SNAPSHOT + jar + provided + + + net.gravitydevelopment.anticheat + AntiCheat + 2.0 + compile + + + + + + anticheat + http://repo.gravitydevelopment.net/ + + + bukkit-repo + http://repo.bukkit.org/content/groups/public + + \ No newline at end of file diff --git a/src/com/retardmind/geoipingthemuntiltheydie/AndSoStupidThat.java b/src/com/retardmind/geoipingthemuntiltheydie/AndSoStupidThat.java old mode 100644 new mode 100755 diff --git a/src/com/retardmind/geoipingthemuntiltheydie/CountrySegregation.java b/src/com/retardmind/geoipingthemuntiltheydie/CountrySegregation.java old mode 100644 new mode 100755 diff --git a/src/com/retardmind/geoipingthemuntiltheydie/PeoplesOrdersStupidly.java b/src/com/retardmind/geoipingthemuntiltheydie/PeoplesOrdersStupidly.java old mode 100644 new mode 100755 diff --git a/src/com/retardmind/geoipingthemuntiltheydie/RetardMindMarking.java b/src/com/retardmind/geoipingthemuntiltheydie/RetardMindMarking.java old mode 100644 new mode 100755 diff --git a/src/com/retardmind/geoipingthemuntiltheydie/RetardMindShouldGoOutOfBusiness.java b/src/com/retardmind/geoipingthemuntiltheydie/RetardMindShouldGoOutOfBusiness.java old mode 100644 new mode 100755 diff --git a/src/com/retardmind/geoipingthemuntiltheydie/SweetTeenageCrimeIsLulzy.java b/src/com/retardmind/geoipingthemuntiltheydie/SweetTeenageCrimeIsLulzy.java old mode 100644 new mode 100755 diff --git a/src/com/retardmind/geoipingthemuntiltheydie/VandalismIsFunIsntIt.java b/src/com/retardmind/geoipingthemuntiltheydie/VandalismIsFunIsntIt.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/AB.java b/src/com/superspytx/ab/AB.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/AntiBot.java b/src/com/superspytx/ab/AntiBot.java old mode 100644 new mode 100755 index 192fea4..7b94be2 --- a/src/com/superspytx/ab/AntiBot.java +++ b/src/com/superspytx/ab/AntiBot.java @@ -1,18 +1,24 @@ package com.superspytx.ab; +import java.io.File; import java.io.IOException; +import java.io.InputStream; +import java.util.logging.Level; + import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; + import com.superspytx.ab.Metrics.Graph; import com.superspytx.ab.abs.CommandEvent; import com.superspytx.ab.callunits.CallUnit; import com.superspytx.ab.handlers.Handlers; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.settings.Permissions; import com.superspytx.ab.settings.Settings; import com.superspytx.ab.settings.SettingsCore; @@ -28,13 +34,16 @@ public class AntiBot extends JavaPlugin { private static boolean development; private Updates updates; + public static YamlConfiguration LANG; + public static File LANG_FILE; + public void onDisable() { Bukkit.getScheduler().cancelTasks(this); } public void onEnable() { instance = this; - + loadLang(); /* Make plugin directory if it doesn't exist.* * This should fix the GeoIP problem */ if (!getDataFolder().exists()) getDataFolder().mkdir(); @@ -126,7 +135,7 @@ public int getValue() { public void run() { AB.log("System has been enabled!"); for (Player pl : Bukkit.getOnlinePlayers()) { - if (Permissions.ADMIN_NOTIFY.getPermission(pl)) pl.sendMessage(Language.prefix + ChatColor.GREEN + "System has been enabled!"); + if (Permissions.ADMIN_NOTIFY.getPermission(pl)) pl.sendMessage(Lang.PREFIX.toString() + ChatColor.GREEN + "System has been enabled!"); } Settings.enabled = true; Settings.delayedStart = false; @@ -209,6 +218,9 @@ public static void reload() { for (Player pl : AB.getInstance().getServer().getOnlinePlayers()) { GD.getPI(pl).ab_alreadyin = true; } + + // maybe reload lang? + } public static void debug(String e) { @@ -231,4 +243,64 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String return false; } + /** + * Load the lang.yml file. + * @return The lang.yml config. + */ + public void loadLang() { + File lang = new File(getDataFolder(), "language.yml"); + if (!lang.exists()) { + try { + getDataFolder().mkdir(); + lang.createNewFile(); + InputStream defConfigStream = this.getResource("language.yml"); + if (defConfigStream != null) { + @SuppressWarnings("deprecation") + YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + defConfig.save(lang); + Lang.setFile(defConfig); + return; + } + } catch(IOException e) { + e.printStackTrace(); // So they notice + getLogger().severe("[PluginName] Couldn't create language file."); + getLogger().severe("[PluginName] This is a fatal error. Now disabling"); + Bukkit.getPluginManager().disablePlugin(this); + } + } + YamlConfiguration conf = YamlConfiguration.loadConfiguration(lang); + for(Lang item:Lang.values()) { + if (conf.getString(item.getPath()) == null) { + conf.set(item.getPath(), item.getDefault()); + } + } + Lang.setFile(conf); + AntiBot.LANG = conf; + AntiBot.LANG_FILE = lang; + try { + conf.save(getLangFile()); + } catch(IOException e) { + getLogger().log(Level.WARNING, "PluginName: Failed to save lang.yml."); + getLogger().log(Level.WARNING, "PluginName: Report this stack trace to ."); + e.printStackTrace(); + Bukkit.getPluginManager().disablePlugin(this); + } + } + + /** + * Gets the lang.yml config. + * @return The lang.yml config. + */ + public YamlConfiguration getLang() { + return LANG; + } + + /** + * Get the lang.yml file. + * @return The lang.yml file. + */ + public File getLangFile() { + return LANG_FILE; + } + } diff --git a/src/com/superspytx/ab/Metrics.java b/src/com/superspytx/ab/Metrics.java old mode 100644 new mode 100755 index d0d7b5b..0912de9 --- a/src/com/superspytx/ab/Metrics.java +++ b/src/com/superspytx/ab/Metrics.java @@ -321,7 +321,7 @@ private void postPlugin(final boolean isPing) throws IOException { data.append(encode("guid")).append('=').append(encode(guid)); encodeDataPair(data, "version", description.getVersion()); encodeDataPair(data, "server", Bukkit.getVersion()); - encodeDataPair(data, "players", Integer.toString(Bukkit.getServer().getOnlinePlayers().length)); + encodeDataPair(data, "players", Integer.toString(Bukkit.getServer().getOnlinePlayers().size())); encodeDataPair(data, "revision", String.valueOf(REVISION)); // If we're pinging, append it diff --git a/src/com/superspytx/ab/Updates.java b/src/com/superspytx/ab/Updates.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/abs/CommandEvent.java b/src/com/superspytx/ab/abs/CommandEvent.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/abs/EventAction.java b/src/com/superspytx/ab/abs/EventAction.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/abs/Handler.java b/src/com/superspytx/ab/abs/Handler.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/abs/PI.java b/src/com/superspytx/ab/abs/PI.java old mode 100644 new mode 100755 index 43a0bfb..7548be1 --- a/src/com/superspytx/ab/abs/PI.java +++ b/src/com/superspytx/ab/abs/PI.java @@ -2,8 +2,10 @@ import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; + import org.bukkit.Bukkit; import org.bukkit.entity.Player; + import com.superspytx.ab.handlers.Handlers; public class PI { @@ -40,18 +42,21 @@ public PI(Player pl) { this.pl = pl; } + @SuppressWarnings("deprecation") public PI(String pl) { this.b_connectfor = System.currentTimeMillis(); this.p_name = pl; this.pl = Bukkit.getPlayerExact(pl); } + @SuppressWarnings("deprecation") public boolean updateOnlineStatus() { pl = Bukkit.getPlayerExact(p_name); if (pl != null) this.clean(); return (pl != null); } + @SuppressWarnings("deprecation") public void updateStatus() { if (pl == null) pl = Bukkit.getPlayerExact(p_name); } diff --git a/src/com/superspytx/ab/abs/Puzzle.java b/src/com/superspytx/ab/abs/Puzzle.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/api/AntiBotAPI.java b/src/com/superspytx/ab/api/AntiBotAPI.java old mode 100644 new mode 100755 index 8fcb331..08b1342 --- a/src/com/superspytx/ab/api/AntiBotAPI.java +++ b/src/com/superspytx/ab/api/AntiBotAPI.java @@ -2,10 +2,11 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; + import com.superspytx.ab.AB; import com.superspytx.ab.abs.PI; import com.superspytx.ab.handlers.Handlers; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.tils.CaptchaTils; import com.superspytx.ab.workflow.GD; @@ -164,7 +165,7 @@ public static void autoSolvePuzzle(Player player) throws AntiBotAPIException { pli.cp_haspuzzle = false; Bukkit.broadcastMessage("<" + pli.pl.getDisplayName() + "> " + pli.cs_lsm); pli.resetSpamData(); - pli.pl.sendMessage(Language.prefix + '\247' + "a" + "Correct! Thanks for not being a bot. You can now speak again."); + pli.pl.sendMessage(Lang.PREFIX.toString() + '\247' + "a" + "Correct! Thanks for not being a bot. You can now speak again."); } /** diff --git a/src/com/superspytx/ab/api/AntiBotAPIException.java b/src/com/superspytx/ab/api/AntiBotAPIException.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/callunits/CallUnit.java b/src/com/superspytx/ab/callunits/CallUnit.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/callunits/ChatUnit.java b/src/com/superspytx/ab/callunits/ChatUnit.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/callunits/GarbageUnit.java b/src/com/superspytx/ab/callunits/GarbageUnit.java old mode 100644 new mode 100755 index 7ed395d..2463ec6 --- a/src/com/superspytx/ab/callunits/GarbageUnit.java +++ b/src/com/superspytx/ab/callunits/GarbageUnit.java @@ -3,14 +3,15 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerQuitEvent; -import com.superspytx.ab.settings.Language; + +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.workflow.GD; public class GarbageUnit extends CallUnit { @EventHandler public void kick(PlayerKickEvent e) { - if (e.getReason().equalsIgnoreCase(Language.kickMsg)) e.setLeaveMessage(null); + if (e.getReason().equalsIgnoreCase(Lang.KICKMSG.toString())) e.setLeaveMessage(null); GD.unregisterPI(e.getPlayer()); } diff --git a/src/com/superspytx/ab/callunits/LoginUnit.java b/src/com/superspytx/ab/callunits/LoginUnit.java old mode 100644 new mode 100755 index 5f3dc51..e993bd7 --- a/src/com/superspytx/ab/callunits/LoginUnit.java +++ b/src/com/superspytx/ab/callunits/LoginUnit.java @@ -2,11 +2,12 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerLoginEvent; + import com.superspytx.ab.AB; import com.superspytx.ab.handlers.Handlers; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.settings.Permissions; import com.superspytx.ab.settings.Settings; import com.superspytx.ab.workflow.Agent; @@ -22,14 +23,14 @@ public void join(PlayerJoinEvent e) { /* Admin Notify */ if (Permissions.ADMIN_NOTIFY.getPermission(e.getPlayer())) { if (Settings.delayingStart) { - e.getPlayer().sendMessage(Language.prefix + Language.adminDSNotify); + e.getPlayer().sendMessage(Lang.PREFIX.toString() + Lang.ADMINDSNOTIFY.toString()); } if (Settings.newVersion) { if (!AB.isDevelopment()) { - e.getPlayer().sendMessage(Language.prefix + Language.adminNVNotify.replace("&nv&", Settings.version).replace("&ov&", AB.getVersion())); + e.getPlayer().sendMessage(Lang.PREFIX.toString() + Lang.ADMINNVNOTIFY.toString().replace("%nv", Settings.version).replace("%yv", AB.getVersion())); } else { - e.getPlayer().sendMessage(Language.prefix + Language.adminNBNotify.replace("&nv&", Settings.version).replace("&ov&", Integer.toString(AB.getBuildNumber()))); + e.getPlayer().sendMessage(Lang.PREFIX.toString() + Lang.ADMINNBNOTIFY.toString().replace("%nb", Settings.version).replace("%yb", Integer.toString(AB.getBuildNumber()))); } } } @@ -37,12 +38,15 @@ public void join(PlayerJoinEvent e) { @EventHandler public void country(PlayerLoginEvent e) { - if (Agent.dispatchUnit(e, Handlers.COUNTRYBANS, false)) e.disallow(PlayerLoginEvent.Result.KICK_OTHER, Language.countryBanMsg); + if (Agent.dispatchUnit(e, Handlers.COUNTRYBANS, false)) e.disallow(PlayerLoginEvent.Result.KICK_OTHER, Lang.COUNTRYBAN.toString()); } + // @todo + // I'm not sure where you get the time from, but you need to get it here and replace the "10" I put in + // with the actual variable. @EventHandler(priority = EventPriority.LOW) public void logindelay(PlayerLoginEvent e) { - if (Agent.dispatchUnit(e, Handlers.LOGINDELAY, false)) e.disallow(PlayerLoginEvent.Result.KICK_OTHER, Language.loginDelayMsg); + if (Agent.dispatchUnit(e, Handlers.LOGINDELAY, false)) e.disallow(PlayerLoginEvent.Result.KICK_OTHER, Lang.LOGINDELAY.toString().replace("%s", "10")); } } diff --git a/src/com/superspytx/ab/handlers/Handlers.java b/src/com/superspytx/ab/handlers/Handlers.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/handlers/chat/CaptchaHandler.java b/src/com/superspytx/ab/handlers/chat/CaptchaHandler.java old mode 100644 new mode 100755 index d1cd6c6..d8af27c --- a/src/com/superspytx/ab/handlers/chat/CaptchaHandler.java +++ b/src/com/superspytx/ab/handlers/chat/CaptchaHandler.java @@ -3,7 +3,7 @@ import com.superspytx.ab.abs.EventAction; import com.superspytx.ab.abs.Handler; import com.superspytx.ab.abs.PI; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.settings.Settings; import com.superspytx.ab.tils.Tils; import com.superspytx.ab.workflow.GD; @@ -20,14 +20,14 @@ public boolean run(EventAction info) { else { pli.cp_idle = System.currentTimeMillis(); if (!pli.cp_puzzle.checkAnswer(info.message)) { - String wrong = pli.cp_puzzle.getAttempts() == 1 ? Language.captoneLeft : pli.cp_puzzle.getAttempts() + " " + Language.captattemptsLeft; - info.player.sendMessage(Language.prefix + '\247' + "c" + "Incorrect CAPTCHA! You have " + wrong); + String wrong = pli.cp_puzzle.getAttempts() == 1 ? Lang.CAPONELEFT.toString() : Lang.CAPATTEMPTSLEFT.toString().replace("%a", String.valueOf(pli.cp_puzzle.getAttempts())); + info.player.sendMessage(Lang.PREFIX.toString() + Lang.CAPWRONG.toString().replace("%w", wrong.toString())); } else { pli.cp_haspuzzle = false; pli.cp_solvedpuzzle = true; pli.resetSpamData(); info.player.chat(pli.cs_lsm); - info.player.sendMessage(Language.prefix + '\247' + "a" + "Correct! Thanks for not being a bot. You can now speak again."); + info.player.sendMessage(Lang.PREFIX.toString() + Lang.CAPRIGHT.toString()); } } } @@ -36,7 +36,7 @@ public boolean run(EventAction info) { @Override public void performActions(EventAction info) { - Tils.kickPlayer(info.player, Language.captchaKick); + Tils.kickPlayer(info.player, Lang.CAPTCHAKICK.toString()); } } diff --git a/src/com/superspytx/ab/handlers/chat/ChatFlowHandler.java b/src/com/superspytx/ab/handlers/chat/ChatFlowHandler.java old mode 100644 new mode 100755 index c6c70e8..7c6317f --- a/src/com/superspytx/ab/handlers/chat/ChatFlowHandler.java +++ b/src/com/superspytx/ab/handlers/chat/ChatFlowHandler.java @@ -2,12 +2,13 @@ import org.bukkit.Bukkit; import org.bukkit.ChatColor; + import com.superspytx.ab.AB; import com.superspytx.ab.AntiBot; import com.superspytx.ab.abs.EventAction; import com.superspytx.ab.abs.Handler; import com.superspytx.ab.abs.PI; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.settings.Settings; import com.superspytx.ab.tils.CaptchaTils; import com.superspytx.ab.tils.Tils; @@ -72,7 +73,7 @@ public void performActions(EventAction info) { @Override public void run() { - Bukkit.broadcastMessage(Language.prefix + ChatColor.RED + Language.overflowedMessage.replace("%sec%", Long.toString(GD.cf_ttmf))); + Bukkit.broadcastMessage(Lang.PREFIX.toString() + ChatColor.RED + Lang.OVERFLOWED.toString().replace("%s", Long.toString(GD.cf_ttmf))); } }, 20L); @@ -86,7 +87,7 @@ public void run() { GD.cf_lp = ""; GD.cf_lmt = 0L; GD.cf_ttmf += 5L; - Bukkit.broadcastMessage(Language.prefix + ChatColor.GREEN + "Chat has been unmuted!"); + Bukkit.broadcastMessage(Lang.PREFIX.toString() + Lang.CHATUNMUTED.toString()); } }, 20L * GD.cf_ttmf); diff --git a/src/com/superspytx/ab/handlers/chat/ChatSpamHandler.java b/src/com/superspytx/ab/handlers/chat/ChatSpamHandler.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/handlers/chat/CommandHandler.java b/src/com/superspytx/ab/handlers/chat/CommandHandler.java old mode 100644 new mode 100755 index dbadfb9..163a996 --- a/src/com/superspytx/ab/handlers/chat/CommandHandler.java +++ b/src/com/superspytx/ab/handlers/chat/CommandHandler.java @@ -3,14 +3,16 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; + import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; + import com.superspytx.ab.AB; import com.superspytx.ab.abs.EventAction; import com.superspytx.ab.abs.Handler; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.settings.Permissions; import com.superspytx.ab.settings.Settings; import com.superspytx.ab.tils.Tils; @@ -44,34 +46,34 @@ public boolean run(EventAction info) { } if (args[0].compareToIgnoreCase("help") == 0) { - sender.sendMessage(Language.prefix + "AntiBot Help:"); - sender.sendMessage(Language.prefix + ""); - sender.sendMessage(Language.prefix + "/antibot help - Help Menu"); + sender.sendMessage(Lang.PREFIX.toString() + "AntiBot Help:"); + sender.sendMessage(Lang.PREFIX.toString() + ""); + sender.sendMessage(Lang.PREFIX.toString() + "/antibot help - Help Menu"); if (Permissions.ADMIN_RELOAD.getPermission(player)) { - sender.sendMessage(Language.prefix + "/antibot reload - Reload configuration"); + sender.sendMessage(Lang.PREFIX.toString() + "/antibot reload - Reload configuration"); } if (Permissions.ADMIN_INFO.getPermission(player)) { - sender.sendMessage(Language.prefix + "/antibot info - Check current status of AntiBot."); + sender.sendMessage(Lang.PREFIX.toString() + "/antibot info - Check current status of AntiBot."); } if (Permissions.ADMIN_CHATMUTE.getPermission(player)) { - sender.sendMessage(Language.prefix + "/antibot chatmute - Toggle chat flow's global chat mute."); + sender.sendMessage(Lang.PREFIX.toString() + "/antibot chatmute - Toggle chat flow's global chat mute."); } if (Permissions.ADMIN_FLUSH.getPermission(player)) { - sender.sendMessage(Language.prefix + "/antibot flush - Flushes all the data."); + sender.sendMessage(Lang.PREFIX.toString() + "/antibot flush - Flushes all the data."); } if (Permissions.ADMIN_TOGGLE.getPermission(player)) { - sender.sendMessage(Language.prefix + "/antibot off - Turn off AntiBot."); - sender.sendMessage(Language.prefix + "/antibot on - Turn on AntiBot."); + sender.sendMessage(Lang.PREFIX.toString() + "/antibot off - Turn off AntiBot."); + sender.sendMessage(Lang.PREFIX.toString() + "/antibot on - Turn on AntiBot."); } - sender.sendMessage(Language.prefix + "/antibot version - Check this version of AntiBot."); + sender.sendMessage(Lang.PREFIX.toString() + "/antibot version - Check this version of AntiBot."); return true; } if (args[0].compareToIgnoreCase("reload") == 0) { if (Permissions.ADMIN_RELOAD.getPermission(player, sender)) { if (AB.getSettingsCore().loadSettings()) { - sender.sendMessage(Language.prefix + ChatColor.GREEN + "Reloaded configuration successfully!"); + sender.sendMessage(Lang.PREFIX.toString() + ChatColor.GREEN + "Reloaded configuration successfully!"); } else { - sender.sendMessage(Language.prefix + ChatColor.RED + "Configuration failed to reload."); + sender.sendMessage(Lang.PREFIX.toString() + ChatColor.RED + "Configuration failed to reload."); } } return true; @@ -86,8 +88,8 @@ public boolean run(EventAction info) { GD.cf_gm = b; if (Settings.notify && Settings.enabled) { - if (b) AB.getInstance().getServer().broadcastMessage(Language.prefix + ChatColor.DARK_AQUA + Language.overflowedMessage.replace("%sec%", "infinity, and beyond")); - if (!b) AB.getInstance().getServer().broadcastMessage(Language.prefix + ChatColor.GREEN + "Chat has been unmuted by " + sender.getName() + "!"); + if (b) AB.getInstance().getServer().broadcastMessage(Lang.PREFIX.toString() + ChatColor.DARK_AQUA + Lang.OVERFLOWED.toString().replace("%s", "infinity, and beyond")); + if (!b) AB.getInstance().getServer().broadcastMessage(Lang.PREFIX.toString() + ChatColor.GREEN + "Chat has been unmuted by " + sender.getName() + "!"); GD.cf_cts = 0; } @@ -99,10 +101,10 @@ public boolean run(EventAction info) { if (args[0].compareToIgnoreCase("on") == 0) { if (Permissions.ADMIN_TOGGLE.getPermission(player, sender)) { if (Settings.enabled) { - sender.sendMessage(Language.prefix + "The system is already enabled!"); + sender.sendMessage(Lang.PREFIX.toString() + "The system is already enabled!"); } else { Settings.enabled = true; - sender.sendMessage(Language.prefix + ChatColor.GREEN + "System has been enabled!"); + sender.sendMessage(Lang.PREFIX.toString() + ChatColor.GREEN + "System has been enabled!"); } } @@ -113,25 +115,25 @@ public boolean run(EventAction info) { if (args[0].compareToIgnoreCase("off") == 0) { if (Permissions.ADMIN_TOGGLE.getPermission(player, sender)) { if (!Settings.enabled) { - sender.sendMessage(Language.prefix + "The system is already disabled!"); + sender.sendMessage(Lang.PREFIX.toString() + "The system is already disabled!"); } else { Settings.enabled = false; - sender.sendMessage(Language.prefix + ChatColor.RED + "System has been disabled!"); + sender.sendMessage(Lang.PREFIX.toString() + ChatColor.RED + "System has been disabled!"); } - if (GD.cf_gm) sender.sendMessage(Language.prefix + ChatColor.DARK_RED + "ERROR: You have left the server chat muted! Nobody is able to talk."); + if (GD.cf_gm) sender.sendMessage(Lang.PREFIX.toString() + ChatColor.DARK_RED + "ERROR: You have left the server chat muted! Nobody is able to talk."); } return true; // Reload here. } if (args[0].compareToIgnoreCase("info") == 0) { if (Permissions.ADMIN_INFO.getPermission(player, sender)) { - sender.sendMessage(Language.prefix + "AntiBot System Info:"); - sender.sendMessage(Language.prefix + ""); - sender.sendMessage(Language.prefix + "Secs between last login: " + Tils.getLongDiff(GD.b_lc)); - sender.sendMessage(Language.prefix + "Current Intervals: " + Settings.interval); - sender.sendMessage(Language.prefix + "Logged in: " + GD.b_cp.size()); - sender.sendMessage(Language.prefix + "# of Accounts: " + Settings.accounts); + sender.sendMessage(Lang.PREFIX.toString() + "AntiBot System Info:"); + sender.sendMessage(Lang.PREFIX.toString() + ""); + sender.sendMessage(Lang.PREFIX.toString() + "Secs between last login: " + Tils.getLongDiff(GD.b_lc)); + sender.sendMessage(Lang.PREFIX.toString() + "Current Intervals: " + Settings.interval); + sender.sendMessage(Lang.PREFIX.toString() + "Logged in: " + GD.b_cp.size()); + sender.sendMessage(Lang.PREFIX.toString() + "# of Accounts: " + Settings.accounts); } return true; } @@ -139,7 +141,7 @@ public boolean run(EventAction info) { if (args[0].compareToIgnoreCase("flush") == 0) { if (Permissions.ADMIN_FLUSH.getPermission(player, sender)) { AB.reload(); - sender.sendMessage(Language.prefix + ChatColor.GREEN + "Flushed data successfully!"); + sender.sendMessage(Lang.PREFIX.toString() + ChatColor.GREEN + "Flushed data successfully!"); } return true; } @@ -148,7 +150,7 @@ public boolean run(EventAction info) { returnMotd(sender); return true; } - sender.sendMessage(Language.prefix + ChatColor.RED + "Unknown system command."); + sender.sendMessage(Lang.PREFIX.toString() + ChatColor.RED + "Unknown system command."); return false; } @@ -172,10 +174,12 @@ public String returnStatus() { public void returnMotd(CommandSender sender) { Date localdate = new Date(Settings.installdate); SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy"); - sender.sendMessage(Language.prefix + "AntiBot " + AB.getVersion() + " - By .SuPaH sPii"); - sender.sendMessage(Language.prefix + "Inspired by Wolflink289 <3"); - sender.sendMessage(Language.prefix + "Continued inspiration by Evenprime & Fafaffy <3"); - sender.sendMessage(Language.prefix + "Recontinuted interest by H31IX & horde of users affected by Chat Spam in #anticheat"); + sender.sendMessage(Lang.PREFIX.toString() + "AntiBot " + AB.getVersion() + " - By .SuPaH sPii"); + sender.sendMessage(Lang.PREFIX.toString() + "Inspired by Wolflink289 <3"); + sender.sendMessage(Lang.PREFIX.toString() + "Continued inspiration by Evenprime & Fafaffy <3"); + sender.sendMessage(Lang.PREFIX.toString() + "Recontinuted interest by H31IX & horde of users affected by Chat Spam in #anticheat"); + // No Narcissism but... :3 + sender.sendMessage(Lang.PREFIX.toString() + "Language file implementation and 1.8.3 update by AniSkywalker (20zinnm) <3"); // return status if player has admin permissions. Player player = null; @@ -185,75 +189,75 @@ public void returnMotd(CommandSender sender) { // console! } if (Permissions.ADMIN_NOTIFY.getPermission(player)) { - sender.sendMessage(Language.prefix + "System Status: " + returnStatus()); + sender.sendMessage(Lang.PREFIX.toString() + "System Status: " + returnStatus()); } Random random = new Random(); switch (random.nextInt(20)) { case 0: - sender.sendMessage(Language.prefix + "System Installed on " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "System Installed on " + ChatColor.GREEN + sdf.format(localdate)); break; case 1: - sender.sendMessage(Language.prefix + "Keeping PWN4G3 & Paradigm out of the game since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Keeping PWN4G3 & Paradigm out of the game since " + ChatColor.GREEN + sdf.format(localdate)); break; case 2: - sender.sendMessage(Language.prefix + "Combatting spam since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Combatting spam since " + ChatColor.GREEN + sdf.format(localdate)); break; case 3: - sender.sendMessage(Language.prefix + "Supporting PWN4G3 & Paradigm Bots since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Supporting PWN4G3 & Paradigm Bots since " + ChatColor.GREEN + sdf.format(localdate)); break; case 4: - sender.sendMessage(Language.prefix + "Running PWN4G3 & Paradigm Bots to the void since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Running PWN4G3 & Paradigm Bots to the void since " + ChatColor.GREEN + sdf.format(localdate)); break; case 5: - sender.sendMessage(Language.prefix + "Making people mad since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Making people mad since " + ChatColor.GREEN + sdf.format(localdate)); break; case 6: - sender.sendMessage(Language.prefix + "Trolling spammers since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Trolling spammers since " + ChatColor.GREEN + sdf.format(localdate)); break; case 7: - sender.sendMessage(Language.prefix + "Supporting Wolflink289's idea since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Supporting Wolflink289's idea since " + ChatColor.GREEN + sdf.format(localdate)); break; case 8: - sender.sendMessage(Language.prefix + "Protecting this server since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Protecting this server since " + ChatColor.GREEN + sdf.format(localdate)); break; case 9: - sender.sendMessage(Language.prefix + "All lights turned green since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "All lights turned green since " + ChatColor.GREEN + sdf.format(localdate)); break; case 10: - sender.sendMessage(Language.prefix + "Corrupting ability to spam since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Corrupting ability to spam since " + ChatColor.GREEN + sdf.format(localdate)); break; case 11: - sender.sendMessage(Language.prefix + "Minecraft PWN4G3 & Paradigm dun goof'd on " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Minecraft PWN4G3 & Paradigm dun goof'd on " + ChatColor.GREEN + sdf.format(localdate)); break; case 12: - sender.sendMessage(Language.prefix + "Making .SuPaH sPii proud since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Making .SuPaH sPii proud since " + ChatColor.GREEN + sdf.format(localdate)); break; case 13: - sender.sendMessage(Language.prefix + "Injected the Vaccine on " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Injected the Vaccine on " + ChatColor.GREEN + sdf.format(localdate)); break; case 14: - sender.sendMessage(Language.prefix + "Giving AIDS to spammers since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Giving AIDS to spammers since " + ChatColor.GREEN + sdf.format(localdate)); break; case 15: - sender.sendMessage(Language.prefix + "Turning spammer users to WTF faces since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Turning spammer users to WTF faces since " + ChatColor.GREEN + sdf.format(localdate)); break; case 16: - sender.sendMessage(Language.prefix + "Chinese secret happened on " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Chinese secret happened on " + ChatColor.GREEN + sdf.format(localdate)); break; case 17: - sender.sendMessage(Language.prefix + "Been in Slim Shady's world since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Been in Slim Shady's world since " + ChatColor.GREEN + sdf.format(localdate)); break; case 18: - sender.sendMessage(Language.prefix + "Making other communities jelly since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Making other communities jelly since " + ChatColor.GREEN + sdf.format(localdate)); break; case 19: - sender.sendMessage(Language.prefix + "Didn't have to buy anything since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Didn't have to buy anything since " + ChatColor.GREEN + sdf.format(localdate)); break; case 20: - sender.sendMessage(Language.prefix + "Making Jogn shit his pants since " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "Making Jogn shit his pants since " + ChatColor.GREEN + sdf.format(localdate)); break; default: - sender.sendMessage(Language.prefix + "System Installed on " + ChatColor.GREEN + sdf.format(localdate)); + sender.sendMessage(Lang.PREFIX.toString() + "System Installed on " + ChatColor.GREEN + sdf.format(localdate)); break; } } diff --git a/src/com/superspytx/ab/handlers/login/BotHandler.java b/src/com/superspytx/ab/handlers/login/BotHandler.java old mode 100644 new mode 100755 index c702bb8..223e150 --- a/src/com/superspytx/ab/handlers/login/BotHandler.java +++ b/src/com/superspytx/ab/handlers/login/BotHandler.java @@ -2,7 +2,9 @@ import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; + import org.bukkit.Bukkit; + import com.superspytx.ab.AB; import com.superspytx.ab.abs.EventAction; import com.superspytx.ab.abs.Handler; @@ -49,6 +51,7 @@ public boolean run(EventAction info) { return false; } + @SuppressWarnings("deprecation") @Override public void performActions(EventAction info) { if (GD.b_kicking) { diff --git a/src/com/superspytx/ab/handlers/login/CountryHandler.java b/src/com/superspytx/ab/handlers/login/CountryHandler.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/handlers/login/LoginDelayHandler.java b/src/com/superspytx/ab/handlers/login/LoginDelayHandler.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/settings/Lang.java b/src/com/superspytx/ab/settings/Lang.java new file mode 100644 index 0000000..0e5eaa0 --- /dev/null +++ b/src/com/superspytx/ab/settings/Lang.java @@ -0,0 +1,71 @@ +package com.superspytx.ab.settings; + +import org.bukkit.ChatColor; +import org.bukkit.configuration.file.YamlConfiguration; + +/** +* An enum for requesting strings from the language file. +* @author gomeow +*/ +public enum Lang { + PREFIX("prefix", "&f[&bAntiBot&f] "), + KICKMSG("kick-msg", "&cTripwired protection!"), + ADMINDSNOTIFY("admin-delayedstart-notify", "&cAntiBot is currently under delayed start. Chat Spam is not protected yet."), + ADMINNVNOTIFY("admin-newversion-notify", "&cAntiBot has a new version available! New version: %nv, your version: %yv"), + ADMINNBNOTIFY("admin-newdevbuild-notify", "&cAntiBot has a new development build available! New build: %nb, your build: %yb"), + COUNTRYBAN("country-ban", "&cYour country is banned from this server!"), + OVERFLOWED("overflowed-message", "&cSILENCE! Let's cool it down for %s seconds."), + CAPTCHAKICK("captcha-kick", "&cCAPTCHA Failed!"), + CAPONELEFT("captcha-one-left", "&cOne attempt left!"), + CAPATTEMPTSLEFT("captcha-attempts-left", "You have %a attempts left!"), + LOGINDELAY("login-delay", "You logged in too quickly! Please wait %s second(s)."), + CAPWRONG("captcha-wrong", "&cIncorrect captcha! You have %w wrong."), + CAPRIGHT("captcha-correct", "&aCorrect! Thanks for not being a bot. You can now speak again."), + CHATUNMUTED("chat-unmuted", "&aChat has been unmuted."), + NO_PERMS("no-permissions", "&cYou don't have permission for that!"); + + private String path; + private String def; + private static YamlConfiguration LANG; + + /** + * Lang enum constructor. + * @param path The string path. + * @param start The default string. + */ + Lang(String path, String start) { + this.path = path; + this.def = start; + } + + /** + * Set the {@code YamlConfiguration} to use. + * @param config The config to set. + */ + public static void setFile(YamlConfiguration config) { + LANG = config; + } + + @Override + public String toString() { + if (this == PREFIX) + return ChatColor.translateAlternateColorCodes('&', LANG.getString(this.path, def)) + " "; + return ChatColor.translateAlternateColorCodes('&', LANG.getString(this.path, def)); + } + + /** + * Get the default value of the path. + * @return The default value of the path. + */ + public String getDefault() { + return this.def; + } + + /** + * Get the path to the string. + * @return The path to the string. + */ + public String getPath() { + return this.path; + } +} \ No newline at end of file diff --git a/src/com/superspytx/ab/settings/Language.java b/src/com/superspytx/ab/settings/Language.java deleted file mode 100644 index 6b1e648..0000000 --- a/src/com/superspytx/ab/settings/Language.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.superspytx.ab.settings; - -public class Language { - /* This is incomplete. Infact, it's still needs to be done. - * I'm leaving this the way it is for now until I get around to it. - * If you would like to complete this for me, you can make a PR. - * Thanks if you decide to. - */ - - public static String prefix = "\247f[\247bAntiBot\247f] "; - public static String kickMsg = "[AntiBot] Tripwired protection!"; - - /* Admin Notifications */ - public static String adminDSNotify = "\247cAntiBot is currently under delayed start. Chat Spam is not protected yet."; - public static String adminNVNotify = "\247aAntiBot has a new version available! New version: &nv& Your version: &ov&"; - public static String adminNBNotify = "\247aAntiBot has a new development build available! New build #&nv& Your build #&ov&"; - - /* Country Ban */ - public static String countryBanMsg = "Your country is banned from this server!"; - - /* Chat Flow */ - public static String overflowedMessage = "SILENCE! Let's cool it down for %sec% seconds."; - - /* CAPTCHA */ - public static String captchaKick = "[AntiBot] CAPTCHA Failed!"; - public static String captoneLeft = "one attempt left"; - public static String captattemptsLeft = "attempts left"; - - /* Login Delay */ - public static String loginDelayMsg = "You logged in too quickly! Please wait 10 second(s)."; -} diff --git a/src/com/superspytx/ab/settings/Permissions.java b/src/com/superspytx/ab/settings/Permissions.java old mode 100644 new mode 100755 index 3563cf5..e45c723 --- a/src/com/superspytx/ab/settings/Permissions.java +++ b/src/com/superspytx/ab/settings/Permissions.java @@ -47,7 +47,7 @@ public boolean getPermission(Player pl, CommandSender sender) { if (!this.getPermission(pl)) { - sender.sendMessage(Language.prefix + "\247cSorry, you don't have privileges."); + sender.sendMessage(Lang.PREFIX.toString() + Lang.NO_PERMS.toString()); return false; } else diff --git a/src/com/superspytx/ab/settings/Settings.java b/src/com/superspytx/ab/settings/Settings.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/settings/SettingsCore.java b/src/com/superspytx/ab/settings/SettingsCore.java old mode 100644 new mode 100755 index e26159f..9cd0cab --- a/src/com/superspytx/ab/settings/SettingsCore.java +++ b/src/com/superspytx/ab/settings/SettingsCore.java @@ -20,7 +20,7 @@ public class SettingsCore { public void loadDefaults() { /* Main Configuration */ - config.put("AntiBot.Main.Prefix", Language.prefix); + // Lang file is separate for easy swapping. config.put("AntiBot.Main.EnableByDefault", Settings.enabled); config.put("AntiBot.Main.Notifications", Settings.notify); config.put("AntiBot.DelayedStart.Enabled", Settings.delayedStart); @@ -55,16 +55,6 @@ public void loadDefaults() { config.put("AntiBot.TouchTheseAnd.AWildTnTWillAppearInYourCode.AndItWillSuck.ABVersion", AB.getVersion()); /* Language Configuration */ - langs.put("AntiBot.Messages.Kick", Language.kickMsg); - langs.put("AntiBot.Messages.Captcha.Kick", Language.captchaKick); - langs.put("AntiBot.Messages.Captcha.OneAttemptLeft", Language.captoneLeft); - langs.put("AntiBot.Messages.Captcha.AttemptsLeft", Language.captattemptsLeft); - langs.put("AntiBot.Messages.ChatOverflow", Language.overflowedMessage); - langs.put("AntiBot.Messages.CountryBan", Language.countryBanMsg); - langs.put("AntiBot.Messages.LoginDelay", Language.loginDelayMsg); - langs.put("AntiBot.Messages.Admins.DSNotify", Language.adminDSNotify); - langs.put("AntiBot.Messages.Admins.NVNotify", Language.adminNVNotify); - langs.put("AntiBot.Messages.Admins.NBNotify", Language.adminNBNotify); AB.getInstance().getConfig().addDefaults(config); FileConfiguration lang = YamlConfiguration.loadConfiguration(new File(AB.getInstance().getDataFolder(), "language.yml")); @@ -86,16 +76,12 @@ public boolean loadSettings() { AB.getInstance().reloadConfig(); - FileConfiguration lang = YamlConfiguration.loadConfiguration(new File(AB.getInstance().getDataFolder(), "language.yml")); - try { for (Entry oh : config.entrySet()) { String conf = oh.getKey().replace("AntiBot.", ""); Object duh = AB.getInstance().getConfig().get(oh.getKey()); - if (conf.equalsIgnoreCase("Main.prefix")) { - Language.prefix = (String) duh; - } else if (conf.equalsIgnoreCase("Main.EnableByDefault") && !Settings.delayingStart) { + if (conf.equalsIgnoreCase("Main.EnableByDefault") && !Settings.delayingStart) { Settings.enabled = (Boolean) duh; } else if (conf.equalsIgnoreCase("Main.Notifications")) { Settings.notify = (Boolean) duh; @@ -183,9 +169,9 @@ public void run() { if (AB.getInstance().getServer().getPluginManager().getPlugin("AntiCheat") != null) { try { if (Settings.enableAntiSpam) { - net.h31ix.anticheat.api.AnticheatAPI.deactivateCheck(net.h31ix.anticheat.manage.CheckType.SPAM); + net.gravitydevelopment.anticheat.api.AntiCheatAPI.deactivateCheck(net.gravitydevelopment.anticheat.check.CheckType.CHAT_SPAM); } else { - net.h31ix.anticheat.api.AnticheatAPI.activateCheck(net.h31ix.anticheat.manage.CheckType.SPAM); + net.gravitydevelopment.anticheat.api.AntiCheatAPI.activateCheck(net.gravitydevelopment.anticheat.check.CheckType.CHAT_SPAM); } } catch (Throwable e) { // Sounds like a different plugin. @@ -201,38 +187,7 @@ public void run() { AB.getInstance().saveConfig(); } - // load messages - try { - for (Entry oh : langs.entrySet()) { - String conf = oh.getKey().replace("AntiBot.", ""); - String duh = lang.getString(oh.getKey()); - - if (conf.equalsIgnoreCase("Messages.Kick")) { - Language.kickMsg = duh; - } else if (conf.equalsIgnoreCase("Messages.Captcha.Kick")) { - Language.captchaKick = duh; - } else if (conf.equalsIgnoreCase("Messages.Captcha.OneAttemptLeft")) { - Language.captoneLeft = duh; - } else if (conf.equalsIgnoreCase("Messages.Captcha.AttemptsLeft")) { - Language.captattemptsLeft = duh; - } else if (conf.equalsIgnoreCase("Messages.ChatOverflow")) { - Language.overflowedMessage = duh; - } else if (conf.equalsIgnoreCase("Messages.CountryBan")) { - Language.countryBanMsg = duh; - } else if (conf.equalsIgnoreCase("Messages.LoginDelay")) { - Language.loginDelayMsg = duh; - } else if (conf.equalsIgnoreCase("Messages.Admins.DSNotify")) { - Language.adminDSNotify = duh; - } else if (conf.equalsIgnoreCase("Messages.Admins.NVNotify")) { - Language.adminNVNotify = duh; - } else if (conf.equalsIgnoreCase("Messages.Admins.NBNotify")) { - Language.adminNBNotify = duh; - } - - } - } catch (Exception e) { - // fail. - } + // No need to load messages in configuration. It's done separately. AB.log("Configuration Loaded Successfully!"); reloads++; diff --git a/src/com/superspytx/ab/testing/APITester.java b/src/com/superspytx/ab/testing/APITester.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/testing/CAPTCHATesting.java b/src/com/superspytx/ab/testing/CAPTCHATesting.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/testing/UpdatesTester.java b/src/com/superspytx/ab/testing/UpdatesTester.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/tils/CaptchaTils.java b/src/com/superspytx/ab/tils/CaptchaTils.java old mode 100644 new mode 100755 index c4e3b15..a966640 --- a/src/com/superspytx/ab/tils/CaptchaTils.java +++ b/src/com/superspytx/ab/tils/CaptchaTils.java @@ -1,11 +1,13 @@ package com.superspytx.ab.tils; import java.util.Random; + import org.bukkit.entity.Player; + import com.superspytx.ab.AB; import com.superspytx.ab.abs.PI; import com.superspytx.ab.abs.Puzzle; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.settings.Permissions; import com.superspytx.ab.settings.Settings; import com.superspytx.ab.workflow.GD; @@ -123,7 +125,7 @@ public static void sendCaptchaToPlayer(Player pl) { GD.cp_caps++; if (p.cp_puzzle.isVersion2()) { - pl.sendMessage(Language.prefix + '\247' + "c" + "Please enter the numbers printed below into chat:"); + pl.sendMessage(Lang.PREFIX.toString() + '\247' + "c" + "Please enter the numbers printed below into chat:"); for (int i = 0; i < 5; i++) pl.sendMessage(p.cp_puzzle.getPuzzle()[i]); } @@ -145,7 +147,7 @@ public static void sendCaptchaToPlayerAPI(Player pl) { GD.cp_caps++; if (p.cp_puzzle.isVersion2()) { - pl.sendMessage(Language.prefix + '\247' + "c" + "Please enter the numbers printed below into chat:"); + pl.sendMessage(Lang.PREFIX.toString() + '\247' + "c" + "Please enter the numbers printed below into chat:"); for (int i = 0; i < 5; i++) pl.sendMessage(p.cp_puzzle.getPuzzle()[i]); } diff --git a/src/com/superspytx/ab/tils/GeoTils.java b/src/com/superspytx/ab/tils/GeoTils.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/tils/Tils.java b/src/com/superspytx/ab/tils/Tils.java old mode 100644 new mode 100755 index e23a0c4..c8e9d93 --- a/src/com/superspytx/ab/tils/Tils.java +++ b/src/com/superspytx/ab/tils/Tils.java @@ -2,9 +2,10 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; + import com.superspytx.ab.AB; import com.superspytx.ab.abs.PI; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; public class Tils { @@ -76,7 +77,7 @@ public void run() { } public static void kickPlayer(final Player e) { - kickPlayer(e, Language.kickMsg); + kickPlayer(e, Lang.KICKMSG.toString()); } } diff --git a/src/com/superspytx/ab/workflow/Agent.java b/src/com/superspytx/ab/workflow/Agent.java old mode 100644 new mode 100755 diff --git a/src/com/superspytx/ab/workflow/GD.java b/src/com/superspytx/ab/workflow/GD.java old mode 100644 new mode 100755 index 8ba4404..aafe60d --- a/src/com/superspytx/ab/workflow/GD.java +++ b/src/com/superspytx/ab/workflow/GD.java @@ -5,12 +5,13 @@ import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; + import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.entity.Player; + import com.superspytx.ab.abs.PI; import com.superspytx.ab.handlers.Handlers; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.settings.Settings; import com.superspytx.ab.tils.Tils; @@ -127,7 +128,7 @@ public static void reset() { b_kicking = false; b_lc = 0L; b_cp.clear(); - if (cf_gm) Bukkit.broadcastMessage(Language.prefix + ChatColor.GREEN + "Chat has been unmuted!"); + if (cf_gm) Bukkit.broadcastMessage(Lang.PREFIX.toString() + Lang.CHATUNMUTED.toString()); cf_gm = false; cf_cts = 0; cf_ttmf = 5L; diff --git a/src/main/resources/language.yml b/src/main/resources/language.yml new file mode 100644 index 0000000..5a7ba85 --- /dev/null +++ b/src/main/resources/language.yml @@ -0,0 +1,17 @@ +# Please check BukkitDev for what variables can be used where. +# Feel free to use color codes. +prefix: "&f[&bAntiBot&f] " +kick-msg: "&cTripwired protection!" +admin-delayedstart-notify: "&cAntiBot is currently under delayed start. Chat Spam is not protected yet." +admin-newversion-notify: "&cAntiBot has a new version available! New version: %nv, your version: %yv" +admin-newdevbuild-notify: "&cAntiBot has a new development build available! New build: %nb, your build: %yb" +country-ban: "&cYour country is banned from this server!" +overflowed-message: "&cSILENCE! Let's cool it down for %s seconds." +captcha-kick: "&cCAPTCHA Failed!" +captcha-one-left: "&cOne attempt left!" +captcha-attempts-left: "You have %a attempts left!" +login-delay: "You logged in too quickly! Please wait %s second(s)." +captcha-wrong: "&cIncorrect captcha! You have %w failed attempts." +captcha-correct: "&aCorrect! Thanks for not being a bot. You can now speak again." +chat-unmuted: "&aChat has been unmuted." +no-permissions: "&cYou don''t have permission for that!" \ No newline at end of file diff --git a/plugin.yml b/src/main/resources/plugin.yml similarity index 100% rename from plugin.yml rename to src/main/resources/plugin.yml diff --git a/src/me/freebuild/superspytx/ab/api/AntiBotAPI.java b/src/me/freebuild/superspytx/ab/api/AntiBotAPI.java old mode 100644 new mode 100755 index 6dcbdc0..b8e66d2 --- a/src/me/freebuild/superspytx/ab/api/AntiBotAPI.java +++ b/src/me/freebuild/superspytx/ab/api/AntiBotAPI.java @@ -2,11 +2,12 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; + import com.superspytx.ab.AB; import com.superspytx.ab.abs.PI; import com.superspytx.ab.api.AntiBotAPIException; import com.superspytx.ab.handlers.Handlers; -import com.superspytx.ab.settings.Language; +import com.superspytx.ab.settings.Lang; import com.superspytx.ab.tils.CaptchaTils; import com.superspytx.ab.workflow.GD; @@ -167,7 +168,7 @@ public static void autoSolvePuzzle(Player player) throws AntiBotAPIException { pli.cp_haspuzzle = false; Bukkit.broadcastMessage("<" + pli.pl.getDisplayName() + "> " + pli.cs_lsm); pli.resetSpamData(); - pli.pl.sendMessage(Language.prefix + '\247' + "a" + "Correct! Thanks for not being a bot. You can now speak again."); + pli.pl.sendMessage(Lang.PREFIX.toString() + Lang.CAPRIGHT.toString()); } /**