diff --git a/pom.xml b/pom.xml
index 424c581..66ae93a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,14 +6,14 @@
net.noodles.pl
NoPluginsCommand
- 1.2
+ 1.4
jar
NoPluginsCommand
Blocks /plugin, /about, /version, and more!
- 1.8
+ 21
UTF-8
https://bghddevelopment.com
@@ -56,10 +56,6 @@
-
- papermc-repo
- https://papermc.io/repo/repository/maven-public/
-
sonatype
https://oss.sonatype.org/content/groups/public/
@@ -70,7 +66,7 @@
org.spigotmc
spigot-api
- 1.12-R0.1-SNAPSHOT
+ 1.21.3-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/net/noodles/pl/nopluginscommand/Color.java b/src/main/java/net/noodles/pl/nopluginscommand/Color.java
deleted file mode 100644
index b3b78bc..0000000
--- a/src/main/java/net/noodles/pl/nopluginscommand/Color.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package net.noodles.pl.nopluginscommand;
-
-import org.bukkit.ChatColor;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-public class Color {
-
- public static String translate(String source) {
- return ChatColor.translateAlternateColorCodes('&', source);
- }
-
- public static String translate(String player, String source) {
- source = translate(source);
- return translate(source);
- }
-
- public static List translate(List source) {
- return source.stream().map(Color::translate).collect(Collectors.toList());
- }
-}
diff --git a/src/main/java/net/noodles/pl/nopluginscommand/NoPluginsCommand.java b/src/main/java/net/noodles/pl/nopluginscommand/NoPluginsCommand.java
index 923813d..2fa3253 100644
--- a/src/main/java/net/noodles/pl/nopluginscommand/NoPluginsCommand.java
+++ b/src/main/java/net/noodles/pl/nopluginscommand/NoPluginsCommand.java
@@ -1,85 +1,26 @@
package net.noodles.pl.nopluginscommand;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
+import net.noodles.pl.nopluginscommand.listener.CommandListener;
+import net.noodles.pl.nopluginscommand.listener.ServerCommandsListener;
+import net.noodles.pl.nopluginscommand.util.UpdateChecker;
import org.bukkit.Bukkit;
-import org.bukkit.command.CommandSender;
-import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.plugin.java.JavaPlugin;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
public final class NoPluginsCommand extends JavaPlugin implements Listener {
- @Override
- public void onEnable() {
- getServer().getPluginManager().registerEvents(this, this);
- updateCheck(Bukkit.getConsoleSender());
+ public static JavaPlugin getPlugin() {
+ return plugin;
}
+ private static JavaPlugin plugin;
- public void updateCheck(CommandSender sender) {
- try {
- String urlString = "https://updatecheck.bghddevelopment.com";
- URL url = new URL(urlString);
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setRequestMethod("GET");
- connection.setRequestProperty("User-Agent", "Mozilla/5.0");
- BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
- String input;
- StringBuffer response = new StringBuffer();
- while ((input = reader.readLine()) != null) {
- response.append(input);
- }
- reader.close();
- JsonObject object = new JsonParser().parse(response.toString()).getAsJsonObject();
-
- if (object.has("plugins")) {
- JsonObject plugins = object.get("plugins").getAsJsonObject();
- JsonObject info = plugins.get("NoPluginCommand").getAsJsonObject();
- String version = info.get("version").getAsString();
- if (version.equals(getDescription().getVersion())) {
- sender.sendMessage(Color.translate("&aNoPluginCommand is on the latest version."));
- } else {
- sender.sendMessage(Color.translate(""));
- sender.sendMessage(Color.translate(""));
- sender.sendMessage(Color.translate("&cYour NoPluginCommand version is out of date!"));
- sender.sendMessage(Color.translate("&cWe recommend updating ASAP!"));
- sender.sendMessage(Color.translate(""));
- sender.sendMessage(Color.translate("&cYour Version: &e" + getDescription().getVersion()));
- sender.sendMessage(Color.translate("&aNewest Version: &e" + version));
- sender.sendMessage(Color.translate(""));
- sender.sendMessage(Color.translate(""));
- return;
- }
- return;
- } else {
- sender.sendMessage(Color.translate("&cWrong response from update API, contact plugin developer!"));
- return;
- }
- } catch (
- Exception ex) {
- sender.sendMessage(Color.translate("&cFailed to get updater check. (" + ex.getMessage() + ")"));
- return;
- }
- }
-
- @EventHandler
- public void onCommandUse(PlayerCommandPreprocessEvent event) {
- List commands = Arrays.asList("?", "pl", "about", "version", "ver", "plugins", "bukkit:?", "bukkit:pl", "bukkit:about", "bukkit:version", "bukkit:ver", "bukkit:plugins", "minecraft:pl", "minecraft:plugins", "minecraft:about", "minecraft:version", "minecraft:ver");
- commands.forEach(all -> {
- String[] arrCommand = event.getMessage().toLowerCase().split(" ", 2);
- if (arrCommand[0].equalsIgnoreCase("/" + all.toLowerCase())) {
- event.setCancelled(true);
- }
- });
+ @Override
+ public void onEnable() {
+ plugin = this;
+ getServer().getPluginManager().registerEvents(new CommandListener(), this);
+ getServer().getPluginManager().registerEvents(new ServerCommandsListener(), this);
+ UpdateChecker.updateCheck(Bukkit.getConsoleSender());
}
}
diff --git a/src/main/java/net/noodles/pl/nopluginscommand/listener/CommandListener.java b/src/main/java/net/noodles/pl/nopluginscommand/listener/CommandListener.java
new file mode 100644
index 0000000..f46208c
--- /dev/null
+++ b/src/main/java/net/noodles/pl/nopluginscommand/listener/CommandListener.java
@@ -0,0 +1,20 @@
+package net.noodles.pl.nopluginscommand.listener;
+
+import net.noodles.pl.nopluginscommand.util.CommandSet;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerCommandPreprocessEvent;
+
+public class CommandListener implements Listener {
+
+ @EventHandler
+ public void onCommandUse(PlayerCommandPreprocessEvent event) {
+ if (event.getPlayer().hasPermission("nopluginscommand.bypass"))
+ return;
+
+ String command = event.getMessage().split(" ", 2)[0].substring(1).toLowerCase();
+ if (CommandSet.set.contains(command))
+ event.setCancelled(true);
+ }
+
+}
diff --git a/src/main/java/net/noodles/pl/nopluginscommand/listener/ServerCommandsListener.java b/src/main/java/net/noodles/pl/nopluginscommand/listener/ServerCommandsListener.java
new file mode 100644
index 0000000..9ef7f22
--- /dev/null
+++ b/src/main/java/net/noodles/pl/nopluginscommand/listener/ServerCommandsListener.java
@@ -0,0 +1,18 @@
+package net.noodles.pl.nopluginscommand.listener;
+
+import net.noodles.pl.nopluginscommand.util.CommandSet;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerCommandSendEvent;
+
+public class ServerCommandsListener implements Listener {
+
+ @EventHandler
+ public void onServerCommandSend(PlayerCommandSendEvent event) {
+ if (event.getPlayer().hasPermission("nopluginscommand.bypass"))
+ return;
+
+ event.getCommands().removeAll(CommandSet.set);
+ }
+
+}
diff --git a/src/main/java/net/noodles/pl/nopluginscommand/util/CommandSet.java b/src/main/java/net/noodles/pl/nopluginscommand/util/CommandSet.java
new file mode 100644
index 0000000..6f72aa6
--- /dev/null
+++ b/src/main/java/net/noodles/pl/nopluginscommand/util/CommandSet.java
@@ -0,0 +1,10 @@
+package net.noodles.pl.nopluginscommand.util;
+
+import java.util.Arrays;
+import java.util.HashSet;
+
+public class CommandSet {
+
+ public static final HashSet set = new HashSet<>(Arrays.asList("?", "pl", "about", "version", "ver", "plugins", "bukkit:?", "bukkit:pl", "bukkit:about", "bukkit:version", "bukkit:ver", "bukkit:plugins", "minecraft:pl", "minecraft:plugins", "minecraft:about", "minecraft:version", "minecraft:ver"));
+
+}
diff --git a/src/main/java/net/noodles/pl/nopluginscommand/util/UpdateChecker.java b/src/main/java/net/noodles/pl/nopluginscommand/util/UpdateChecker.java
new file mode 100644
index 0000000..8165bff
--- /dev/null
+++ b/src/main/java/net/noodles/pl/nopluginscommand/util/UpdateChecker.java
@@ -0,0 +1,63 @@
+package net.noodles.pl.nopluginscommand.util;
+
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import net.noodles.pl.nopluginscommand.NoPluginsCommand;
+import org.bukkit.command.CommandSender;
+import org.bukkit.scheduler.BukkitRunnable;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URI;
+import java.net.URL;
+
+public class UpdateChecker {
+
+ public static void updateCheck(CommandSender sender) {
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ try {
+ String urlString = "https://updatecheck.bghddevelopment.com";
+ URL url = URI.create(urlString).toURL();
+ HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ connection.setRequestMethod("GET");
+ connection.setRequestProperty("User-Agent", "Mozilla/5.0");
+ BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+ String input;
+ StringBuilder response = new StringBuilder();
+ while ((input = reader.readLine()) != null) {
+ response.append(input);
+ }
+ reader.close();
+ JsonObject object = JsonParser.parseString(response.toString()).getAsJsonObject();
+
+ if (object.has("plugins")) {
+ JsonObject plugins = object.get("plugins").getAsJsonObject();
+ JsonObject info = plugins.get("NoPluginCommand").getAsJsonObject();
+ String version = info.get("version").getAsString();
+ if (version.equals(NoPluginsCommand.getPlugin().getDescription().getVersion())) {
+ sender.sendMessage("§aNoPluginCommand is on the latest version.");
+ } else {
+ sender.sendMessage("");
+ sender.sendMessage("");
+ sender.sendMessage("§cYour NoPluginCommand version is out of date!");
+ sender.sendMessage("§cWe recommend updating ASAP!");
+ sender.sendMessage("");
+ sender.sendMessage("§cYour Version: §e" + NoPluginsCommand.getPlugin().getDescription().getVersion());
+ sender.sendMessage("§aNewest Version: §e" + version);
+ sender.sendMessage("");
+ sender.sendMessage("");
+ }
+ } else {
+ sender.sendMessage("§cWrong response from update API, contact plugin developer!");
+ }
+ } catch (Exception ex) {
+ sender.sendMessage("§cFailed to get updater check. (" + ex.getMessage() + ")");
+ }
+ }
+ }.runTaskAsynchronously(NoPluginsCommand.getPlugin());
+ }
+
+}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index da7d029..00c6e5c 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,7 +1,11 @@
name: NoPluginsCommand
-version: 1.2
+version: ${project.version}
main: net.noodles.pl.nopluginscommand.NoPluginsCommand
authors: [BGHDDevelopmentLLC]
description: Blocks /plugin, /about, /version, and more!
website: https://bghddevelopment.com
-api-version: 1.18
+api-version: 1.20
+permissions:
+ nopluginscommand.bypass:
+ default: false
+ description: allows access to forbidden commands