diff --git a/pom.xml b/pom.xml index ba8b88b..6ea1dda 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.victorgamer15 BrandBlocker - 1.9.2 + 1.9.3-1.21.8 jar BrandBlocker @@ -69,7 +69,7 @@ io.papermc.paper paper-api - 1.21.7-R0.1-SNAPSHOT + 1.21.8-R0.1-SNAPSHOT provided diff --git a/src/main/java/dev/victormenacho/brandblocker/BrandBlocker.java b/src/main/java/dev/victormenacho/brandblocker/BrandBlocker.java index e0960f2..26bb233 100644 --- a/src/main/java/dev/victormenacho/brandblocker/BrandBlocker.java +++ b/src/main/java/dev/victormenacho/brandblocker/BrandBlocker.java @@ -8,35 +8,22 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.plugin.messaging.PluginMessageListener; import org.bukkit.scheduler.BukkitRunnable; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; import java.util.Iterator; import java.util.Objects; -public class BrandBlocker extends JavaPlugin implements PluginMessageListener, Listener { +public class BrandBlocker extends JavaPlugin implements Listener { public String prefix; - public final String version = Bukkit.getBukkitVersion().split("-")[0].split("\\.")[1]; - public HashMap player_brands = new HashMap<>(); + public final String version = Bukkit.getBukkitVersion().split("-")[0]; @Override public void onEnable() { saveDefaultConfig(); prefix = ChatColor.translateAlternateColorCodes('&', getConfig().getString("prefix")); - getLogger().info("Server running version 1."+version); - - if (Integer.parseInt(version) < 13) { - Bukkit.getMessenger().registerIncomingPluginChannel(this, "MC|Brand", this); - getLogger().info("Registered 1.12- listener"); - } else { - Bukkit.getMessenger().registerIncomingPluginChannel(this, "minecraft:brand", this); - getLogger().info("Registered 1.13+ listener"); - } + getLogger().info("Server running version 1." + version); Bukkit.getServer().getPluginManager().registerEvents(this, this); } @@ -45,24 +32,24 @@ public void onEnable() { public void onJoin(PlayerJoinEvent e) { final Player p = e.getPlayer(); - getLogger().info("Player '" + p.getName() + "' joined."); + getLogger().info(ChatColor.GOLD + "Player '" + p.getName() + "' joined."); if (getConfig().getBoolean("geyser-support") && p.getName().contains(Objects.requireNonNull(getConfig().getString("geyser-prefix")))) { - getLogger().info("Player '" + p.getName() + "' matches Geyser prefix. Skipping checks."); + getLogger().info(ChatColor.GOLD + "Player '" + p.getName() + "' matches Geyser prefix. Skipping checks."); return; } - // Introduce a delay to ensure the client brand is registered new BukkitRunnable() { @Override public void run() { - if (!player_brands.containsKey(p.getName())) { - getLogger().warning("No brand detected for player '" + p.getName() + "'. Ensure the client brand is being registered correctly."); + final String brand = p.getClientBrandName(); + + if (brand == null || brand.isEmpty()) { + getLogger().warning(ChatColor.RED + "No brand detected for player '" + p.getName() + "'."); return; } - final String brand = player_brands.get(p.getName()); - getLogger().info("Player '" + p.getName() + "' is using brand '" + brand + "'."); + getLogger().info(ChatColor.GOLD + "Player '" + p.getName() + "' is using brand '" + brand + "'."); final Iterator iterator = getConfig().getStringList("blocked-brands").iterator(); @@ -79,13 +66,13 @@ public void run() { if (blacklisted) { if (p.hasPermission("brandblocker.bypass")) { - getLogger().info("Player '" + p.getName() + "' has bypass permission. Skipping kick."); + getLogger().info(ChatColor.GOLD + "Player '" + p.getName() + "' has bypass permission. Skipping kick."); return; } String kickCmd = getConfig().getString("kick-command"); Bukkit.dispatchCommand(Bukkit.getConsoleSender(), kickCmd.replace("%player%", p.getName()).replace("%brand%", brand)); - getLogger().info(getConfig().getString("console-log").replace("%player%", p.getName()).replace("%brand%", brand)); + getLogger().info(ChatColor.GOLD + getConfig().getString("console-log").replace("%player%", p.getName()).replace("%brand%", brand)); } return; @@ -112,7 +99,7 @@ public void run() { return; } } - }.runTaskLater(this, 20L); // Delay of 20 ticks (1 second) + }.runTaskLater(this, 20L); } @Override @@ -120,7 +107,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St if (label.equalsIgnoreCase("brandblocker")) { if (args.length == 0) { sender.sendMessage("§4§m--------------------------"); - sender.sendMessage("§c§lBrandBlocker §7v"+this.getDescription().getVersion()); + sender.sendMessage("§c§lBrandBlocker §7v" + this.getDescription().getVersion()); sender.sendMessage("§7by Menacho"); sender.sendMessage("§7"); sender.sendMessage("§cUsage §4»"); @@ -130,43 +117,41 @@ public boolean onCommand(CommandSender sender, Command command, String label, St } else { if (args[0].equalsIgnoreCase("check")) { if (sender.hasPermission("brandblocker.usage")) { - if (!(args.length > 1)) { - sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', getConfig().getString("specify-player-name"))); + if (args.length <= 1) { + sender.sendMessage(prefix + ChatColor.translateAlternateColorCodes('&', getConfig().getString("specify-player-name"))); } else { - if (player_brands.containsKey(args[1])) { - sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', getConfig().getString("check-succesful")).replace("%player%", args[1]).replace("%brand%", player_brands.get(args[1]))); + Player target = Bukkit.getPlayerExact(args[1]); + if (target != null && target.isOnline()) { + String brand = target.getClientBrandName(); + String msg = ChatColor.translateAlternateColorCodes('&', getConfig().getString("check-succesful")) + .replace("%player%", args[1]) + .replace("%brand%", brand != null ? brand : "unknown"); + sender.sendMessage(prefix + msg); } else { - sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', getConfig().getString("check-failed")).replace("%player%", args[1])); + sender.sendMessage(prefix + ChatColor.translateAlternateColorCodes('&', getConfig().getString("check-failed")).replace("%player%", args[1])); } } } else { - sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', getConfig().getString("no-permission"))); + sender.sendMessage(prefix + ChatColor.translateAlternateColorCodes('&', getConfig().getString("no-permission"))); } } else if (args[0].equalsIgnoreCase("reload")) { if (sender.hasPermission("brandblocker.usage")) { reloadConfig(); prefix = ChatColor.translateAlternateColorCodes('&', getConfig().getString("prefix")); - sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', getConfig().getString("config-reload"))); + sender.sendMessage(prefix + ChatColor.translateAlternateColorCodes('&', getConfig().getString("config-reload"))); } else { - sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', getConfig().getString("no-permission"))); + sender.sendMessage(prefix + ChatColor.translateAlternateColorCodes('&', getConfig().getString("no-permission"))); } } } - return false; + return true; } return false; } - @Override - public void onPluginMessageReceived(String channel, Player p, byte[] msg) { - final String brand = new String(msg, StandardCharsets.UTF_8).substring(1); - player_brands.put(p.getName(), brand); - } - @Override public void onDisable() { // Plugin shutdown logic - player_brands.clear(); } }