diff --git a/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/Check.java b/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/Check.java
index 0c61a5a..5e680ba 100644
--- a/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/Check.java
+++ b/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/Check.java
@@ -103,6 +103,7 @@ public class Check {
}
}
}
+
if (SelectConfig.playerWhithPermissionKick && SelectConfig.permCommandEnable) {
T2Ccmd.console(SelectConfig.kickCommand.replace("[player]", player.getName()).replace("[reason]", T2Creplace.replace(Util.getPrefix(), SelectMessages.Perm_kick)));
T2Csend.console(T2Creplace.replace(Util.getPrefix(), SelectMessages.Perm_consoleKick.replace("[player]",
@@ -120,6 +121,7 @@ public class Check {
for (String cmd : SelectConfig.permCommand) {
T2Ccmd.console(cmd.replace("[player]", player.getName()).replace("[perm]", s));
}
+
}
return true;
}
diff --git a/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/OPCommand.java b/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/OPCommand.java
index c61b31f..aad3047 100644
--- a/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/OPCommand.java
+++ b/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/OPCommand.java
@@ -40,7 +40,6 @@ public class OPCommand implements Listener {
@EventHandler
public void onOpPlayer(PlayerCommandPreprocessEvent event) {
-
if (SelectConfig.opWhitelistEnable) {
if ((event.getMessage().toLowerCase().startsWith("/op ") || event.getMessage().toLowerCase().startsWith("/minecraft:op "))) {
switch (this.isNotOPWTL(event.getMessage())) {
diff --git a/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/PlugManCommand.java b/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/PlugManCommand.java
index b2d78e9..07b78e4 100644
--- a/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/PlugManCommand.java
+++ b/OpSecurity V2/src/main/java/de/jatitv/opsecurity/listener/PlugManCommand.java
@@ -12,7 +12,6 @@ import org.bukkit.event.server.ServerCommandEvent;
public class PlugManCommand implements Listener {
-
@EventHandler
public void onOPServer(ServerCommandEvent event) {
if ((event.getCommand().toLowerCase().contains("plugman disable") && event.getCommand().toLowerCase().contains(Main.getPlugin().getDescription().getName().toLowerCase()))
diff --git a/OpSecurity V3/pom.xml b/OpSecurity V3/pom.xml
index ba22d2c..089e2ed 100644
--- a/OpSecurity V3/pom.xml
+++ b/OpSecurity V3/pom.xml
@@ -6,7 +6,7 @@
net.t2code
T2C-OPSecurity
- 1.0-SNAPSHOT
+ 3.0.0-SNAPSHOT-#1
jar
T2C-OPSecurity
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/Util.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/Util.java
index 9d2e743..5187171 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/Util.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/Util.java
@@ -1,31 +1,28 @@
package net.t2code.opsecurity;
+import lombok.Getter;
+
public class Util {
- public static String getInfoText() {
- return "";
- }
- public static String getRequiredT2CodeLibVersion() {
- return "13.0";
- }
+ @Getter
+ private static String infoText = "";
- public static String getPrefix() {
- return "§8[§T2C§8-§2OP§4Security§8]";
- }
+ @Getter
+ private static String requiredT2CodeLibVersion = "13.1";
- public static Integer getSpigotID() {
- return 90739;
- }
+ @Getter
+ private static String prefix = "§8[§4T2C§8-§2OP§4Security§8]";
- public static Integer getBstatsID() {
- return 10858;
- }
+ @Getter
+ private static Integer spigotID = 90739;
- public static String getSpigot() {
- return "https://www.spigotmc.org/resources/" + getSpigotID();
- }
+ @Getter
+ private static Integer bstatsID = 10858;
+
+ @Getter
+ private static String spigot = "https://www.spigotmc.org/resources/" + getSpigotID();
+
+ @Getter
+ private static String discord = "http://dc.t2code.net";
- public static String getDiscord() {
- return "http://dc.t2code.net";
- }
}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/OpCheck.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/OpCheck.java
new file mode 100644
index 0000000..f86d01f
--- /dev/null
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/OpCheck.java
@@ -0,0 +1,77 @@
+package net.t2code.opsecurity.check;
+
+import net.t2code.opsecurity.config.config.Config;
+import net.t2code.opsecurity.config.language.Language;
+import net.t2code.opsecurity.config.opWhitelist.OPWhitelist;
+import net.t2code.opsecurity.events.Events;
+import net.t2code.opsecurity.objects.PlayerCash;
+import net.t2code.opsecurity.objects.PlayerObject;
+import net.t2code.opsecurity.system.BungeeSenderReceiver;
+import net.t2code.opsecurity.system.Main;
+import net.t2code.t2codelib.SPIGOT.api.commands.T2Ccmd;
+import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+
+import java.util.Map;
+
+public class OpCheck {
+ public static Boolean onCheck(Player player, Boolean join) {
+ if (!OPWhitelist.enable.valueBoolean) return false;
+ if (!player.isOp()) return false;
+ if (opWhitelist(player)) return false;
+ if (join) T2Csend.console(Language.opWhitelistNotifyOnJoin.value.replace("[player]", player.getName()));
+
+ if (Config.notifyJoinWarning.valueBoolean&& join) {
+ if (Config.notifyBungee.valueBoolean ) {
+ BungeeSenderReceiver.sendToBungee(Language.opWhitelistNotifyOnJoin.value.replace("[player]", player.getName()));
+ } else Events.notifyPlayer(Language.opWhitelistNotifyOnJoin.value.replace("[player]", player.getName()));
+ }
+
+ if (OPWhitelist.noOpPlayerDeopEnable.valueBoolean) {
+ player.setOp(false);
+ if (OPWhitelist.noOpPlayerKickEnable.valueBoolean) {
+ if (!OPWhitelist.customCommandsEnable.valueBoolean) T2Ccmd.console(Config.kickCommand.path.replace("[player]", player.getName()).replace("[reason]",
+ OPWhitelist.noOpPlayerKickEnable.valueBoolean && OPWhitelist.noOpPlayerDeopEnable.valueBoolean && OPWhitelist.noOpPlayerDeopPlayerSendMessage.valueBoolean
+ ? Language.opWhitelistKick.value + "
" + Language.opWhitelistDeop.value : Language.opWhitelistKick.value));
+ T2Csend.console(Language.opWhitelistNotifyDeop.value.replace("[player]", player.getName()) + "
"
+ + Language.opWhitelistNotifyKick.value.replace("[player]", player.getName()));
+ Events.notifyPlayer(Language.opWhitelistNotifyDeop.value.replace("[player]", player.getName()) + "
"
+ + Language.opWhitelistNotifyKick.value.replace("[player]", player.getName()));
+ } else {
+ T2Csend.console(Language.opWhitelistNotifyDeop.value.replace("[player]", player.getName()));
+ Events.notifyPlayer(Language.opWhitelistNotifyDeop.value.replace("[player]", player.getName()));
+
+ if (OPWhitelist.noOpPlayerDeopPlayerSendMessage.valueBoolean) {
+ Bukkit.getScheduler().runTaskLater(Main.getPlugin(), new Runnable() {
+ @Override
+ public void run() {
+ T2Csend.player(player, Language.opWhitelistDeop.value);
+ }
+ }, 5L);
+ }
+ }
+ }
+ if (OPWhitelist.noOpPlayerKickEnable.valueBoolean) {
+ if (!OPWhitelist.customCommandsEnable.valueBoolean)
+ T2Ccmd.console(Config.kickCommand.path.replace("[player]", player.getName()).replace("[reason]", Language.opWhitelistKick.value));
+ T2Csend.console(Language.opWhitelistNotifyKick.value.replace("[player]", player.getName()));
+ Events.notifyPlayer(Language.opWhitelistNotifyKick.value.replace("[player]", player.getName()));
+ }
+ if (OPWhitelist.customCommandsEnable.valueBoolean) {
+ for (String cmd : OPWhitelist.customCommandsCommands.valueStringList) {
+ T2Ccmd.console(cmd.replace("[player]", player.getName()));
+ }
+ }
+ return true;
+ }
+
+ private static Boolean opWhitelist(Player player) {
+ for (Map.Entry playerObject : PlayerCash.getOpHashMap().entrySet()){
+ if (playerObject.getValue().playerName.equals(player.getName())) return true;
+ if (playerObject.getValue().uuid.equals(player.getUniqueId().toString())) return true;
+ }
+ T2Csend.console(Language.exactKickReason.value.replace("[reason]", "Player UUID: " + player.getUniqueId().toString() + " not whitelisted (opWhitelist)"));
+ return false;
+ }
+}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/PermissionCheck.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/PermissionCheck.java
new file mode 100644
index 0000000..d64f1d2
--- /dev/null
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/PermissionCheck.java
@@ -0,0 +1,53 @@
+package net.t2code.opsecurity.check;
+
+import net.t2code.opsecurity.config.config.Config;
+import net.t2code.opsecurity.config.language.Language;
+import net.t2code.opsecurity.config.permissionWhitelist.PermissionWhitelist;
+import net.t2code.opsecurity.events.Events;
+import net.t2code.opsecurity.objects.PlayerCash;
+import net.t2code.opsecurity.objects.PlayerObject;
+import net.t2code.opsecurity.system.BungeeSenderReceiver;
+import net.t2code.t2codelib.SPIGOT.api.commands.T2Ccmd;
+import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
+import org.bukkit.entity.Player;
+
+import java.util.Map;
+
+public class PermissionCheck {
+ public static Boolean onCheck(Player player, Boolean join) {
+ if (!PermissionWhitelist.enable.valueBoolean) return false;
+ for (String perm : PermissionWhitelist.permissions.valueStringList) {
+ if (!player.hasPermission(perm)) continue;
+ if (permWhitelist(player)) continue;
+
+ if (join) T2Csend.console(Language.permissionWhitelistNotifyKick.value.replace("[player]", player.getName()));
+ if (Config.notifyJoinWarning.valueBoolean && join) {
+ if (Config.notifyBungee.valueBoolean) {
+ BungeeSenderReceiver.sendToBungee(Language.permissionWhitelistNotifyOnJoin.value.replace("[player]", player.getName()));
+ } else Events.notifyPlayer(Language.permissionWhitelistNotifyOnJoin.value.replace("[player]", player.getName()));
+ }
+
+ if (PermissionWhitelist.playerWithPermissionKick.valueBoolean) {
+ T2Ccmd.console(Config.kickCommand.valueString.replace("[player]", player.getName()).replace("[reason]", Language.permissionWhitelistKick.value));
+ T2Csend.console(Language.permissionWhitelistNotifyKick.value.replace("[player]",
+ player.getName()).replace("[perm]", perm));
+ }
+ if (PermissionWhitelist.customCommandsCommands.valueBoolean) {
+ for (String cmd : PermissionWhitelist.customCommandsCommands.valueStringList) {
+ T2Ccmd.console(cmd.replace("[player]", player.getName()).replace("[perm]", perm));
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ private static Boolean permWhitelist(Player player) {
+ for (Map.Entry playerObject : PlayerCash.getPermissionHashMap().entrySet()){
+ if (playerObject.getValue().playerName.equals(player.getName())) return true;
+ if (playerObject.getValue().uuid.equals(player.getUniqueId().toString())) return true;
+ }
+ T2Csend.console(Language.exactKickReason.value.replace("[reason]", "Player UUID: " + player.getUniqueId().toString() + " not whitelisted (permissionWhitelist)"));
+ return false;
+ }
+}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/Timer.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/Timer.java
new file mode 100644
index 0000000..7928e38
--- /dev/null
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/Timer.java
@@ -0,0 +1,29 @@
+// This claas was created by JaTiTV
+
+
+package net.t2code.opsecurity.check;
+
+import net.t2code.opsecurity.config.config.Config;
+import net.t2code.opsecurity.config.opWhitelist.OPWhitelist;
+import net.t2code.opsecurity.config.permissionWhitelist.PermissionWhitelist;
+import net.t2code.opsecurity.system.Main;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+
+public class Timer {
+
+ public static void refreshTimer() {
+ if (!(OPWhitelist.enable.valueBoolean && PermissionWhitelist.enable.valueBoolean)) return;
+ if (!Config.checkTimerEnable.valueBoolean) return;
+
+ Bukkit.getScheduler().scheduleAsyncRepeatingTask(Main.getPlugin(), new Runnable() {
+ @Override
+ public void run() {
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ OpCheck.onCheck(player, false);
+ PermissionCheck.onCheck(player, false);
+ }
+ }
+ }, 0, 20L * Config.checkTimerRefreshInSec.valueInt);
+ }
+}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/command/CmdExecuter.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/command/CmdExecuter.java
index 78c2bbf..058692d 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/command/CmdExecuter.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/command/CmdExecuter.java
@@ -4,15 +4,15 @@ package net.t2code.opsecurity.command;
import net.t2code.opsecurity.Util;
import net.t2code.opsecurity.config.config.Config;
-import net.t2code.opsecurity.config.language.Language;
+import net.t2code.opsecurity.config.opWhitelist.OPWhitelist;
+import net.t2code.opsecurity.system.Main;
import net.t2code.opsecurity.system.Permissions;
+import net.t2code.t2codelib.SPIGOT.api.commands.T2Ctab;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
-import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
-import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.HashMap;
@@ -42,6 +42,11 @@ public class CmdExecuter implements CommandExecutor, TabCompleter {
case "version":
case "ver":
Commands.info(sender);
+ break;
+ case "test":
+ T2Csend.debugmsg(Main.getPlugin(), OPWhitelist.enable.valueBoolean.toString());
+ T2Csend.debugmsg(Main.getPlugin(), Config.onlyOPcanUseThePlugin.valueBoolean.toString());
+
break;
case "help":
default:
@@ -61,63 +66,7 @@ public class CmdExecuter implements CommandExecutor, TabCompleter {
@Override
public List onTabComplete(CommandSender sender, Command cmd, String s, String[] args) {
List list = new ArrayList<>();
- if (sender instanceof Player) {
- Player p = (Player) sender;
- if (args.length == 1) {
- for (String command : arg1.keySet()) {
- Boolean passend = true;
- for (int i = 0; i < args[0].length(); i++) {
- if (args[0].length() >= command.length()) {
- passend = false;
- } else {
- if (args[0].charAt(i) != command.charAt(i)) {
- passend = false;
- }
- }
- }
- if (hasPermission(p, arg1.get(command)) && passend) {
- list.add(command);
- }
- }
- }
-
- if (args.length == 2) {
- switch (args[0]) {
- case "give":
- if (hasPermission(p, arg1.get("give"))) {
- for (Player player : Bukkit.getOnlinePlayers()) {
- Boolean passend = true;
- for (int i = 0; i < args[1].length(); i++) {
- if (args[1].length() >= player.getName().length()) {
- passend = false;
- } else {
- if (args[1].charAt(i) != player.getName().charAt(i)) {
- passend = false;
- }
- }
- }
- if (hasPermission(p, arg1.get(player)) && passend) {
- list.add(player.getName());
- }
- }
- }
- break;
- }
- }
- }
+ T2Ctab.tab(list,sender,0,args,arg1);
return list;
}
-
- public static boolean hasPermission(Player player, String permission) {
- if (player.isOp()) {
- return true;
- }
- String[] Permissions = permission.split(";");
- for (String perm : Permissions) {
- if (player.hasPermission(perm)) {
- return true;
- }
- }
- return false;
- }
}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/command/Commands.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/command/Commands.java
index efcb1ab..d0f2752 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/command/Commands.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/command/Commands.java
@@ -1,11 +1,14 @@
package net.t2code.opsecurity.command;
import net.t2code.opsecurity.Util;
+import net.t2code.opsecurity.config.FileSelect;
import net.t2code.opsecurity.config.config.Config;
import net.t2code.opsecurity.config.language.Language;
import net.t2code.opsecurity.objects.PlayerCash;
+import net.t2code.opsecurity.system.Main;
import net.t2code.opsecurity.system.Permissions;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
+import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -49,21 +52,25 @@ public class Commands {
}
if (sender instanceof Player) {
Player player = (Player) sender;
- if (!PlayerCash.opHashMap.containsKey(player.getName().toLowerCase())) {
+ if (!PlayerCash.getOpHashMap().containsKey(player.getName().toLowerCase())) {
sender.sendMessage(Util.getPrefix() + " §4You are not on the Whitelist!");
return;
}
- if (!PlayerCash.opHashMap.get(player.getName().toLowerCase()).UUID.equals(player.getUniqueId().toString().replace("-", ""))) {
+ if (!PlayerCash.getOpHashMap().get(player.getName().toLowerCase()).uuid.equals(player.getUniqueId().toString().replace("-", ""))) {
sender.sendMessage(Util.getPrefix() + " §4You are not on the Whitelist!");
return;
}
T2Csend.player(player, Language.reloadStart.value);
}
- if (sender instanceof Player) T2Csend.player((Player) sender, SelectMessages.ReloadEnd);
+ if (sender instanceof Player) T2Csend.player((Player) sender, Language.reloadEnd.value);
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + "§8-------------------------------");
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + " §6Plugin reload...");
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + "§8-------------------------------");
- Load.loadReload();
+ // Load.onLoad(Main.getPlugin(),Main.getAutor(),Main.getVersion());
+ FileSelect.selectConfig();
+ FileSelect.selectLanguage();
+ FileSelect.selectOpWhitelist();
+ FileSelect.selectPermissionWhitelist();
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + "§8-------------------------------");
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + " §2Plugin successfully reloaded.");
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + "§8-------------------------------");
@@ -75,6 +82,6 @@ public class Commands {
sender.sendMessage(Util.getPrefix() + "§cYou do not have permission for OPSecurity! §7<" + Permissions.info + ">");
return;
}
- T2CodeTemplate.sendInfo(sender, Util.getPrefix(), Util.getSpigot(), Util.getDiscord(), Main.autor, Main.version, UpdateAPI.PluginVersionen.get(Main.plugin.getName()).publicVersion);
+ T2Ctemplate.sendInfo(sender,Main.getPlugin(),Util.getSpigotID(),Util.getDiscord(),Util.getInfoText());
}
}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/FileSelect.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/FileSelect.java
index a8976f3..3d39f06 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/FileSelect.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/FileSelect.java
@@ -4,12 +4,14 @@ import net.t2code.opsecurity.Util;
import net.t2code.opsecurity.config.config.Config;
import net.t2code.opsecurity.config.language.Language;
import net.t2code.opsecurity.config.opWhitelist.OPWhitelist;
+import net.t2code.opsecurity.config.permissionWhitelist.PermissionWhitelist;
import net.t2code.opsecurity.objects.PlayerCash;
import net.t2code.opsecurity.objects.PlayerObject;
import net.t2code.opsecurity.system.Main;
+import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
-import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.SPIGOT.system.config.languages.SelectLibMsg;
+import org.bukkit.Sound;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
@@ -26,14 +28,14 @@ public class FileSelect {
if (!yamlConfiguration.contains(value.path)) {
yamlConfiguration.set(value.path, value.valueString);
}
- value.valueString = yamlConfiguration.getString(value.path);
+ value.valueString = T2Creplace.replace(Util.getPrefix(), yamlConfiguration.getString(value.path));
break;
case SOUND:
if (!yamlConfiguration.contains(value.path)) {
- yamlConfiguration.set(value.path, value.valueString);
+ yamlConfiguration.set(value.path, value.sound.toString());
}
try {
- value.valueString = yamlConfiguration.getString(value.path);
+ value.sound = Sound.valueOf(yamlConfiguration.getString(value.path));
} catch (Exception ex) {
T2Csend.console("§4\n§4\n§4\n" + SelectLibMsg.soundNotFound.replace("[prefix]", Util.getPrefix())
.replace("[sound]", "§8" + value.path + ": §6" + yamlConfiguration.getString(value.path)) + "§4\n§4\n§4\n");
@@ -49,6 +51,7 @@ public class FileSelect {
if (!yamlConfiguration.contains(value.path)) {
yamlConfiguration.set(value.path, value.valueInt);
}
+
value.valueInt = yamlConfiguration.getInt(value.path);
break;
}
@@ -64,34 +67,34 @@ public class FileSelect {
public static void selectLanguage() {
long long_ = System.currentTimeMillis();
- File directory = new File(Main.getPath(), "languages");
- if (!directory.exists()) {
- for (String language : defaultLanguages) {
- File config = new File(Main.getPath(), "languages/" + language + ".yml");
- YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
- for (Language value : Language.values()) {
- if (!yamlConfiguration.contains(value.path)) {
- switch (language) {
- case "german":
- yamlConfiguration.set(value.path, value.german);
- break;
- case "english":
- yamlConfiguration.set(value.path, value.english);
- break;
- }
+
+ for (String language : defaultLanguages) {
+ File config = new File(Main.getPath(), "languages/" + language + ".yml");
+ YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
+ for (Language value : Language.values()) {
+ if (!yamlConfiguration.contains(value.path)) {
+ switch (language) {
+ case "german":
+ yamlConfiguration.set(value.path, value.german);
+ break;
+ case "english":
+ yamlConfiguration.set(value.path, value.english);
+ break;
}
}
- T2Csend.debugmsg(Main.getPlugin(),"save: "+language);
- try {
- yamlConfiguration.save(config);
- } catch (IOException e) {
- e.printStackTrace();
- }
+ }
+ T2Csend.debug(Main.getPlugin(), "save: " + language);
+ try {
+ yamlConfiguration.save(config);
+ } catch (IOException e) {
+ e.printStackTrace();
}
}
+
String selectMSG;
- File config = new File(Main.getPath(), "languages/" + Config.language + ".yml");
+ File config = new File(Main.getPath(), "languages/" + Config.language.valueString + ".yml");
+ T2Csend.debug(Main.getPlugin(), config.getAbsolutePath());
if (!config.isFile()) {
T2Csend.console(Util.getPrefix());
T2Csend.console(Util.getPrefix() + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
@@ -99,13 +102,14 @@ public class FileSelect {
T2Csend.console(Util.getPrefix() + " §6The default language §eEnglish §6is used!");
T2Csend.console(Util.getPrefix() + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
T2Csend.console(Util.getPrefix());
- config = new File(Main.getPath(), "languages/" + "english_messages.yml");
+ config = new File(Main.getPath(), "languages/" + "english.yml");
selectMSG = "english";
} else selectMSG = Config.language.valueString;
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
for (Language value : Language.values()) {
- value.value = yamlConfiguration.getString(value.path);
+ T2Csend.debug(Main.getPlugin(), "Select: File: " + config.getName() + " Path: " + value.path);
+ value.value = T2Creplace.replace(Util.getPrefix(), yamlConfiguration.getString(value.path));
}
T2Csend.console(Util.getPrefix() + " §2Language successfully selected to: §6" + selectMSG + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
@@ -125,7 +129,7 @@ public class FileSelect {
if (!yamlConfiguration.contains(value.path)) {
yamlConfiguration.set(value.path, value.valueBoolean);
}
- value.valueStringList = yamlConfiguration.getStringList(value.path);
+ value.valueStringList = T2Creplace.replace(Util.getPrefix(), yamlConfiguration.getStringList(value.path));
break;
case PLAYERLIST:
if (!yamlConfiguration.contains(value.pathPlayerListPath)) {
@@ -137,11 +141,10 @@ public class FileSelect {
for (String key : yamlConfiguration.getConfigurationSection(value.pathPlayerListPath).getKeys(false)) {
PlayerObject playerObject = new PlayerObject(
yamlConfiguration.getString(value.pathPlayerName.replace("KEY", key)),
- yamlConfiguration.getString(value.pathPlayerUuid.replace("KEY", key).replace("-", "")));
- PlayerCash.opHashMap.put(key, playerObject);
+ yamlConfiguration.getString(value.pathPlayerUuid.replace("KEY", key).replace("-", "")));
+ PlayerCash.getOpHashMap().put(key, playerObject);
}
break;
-
}
}
try {
@@ -154,7 +157,7 @@ public class FileSelect {
public static void selectPermissionWhitelist() {
File config = new File(Main.getPath(), "permissionWhitelist.yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
- for (OPWhitelist value : OPWhitelist.values()) {
+ for (PermissionWhitelist value : PermissionWhitelist.values()) {
switch (value.cEnum) {
case BOOLEAN:
if (!yamlConfiguration.contains(value.path)) {
@@ -166,7 +169,7 @@ public class FileSelect {
if (!yamlConfiguration.contains(value.path)) {
yamlConfiguration.set(value.path, value.valueBoolean);
}
- value.valueStringList = yamlConfiguration.getStringList(value.path);
+ value.valueStringList = T2Creplace.replace(Util.getPrefix(), yamlConfiguration.getStringList(value.path));
break;
case PLAYERLIST:
if (!yamlConfiguration.contains(value.pathPlayerListPath)) {
@@ -178,8 +181,8 @@ public class FileSelect {
for (String key : yamlConfiguration.getConfigurationSection(value.pathPlayerListPath).getKeys(false)) {
PlayerObject playerObject = new PlayerObject(
yamlConfiguration.getString(value.pathPlayerName.replace("KEY", key)),
- yamlConfiguration.getString(value.pathPlayerUuid.replace("KEY", key).replace("-", "")));
- PlayerCash.opHashMap.put(key, playerObject);
+ yamlConfiguration.getString(value.pathPlayerUuid.replace("KEY", key).replace("-", "")));
+ PlayerCash.getPermissionHashMap().put(key, playerObject);
}
break;
}
@@ -190,6 +193,4 @@ public class FileSelect {
e.printStackTrace();
}
}
-
-
}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/config/Config.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/config/Config.java
index a3a03ad..28b8c5f 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/config/Config.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/config/Config.java
@@ -1,28 +1,31 @@
package net.t2code.opsecurity.config.config;
-import net.t2code.opsecurity.config.ConfigParam;
+import net.t2code.opsecurity.enums.ConfigParam;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion;
+import org.bukkit.Sound;
public enum Config {
- language("Plugin.Language", "english", ConfigParam.STRING),
- onlyOPcanUseThePlugin("Plugin.OnlyOPcanUseThePlugin", true, ConfigParam.BOOLEAN),
+ language("plugin.language", "english", ConfigParam.STRING),
+ onlyOPcanUseThePlugin("plugin.onlyOPcanUseThePlugin", true, ConfigParam.BOOLEAN),
- checkOnJoin("Check.OnJoin", true, ConfigParam.BOOLEAN),
- checkOnInteract("Check.OnInteract", true, ConfigParam.BOOLEAN),
- checkOnCommand("Check.OnCommand", true, ConfigParam.BOOLEAN),
- checkOnChat("Check.OnChat", true, ConfigParam.BOOLEAN),
- checkTimerEnable("Check.Timer.Enable", true, ConfigParam.BOOLEAN),
- checkTimerRefreshInSec("Check.Timer.RefreshInSec", 60, ConfigParam.INTEGER),
- kickCommand("Kick.Command", "minecraft:kick [player] [reason]", ConfigParam.STRING),
- notifyJoinWarning("Notify.JoinWarn.Enable", true, ConfigParam.BOOLEAN),
- notifySoundEnable("Notify.SoundEnable", true, ConfigParam.BOOLEAN),
- notifySoundValue("Notify.SoundEnable", sound(), ConfigParam.SOUND);
+ checkOnJoin("check.onJoin", true, ConfigParam.BOOLEAN),
+ checkOnInteract("check.onInteract", true, ConfigParam.BOOLEAN),
+ checkOnCommand("check.onCommand", true, ConfigParam.BOOLEAN),
+ checkOnChat("check.onChat", true, ConfigParam.BOOLEAN),
+ checkTimerEnable("check.timer.enable", true, ConfigParam.BOOLEAN),
+ checkTimerRefreshInSec("check.timer.refreshInSec", 60, ConfigParam.INTEGER),
+ kickCommand("kick.command", "minecraft:kick [player] [reason]", ConfigParam.STRING),
+ notifyJoinWarning("notify.joinWarn.enable", true, ConfigParam.BOOLEAN),
+ notifyBungee("notify.allBungeePlayer.enable", false, ConfigParam.BOOLEAN),
+ notifySoundEnable("notify.soundEnable", true, ConfigParam.BOOLEAN),
+ notifySoundValue("notify.sound", sound(), ConfigParam.SOUND);
public String path;
public String valueString;
public Integer valueInt;
public Boolean valueBoolean;
+ public Sound sound;
public ConfigParam cEnum;
Config(String path, String value, ConfigParam cEnum) {
@@ -31,6 +34,12 @@ public enum Config {
this.cEnum = cEnum;
}
+ Config(String path, Sound value, ConfigParam cEnum) {
+ this.path = path;
+ this.sound = value;
+ this.cEnum = cEnum;
+ }
+
Config(String path, Integer value, ConfigParam cEnum) {
this.path = path;
this.valueInt = value;
@@ -42,12 +51,13 @@ public enum Config {
this.valueBoolean = value;
this.cEnum = cEnum;
}
- public static String sound(){
- if (T2CmcVersion.isMc1_8()){
- return "NOTE_PIANO";
- } else if (T2CmcVersion.isMc1_9()||T2CmcVersion.isMc1_10()||T2CmcVersion.isMc1_11()||T2CmcVersion.isMc1_12()){
- return "BLOCK_NOTE_HARP";
- } else return "BLOCK_NOTE_BLOCK_HARP";
+
+ public static Sound sound() {
+ if (T2CmcVersion.isMc1_8()) {
+ return Sound.valueOf("NOTE_PIANO");
+ } else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) {
+ return Sound.valueOf("BLOCK_NOTE_HARP");
+ } else return Sound.valueOf("BLOCK_NOTE_BLOCK_HARP");
}
}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/config/Converter.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/config/Converter.java
index 27953b2..a70060d 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/config/Converter.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/config/Converter.java
@@ -4,7 +4,6 @@ import net.t2code.opsecurity.config.opWhitelist.OPWhitelist;
import net.t2code.opsecurity.config.permissionWhitelist.PermissionWhitelist;
import net.t2code.opsecurity.objects.PlayerObject;
import net.t2code.opsecurity.system.Main;
-import net.t2code.opsecurity.system.Permissions;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/language/Language.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/language/Language.java
index a630b22..c57ceb7 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/language/Language.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/language/Language.java
@@ -13,7 +13,7 @@ public enum Language {
"[prefix] Du hast keine Berechtigung für OPSecurity!",
"[prefix] You do not have permission for OPSecurity!"),
- PlayerMustBeOnlineToOp("plugin.PlayerMustBeOnlineToOp",null,
+ playerMustBeOnlineToOp("plugin.PlayerMustBeOnlineToOp",null,
"[prefix] Der Spieler muss online sein, um OP zu erhalten!",
"[prefix] Player must be online to get op!"),
@@ -29,38 +29,37 @@ public enum Language {
"[prefix] Der angegebene Spieler befindet sich nicht auf der OP_Whitelist!",
"[prefix] The specified player is not on the OP_Whitelist!"),
- opWhitelistConsoleOnJoin("opWhitelist.consoleOnJoin",null,
+ opWhitelistNotifyOnJoin("opWhitelist.notify.onJoin",null,
"[prefix] Spieler [player] ist dem Server beigetreten, befindet sich aber nicht auf der OP_Whitelist!",
"[prefix] Player [player] is joined to the server but is not on the OP_Whitelist!"),
+ opWhitelistNotifyDeop("opWhitelist.notify.deop",null,
+ "[prefix] Spieler [player] wurde OP entfernt da er nicht auf der Spielerliste steht!",
+ "[prefix] Player [player] was removed OP because he is not on the playerlist!"),
+
+ opWhitelistNotifyKick("opWhitelist.notify.kick",null,
+ "[prefix] Spieler [player] wurde gekickt, da er nicht auf der OP_Whitelist steht!",
+ "[prefix] Player [player] was kicked because he is not on the OP_Whitelist!"),
+
opWhitelistDeop("opWhitelist.deop",null,
"[prefix] Dir wurde OP entfernt da du dazu keine Permission besitzt.",
"[prefix] You have been removed from OP because you do not have permission."),
- opWhitelistConsoleDeop("opWhitelist.consoleDeop",null,
- "[prefix] Spieler [player] wurde OP entfernt da er nicht auf der Spielerliste steht!",
- "[prefix] Player [player] was removed OP because he is not on the playerlist!"),
-
opWhitelistKick("opWhitelist.kick",null,
"Du hast op bist dazu aber nicht berechtigt, deswegen wurdest du gekickt!",
"You have op but are not authorized to do so, that's why you were kicked!"),
- opWhitelistConsoleKick("opWhitelist.consoleKick",null,
- "[prefix] Spieler [player] wurde gekickt, da er nicht auf der OP_Whitelist steht!",
- "[prefix] Player [player] was kicked because he is not on the OP_Whitelist!"),
-
- permissionWhitelistConsoleOnJoin("permissionWhitelist.consoleOnJoin",null,
+ permissionWhitelistNotifyOnJoin("permissionWhitelist.notify.onJoin",null,
"[prefix] Player [player] hat die Permission [perm] und ist dazu nicht berechtigt! [player] ist nicht in der Spielerliste!",
"[prefix] Player [player] has permission [perm] and is not authorized to do so! [player] is not on the Player list!"),
+ permissionWhitelistNotifyKick("permissionWhitelist.notify.kick",null,
+ "[prefix] Spieler [player] hat die Permission [perm] und ist dazu nicht berechtigt! Daher wurde er gekickt! [player] ist nicht in der Spielerliste!",
+ "[prefix] Player [player] has permission [perm] and is not authorized to do so! Therefore he was kicked! [player] is not on the Player list!"),
+
permissionWhitelistKick("permissionWhitelist.kick",null,
"Du wurdest gekickt, da du Permissions besitzt, für die du keine Berechtigung besitzt!",
"You were kicked because you have permissions to which you do not have permission!"),
-
- permissionWhitelistConsoleKick("permissionWhitelist.consoleKick",null,
- "[prefix] Spieler [player] hat die Permission [perm] und ist dazu nicht berechtigt! Daher wurde er gekickt! [player] ist nicht in der Spielerliste!",
- "[prefix] Player [player] has permission [perm] and is not authorized to do so! Therefore he was kicked! [player] is not on the Player list!"),
-
exactKickReason("console.exactKickReason", null,
"[prefix] Genauer Grund: [reason]",
"[prefix] Exact reason: [reason]");
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/opWhitelist/OPWhitelist.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/opWhitelist/OPWhitelist.java
index f7eb85e..54bd465 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/opWhitelist/OPWhitelist.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/opWhitelist/OPWhitelist.java
@@ -1,6 +1,6 @@
package net.t2code.opsecurity.config.opWhitelist;
-import net.t2code.opsecurity.config.ConfigParam;
+import net.t2code.opsecurity.enums.ConfigParam;
import java.util.Arrays;
import java.util.List;
@@ -23,6 +23,7 @@ public enum OPWhitelist {
public String valuePlayerName;
public String valuePlayerUuid;
public List valueStringList;
+
public Boolean valueBoolean;
public ConfigParam cEnum;
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/permissionWhitelist/PermissionWhitelist.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/permissionWhitelist/PermissionWhitelist.java
index f0e95ca..692497f 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/permissionWhitelist/PermissionWhitelist.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/permissionWhitelist/PermissionWhitelist.java
@@ -1,6 +1,6 @@
package net.t2code.opsecurity.config.permissionWhitelist;
-import net.t2code.opsecurity.config.ConfigParam;
+import net.t2code.opsecurity.enums.ConfigParam;
import java.util.Arrays;
import java.util.List;
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/ConfigParam.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/enums/ConfigParam.java
similarity index 74%
rename from OpSecurity V3/src/main/java/net/t2code/opsecurity/config/ConfigParam.java
rename to OpSecurity V3/src/main/java/net/t2code/opsecurity/enums/ConfigParam.java
index b8fe1ef..fc8b15c 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/config/ConfigParam.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/enums/ConfigParam.java
@@ -1,4 +1,4 @@
-package net.t2code.opsecurity.config;
+package net.t2code.opsecurity.enums;
public enum ConfigParam {
STRING,
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/enums/OpCommandRequest.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/enums/OpCommandRequest.java
new file mode 100644
index 0000000..fcbb7d5
--- /dev/null
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/enums/OpCommandRequest.java
@@ -0,0 +1,7 @@
+package net.t2code.opsecurity.enums;
+
+public enum OpCommandRequest {
+ ok,
+ mustOnline,
+ notWhitelisted
+}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/events/Events.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/events/Events.java
new file mode 100644
index 0000000..e5213ea
--- /dev/null
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/events/Events.java
@@ -0,0 +1,83 @@
+package net.t2code.opsecurity.events;
+
+import net.t2code.opsecurity.Util;
+import net.t2code.opsecurity.config.config.Config;
+import net.t2code.opsecurity.check.OpCheck;
+import net.t2code.opsecurity.check.PermissionCheck;
+import net.t2code.opsecurity.system.Main;
+import net.t2code.opsecurity.system.Permissions;
+import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
+import net.t2code.t2codelib.SPIGOT.api.update.T2CupdateAPI;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.*;
+
+public class Events implements Listener {
+ public static void notifyPlayer(String msg) {
+ if (!Config.notifyJoinWarning.valueBoolean) return;
+ for (Player notifyPlayer : Bukkit.getOnlinePlayers()) {
+ if (!notifyPlayer.hasPermission(Permissions.notify)) continue;
+ T2Csend.player(notifyPlayer, msg);
+ if (Config.notifySoundEnable.valueBoolean) notifyPlayer.playSound(notifyPlayer.getLocation(), Config.notifySoundValue.sound, 3, 1);
+ }
+ }
+
+ @EventHandler
+ public void CommandSendEvent(PlayerCommandPreprocessEvent event) {
+ if (!Config.checkOnCommand.valueBoolean) return;
+ Player player = event.getPlayer();
+ T2Csend.debugmsg(Main.getPlugin(), "1 "+ OpCheck.onCheck(player,false));
+ T2Csend.debugmsg(Main.getPlugin(), "1 "+ PermissionCheck.onCheck(player,false));
+ if (OpCheck.onCheck(player, false) || PermissionCheck.onCheck(player, false)) {
+ if (event.isCancelled()) return;
+ event.setCancelled(true);
+ }
+ }
+
+ @EventHandler
+ public void PlayerChatEvent(PlayerChatEvent event) {
+ if (!Config.checkOnChat.valueBoolean) return;
+ Player player = event.getPlayer();
+ T2Csend.debugmsg(Main.getPlugin(), "2 "+OpCheck.onCheck(player,false));
+ T2Csend.debugmsg(Main.getPlugin(), "2 "+PermissionCheck.onCheck(player,false));
+ if (OpCheck.onCheck(player, false) || PermissionCheck.onCheck(player, false)) {
+ if (event.isCancelled()) return;
+ event.setCancelled(true);
+ }
+ }
+
+ @EventHandler
+ public void onInteract(PlayerInteractEvent event) {
+ if (!Config.checkOnInteract.valueBoolean) return;
+ Player player = event.getPlayer();
+ Bukkit.getScheduler().runTaskLaterAsynchronously(Main.getPlugin(), new Runnable() {
+ @Override
+ public void run() {
+ if (OpCheck.onCheck(player, false) || PermissionCheck.onCheck(player, false)) {
+ event.setCancelled(true);
+ }
+ }
+ }, 1L);
+ }
+
+ @EventHandler
+ public void onJoinCheck(PlayerJoinEvent event) {
+ if (!Config.checkOnJoin.valueBoolean) return;
+ Player player = event.getPlayer();
+ Bukkit.getScheduler().runTaskLaterAsynchronously(Main.getPlugin(), new Runnable() {
+ @Override
+ public void run() {
+ OpCheck.onCheck(player, true);
+ PermissionCheck.onCheck(player, true);
+ }
+ }, 1L);
+ }
+
+ @EventHandler
+ public void onJoinEvent(PlayerLoginEvent event) {
+ Player player = event.getPlayer();
+ T2CupdateAPI.join(Main.getPlugin(), Util.getPrefix(), Permissions.updatemsg, player, Util.getSpigotID(), Util.getDiscord());
+ }
+}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/events/OpCommand.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/events/OpCommand.java
new file mode 100644
index 0000000..f387896
--- /dev/null
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/events/OpCommand.java
@@ -0,0 +1,76 @@
+package net.t2code.opsecurity.events;
+
+import net.t2code.opsecurity.config.language.Language;
+import net.t2code.opsecurity.config.opWhitelist.OPWhitelist;
+import net.t2code.opsecurity.enums.OpCommandRequest;
+import net.t2code.opsecurity.objects.PlayerCash;
+import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
+import net.t2code.t2codelib.SPIGOT.api.player.T2CnameHistory;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerCommandPreprocessEvent;
+import org.bukkit.event.server.ServerCommandEvent;
+
+import java.io.IOException;
+
+public class OpCommand implements Listener {
+ @EventHandler
+ public void onOPServer(ServerCommandEvent event) {
+ if (!OPWhitelist.enable.valueBoolean) return;
+ if ((event.getCommand().toLowerCase().startsWith("op ") || event.getCommand().toLowerCase().startsWith("minecraft:op "))) {
+ switch (isNotOPWTL(event.getCommand())) {
+ case mustOnline:
+ T2Csend.sender(event.getSender(), Language.playerMustBeOnlineToOp.value);
+ event.setCancelled(true);
+ break;
+ case notWhitelisted:
+ T2Csend.sender(event.getSender(), Language.opWhitelistOpCommand.value);
+ event.setCancelled(true);
+ break;
+ }
+ }
+ }
+
+ @EventHandler
+ public void onOpPlayer(PlayerCommandPreprocessEvent event) {
+ if (!OPWhitelist.enable.valueBoolean) return;
+ if ((event.getMessage().toLowerCase().startsWith("/op ") || event.getMessage().toLowerCase().startsWith("/minecraft:op "))) {
+ switch (isNotOPWTL(event.getMessage())) {
+ case mustOnline:
+ T2Csend.player(event.getPlayer(), Language.playerMustBeOnlineToOp.value);
+ event.setCancelled(true);
+ break;
+ case notWhitelisted:
+ T2Csend.player(event.getPlayer(), Language.opWhitelistOpCommand.value);
+ event.setCancelled(true);
+ break;
+ }
+ }
+ }
+
+ private OpCommandRequest isNotOPWTL(String command) {
+ if (command.charAt(0) == '/') command = command.replaceFirst("/", "");
+ String arg = command.replace("op ", "");
+ Player target = Bukkit.getPlayer(arg);
+ if (OPWhitelist.playerMustBeOnlineToOp.valueBoolean) {
+ if (target == null) return OpCommandRequest.mustOnline;
+ if (!PlayerCash.getOpHashMap().get(target.getName()).playerName.equals(target.getName())) return OpCommandRequest.notWhitelisted;
+ if (!PlayerCash.getOpHashMap().get(target.getName()).uuid.equals(target.getUniqueId().toString().replace("-", ""))) return OpCommandRequest.notWhitelisted;
+ }
+ String targetUUID;
+ if (target != null) {
+ targetUUID = target.getUniqueId().toString();
+ } else {
+ try {
+ targetUUID = T2CnameHistory.NameLookup.getPlayerUUID(arg);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ if (!PlayerCash.getOpHashMap().get(target.getName()).playerName.equals(arg)) return OpCommandRequest.notWhitelisted;
+ if (!PlayerCash.getOpHashMap().get(target.getName()).uuid.equals(targetUUID.replace("-", ""))) return OpCommandRequest.notWhitelisted;
+ return OpCommandRequest.ok;
+ }
+}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/events/PlugManCommand.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/events/PlugManCommand.java
new file mode 100644
index 0000000..35acc1d
--- /dev/null
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/events/PlugManCommand.java
@@ -0,0 +1,38 @@
+// This claas was created by JaTiTV
+
+package net.t2code.opsecurity.events;
+
+import net.t2code.opsecurity.Util;
+import net.t2code.opsecurity.system.Main;
+import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerCommandPreprocessEvent;
+import org.bukkit.event.server.ServerCommandEvent;
+
+public class PlugManCommand implements Listener {
+
+ @EventHandler
+ public void onOPServer(ServerCommandEvent event) {
+ if ((event.getCommand().toLowerCase().contains("plugman disable") && event.getCommand().toLowerCase().contains(Main.getPlugin().getDescription().getName().toLowerCase()))
+ || (event.getCommand().toLowerCase().contains("plugman reload") && event.getCommand().toLowerCase().contains(Main.getPlugin().getDescription().getName().toLowerCase()))
+ || (event.getCommand().toLowerCase().contains("plugman unload") && event.getCommand().toLowerCase().contains(Main.getPlugin().getDescription().getName().toLowerCase()))
+ || (event.getCommand().toLowerCase().contains("plugman restart") && event.getCommand().toLowerCase().contains(Main.getPlugin().getDescription().getName().toLowerCase()))
+ ) {
+ event.setCancelled(true);
+ T2Csend.console(Util.getPrefix() + " §4OPSecurity cannot be deactivated!");
+ }
+ }
+
+ @EventHandler
+ public void onOpPlayer(PlayerCommandPreprocessEvent event) {
+ if (event.getMessage().toLowerCase().startsWith("/plugman disable") && event.getMessage().toLowerCase().contains(Main.getPlugin().getDescription().getName().toLowerCase())
+ || (event.getMessage().toLowerCase().startsWith("/plugman reload") && event.getMessage().toLowerCase().contains(Main.getPlugin().getDescription().getName().toLowerCase()))
+ || (event.getMessage().toLowerCase().startsWith("/plugman unload") && event.getMessage().toLowerCase().contains(Main.getPlugin().getDescription().getName().toLowerCase()))
+ || (event.getMessage().toLowerCase().startsWith("/plugman restart") && event.getMessage().toLowerCase().contains(Main.getPlugin().getDescription().getName().toLowerCase()))
+ ) {
+ event.setCancelled(true);
+ T2Csend.player(event.getPlayer(), Util.getPrefix() + " §4OPSecurity cannot be deactivated!");
+ }
+ }
+}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/objects/PlayerCash.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/objects/PlayerCash.java
index d95245c..05e5826 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/objects/PlayerCash.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/objects/PlayerCash.java
@@ -1,8 +1,12 @@
package net.t2code.opsecurity.objects;
+import lombok.Getter;
+
import java.util.HashMap;
public class PlayerCash {
- public static HashMap opHashMap = new HashMap();
- public static HashMap permissionHashMap = new HashMap();
+ @Getter
+ private static HashMap opHashMap = new HashMap();
+ @Getter
+ private static HashMap permissionHashMap = new HashMap();
}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/objects/PlayerObject.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/objects/PlayerObject.java
index 55bd1cf..03233d9 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/objects/PlayerObject.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/objects/PlayerObject.java
@@ -1,7 +1,5 @@
package net.t2code.opsecurity.objects;
-import java.util.UUID;
-
public class PlayerObject {
public String playerName;
public String uuid;
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/BungeeSenderReceiver.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/BungeeSenderReceiver.java
new file mode 100644
index 0000000..ac27372
--- /dev/null
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/BungeeSenderReceiver.java
@@ -0,0 +1,41 @@
+package net.t2code.opsecurity.system;
+
+import net.t2code.opsecurity.events.Events;
+import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.messaging.PluginMessageListener;
+
+import java.io.*;
+
+public class BungeeSenderReceiver implements PluginMessageListener {
+
+ public static void sendToBungee(String information) {
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ DataOutputStream output = new DataOutputStream(stream);
+ try {
+ output.writeUTF(information.toString());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ player.sendPluginMessage(Main.getPlugin(), "t2c:opsec", stream.toByteArray());
+ return;
+ }
+ }
+
+ @Override
+ public void onPluginMessageReceived(String channel, Player player, byte[] message) {
+ DataInputStream stream = new DataInputStream(new ByteArrayInputStream(message));
+ T2Csend.debug(Main.getPlugin(), "stream: " + stream.toString());
+ try {
+ String subChannel = stream.readUTF();
+ String information = stream.readUTF();
+ if (subChannel.equals("T2Cconsole")) {
+ Events.notifyPlayer(information);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/Load.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/Load.java
index 5d969be..d93ccff 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/Load.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/Load.java
@@ -1,12 +1,15 @@
package net.t2code.opsecurity.system;
import net.t2code.opsecurity.Util;
+import net.t2code.opsecurity.command.CmdExecuter;
import net.t2code.opsecurity.config.FileSelect;
import net.t2code.opsecurity.config.config.Converter;
-import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
+import net.t2code.opsecurity.events.Events;
+import net.t2code.opsecurity.events.OpCommand;
+import net.t2code.opsecurity.events.PlugManCommand;
+import net.t2code.opsecurity.check.Timer;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate;
-import net.t2code.t2codelib.SPIGOT.api.plugins.T2CpluginCheck;
-import net.t2code.t2codelib.SPIGOT.api.plugins.T2CpluginManager;
+import net.t2code.t2codelib.SPIGOT.api.register.T2Cregister;
import net.t2code.t2codelib.SPIGOT.api.update.T2CupdateAPI;
import java.util.List;
@@ -16,25 +19,25 @@ public class Load {
public static void onLoad(Main plugin, List autor, String version) {
long long_ = T2Ctemplate.onLoadHeader(Util.getPrefix(), autor, version, Util.getSpigot(), Util.getDiscord());
- if (T2CpluginCheck.opSec()){
- T2CpluginManager.disable("OPSecurity");
- T2Csend.warning(plugin,"OPSecurity has been deactivated, because T2C-OPSecurity is a newer version!");
- }
try {
Converter.convert();
- } catch (Exception ex){
- plugin.getLogger().log(Level.SEVERE,ex.getMessage());
+ } catch (Exception ex) {
+ plugin.getLogger().log(Level.SEVERE, ex.getMessage());
ex.printStackTrace();
}
-
FileSelect.selectConfig();
FileSelect.selectLanguage();
FileSelect.selectOpWhitelist();
FileSelect.selectPermissionWhitelist();
- //plugin.getCommand("t2c-opsecurity").setExecutor(new CmdExecuter());
+ plugin.getCommand("t2c-opsecurity").setExecutor(new CmdExecuter());
+ T2Cregister.listener(new OpCommand(), plugin);
+ T2Cregister.listener(new PlugManCommand(), plugin);
+ T2Cregister.listener(new Events(), plugin);
+
+ Timer.refreshTimer();
Permissions.register();
T2CupdateAPI.onUpdateCheck(plugin, Util.getPrefix(), Util.getSpigotID(), Util.getDiscord());
Metrics.Bstats(plugin, Util.getBstatsID());
diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/Main.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/Main.java
index 2ae2a3a..ea221aa 100644
--- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/Main.java
+++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/system/Main.java
@@ -42,7 +42,7 @@ public final class Main extends JavaPlugin {
if (t2codeLib) T2Ctemplate.onDisable(Util.getPrefix(), autor, version, Util.getSpigot(), Util.getDiscord());
}
- public static Boolean pluginNotFound(String pl, Integer spigotID, String ver) {
+ private static Boolean pluginNotFound(String pl, Integer spigotID, String ver) {
if (Bukkit.getPluginManager().getPlugin(pl) == null) {
plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + " §e" + pl + " §4could not be found. Please download it here: "
diff --git a/OpSecurity V3/src/main/resources/config.yml b/OpSecurity V3/src/main/resources/config.yml
deleted file mode 100644
index 038d58e..0000000
--- a/OpSecurity V3/src/main/resources/config.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-Plugin:
- Language: english
- OnlyOPcanUseThePlugin: true
-Check:
- OnJoin: true
- OnInteract: true
- OnCommand: true
- OnChat: true
- Timer:
- Enable: true
- RefreshInSec: 60
-Kick:
- Command: minecraft:kick [player] [reason]
-Notify:
- JoinWarn:
- Enable: true
- Sound:
- Enable: true
- Sound: BLOCK_NOTE_BLOCK_HARP
\ No newline at end of file
diff --git a/OpSecurity V3/src/main/resources/opWhitelist.yml b/OpSecurity V3/src/main/resources/opWhitelist.yml
deleted file mode 100644
index b36bd9c..0000000
--- a/OpSecurity V3/src/main/resources/opWhitelist.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-opWhitelist:
- enable: false
- playerMustBeOnlineToOp: true
- noOpPlayerDeop:
- enable: true
- playerSendMessage: true
- noOpPlayerKick:
- enable: true
- customCommands:
- enable: false
- commands:
- - kick [player] &4You have op but are not authorized to do so, that's why you
- were kicked!
- whitelist:
- player1:
- name: 'PlayerName'
- uuid: '00000000000000000000000000000000'
- player2:
- name: 'PlayerName'
- uuid: '00000000000000000000000000000000'
\ No newline at end of file
diff --git a/OpSecurity V3/src/main/resources/permissionWhitelist.yml b/OpSecurity V3/src/main/resources/permissionWhitelist.yml
deleted file mode 100644
index 06c68f1..0000000
--- a/OpSecurity V3/src/main/resources/permissionWhitelist.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-permissionWhitelist:
- enable: false
- playerWithPermissionKick: true
- permissions:
- - '*'
- - opsecurity.admin
- customCommands:
- enable: false
- commands:
- - lp user [player] permission unset *
- - lp user [player] permission unset opsecurity.admin
- whitelist:
- player1:
- name: 'PlayerName'
- uuid: '00000000000000000000000000000000'
- player2:
- name: 'PlayerName'
- uuid: '00000000000000000000000000000000'
diff --git a/OpSecurity V3/src/main/resources/plugin.yml b/OpSecurity V3/src/main/resources/plugin.yml
index d9766c1..936db6c 100644
--- a/OpSecurity V3/src/main/resources/plugin.yml
+++ b/OpSecurity V3/src/main/resources/plugin.yml
@@ -1,4 +1,5 @@
name: T2C-OPSecurity
+provides: [OPSecurity]
version: '${project.version}'
main: net.t2code.opsecurity.system.Main
api-version: 1.13