88import org .bukkit .event .EventHandler ;
99import org .bukkit .event .Listener ;
1010import org .bukkit .event .player .PlayerJoinEvent ;
11- import org .bukkit .event .player .PlayerQuitEvent ;
1211import org .bukkit .plugin .java .JavaPlugin ;
13- import org .bukkit .plugin .messaging .PluginMessageListener ;
1412import org .bukkit .scheduler .BukkitRunnable ;
1513
16- import java .nio .charset .StandardCharsets ;
17- import java .util .HashMap ;
1814import java .util .Iterator ;
1915import java .util .Objects ;
2016
21- public class BrandBlocker extends JavaPlugin implements PluginMessageListener , Listener {
17+ public class BrandBlocker extends JavaPlugin implements Listener {
2218
2319 public String prefix ;
24- public final String version = Bukkit .getBukkitVersion ().split ("-" )[0 ].split ("\\ ." )[1 ];
25- public HashMap <String , String > player_brands = new HashMap <>();
20+ public final String version = Bukkit .getBukkitVersion ().split ("-" )[0 ];
2621
2722 @ Override
2823 public void onEnable () {
2924 saveDefaultConfig ();
3025 prefix = ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("prefix" ));
31- getLogger ().info ("Server running version 1." +version );
32-
33- if (Integer .parseInt (version ) < 13 ) {
34- Bukkit .getMessenger ().registerIncomingPluginChannel (this , "MC|Brand" , this );
35- getLogger ().info ("Registered 1.12- listener" );
36- } else {
37- Bukkit .getMessenger ().registerIncomingPluginChannel (this , "minecraft:brand" , this );
38- getLogger ().info ("Registered 1.13+ listener" );
39- }
26+ getLogger ().info ("Server running version 1." + version );
4027
4128 Bukkit .getServer ().getPluginManager ().registerEvents (this , this );
4229 }
@@ -45,24 +32,24 @@ public void onEnable() {
4532 public void onJoin (PlayerJoinEvent e ) {
4633 final Player p = e .getPlayer ();
4734
48- getLogger ().info ("Player '" + p .getName () + "' joined." );
35+ getLogger ().info (ChatColor . GOLD + "Player '" + p .getName () + "' joined." );
4936
5037 if (getConfig ().getBoolean ("geyser-support" ) && p .getName ().contains (Objects .requireNonNull (getConfig ().getString ("geyser-prefix" )))) {
51- getLogger ().info ("Player '" + p .getName () + "' matches Geyser prefix. Skipping checks." );
38+ getLogger ().info (ChatColor . GOLD + "Player '" + p .getName () + "' matches Geyser prefix. Skipping checks." );
5239 return ;
5340 }
5441
55- // Introduce a delay to ensure the client brand is registered
5642 new BukkitRunnable () {
5743 @ Override
5844 public void run () {
59- if (!player_brands .containsKey (p .getName ())) {
60- getLogger ().warning ("No brand detected for player '" + p .getName () + "'. Ensure the client brand is being registered correctly." );
45+ final String brand = p .getClientBrandName ();
46+
47+ if (brand == null || brand .isEmpty ()) {
48+ getLogger ().warning (ChatColor .RED + "No brand detected for player '" + p .getName () + "'." );
6149 return ;
6250 }
6351
64- final String brand = player_brands .get (p .getName ());
65- getLogger ().info ("Player '" + p .getName () + "' is using brand '" + brand + "'." );
52+ getLogger ().info (ChatColor .GOLD + "Player '" + p .getName () + "' is using brand '" + brand + "'." );
6653
6754 final Iterator <String > iterator = getConfig ().getStringList ("blocked-brands" ).iterator ();
6855
@@ -79,13 +66,13 @@ public void run() {
7966
8067 if (blacklisted ) {
8168 if (p .hasPermission ("brandblocker.bypass" )) {
82- getLogger ().info ("Player '" + p .getName () + "' has bypass permission. Skipping kick." );
69+ getLogger ().info (ChatColor . GOLD + "Player '" + p .getName () + "' has bypass permission. Skipping kick." );
8370 return ;
8471 }
8572
8673 String kickCmd = getConfig ().getString ("kick-command" );
8774 Bukkit .dispatchCommand (Bukkit .getConsoleSender (), kickCmd .replace ("%player%" , p .getName ()).replace ("%brand%" , brand ));
88- getLogger ().info (getConfig ().getString ("console-log" ).replace ("%player%" , p .getName ()).replace ("%brand%" , brand ));
75+ getLogger ().info (ChatColor . GOLD + getConfig ().getString ("console-log" ).replace ("%player%" , p .getName ()).replace ("%brand%" , brand ));
8976 }
9077 return ;
9178
@@ -112,15 +99,15 @@ public void run() {
11299 return ;
113100 }
114101 }
115- }.runTaskLater (this , 20L ); // Delay of 20 ticks (1 second)
102+ }.runTaskLater (this , 20L );
116103 }
117104
118105 @ Override
119106 public boolean onCommand (CommandSender sender , Command command , String label , String [] args ) {
120107 if (label .equalsIgnoreCase ("brandblocker" )) {
121108 if (args .length == 0 ) {
122109 sender .sendMessage ("§4§m--------------------------" );
123- sender .sendMessage ("§c§lBrandBlocker §7v" + this .getDescription ().getVersion ());
110+ sender .sendMessage ("§c§lBrandBlocker §7v" + this .getDescription ().getVersion ());
124111 sender .sendMessage ("§7by Menacho" );
125112 sender .sendMessage ("§7" );
126113 sender .sendMessage ("§cUsage §4»" );
@@ -130,43 +117,41 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
130117 } else {
131118 if (args [0 ].equalsIgnoreCase ("check" )) {
132119 if (sender .hasPermission ("brandblocker.usage" )) {
133- if (!( args .length > 1 ) ) {
134- sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("specify-player-name" )));
120+ if (args .length <= 1 ) {
121+ sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("specify-player-name" )));
135122 } else {
136- if (player_brands .containsKey (args [1 ])) {
137- sender .sendMessage (prefix +ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("check-succesful" )).replace ("%player%" , args [1 ]).replace ("%brand%" , player_brands .get (args [1 ])));
123+ Player target = Bukkit .getPlayerExact (args [1 ]);
124+ if (target != null && target .isOnline ()) {
125+ String brand = target .getClientBrandName ();
126+ String msg = ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("check-succesful" ))
127+ .replace ("%player%" , args [1 ])
128+ .replace ("%brand%" , brand != null ? brand : "unknown" );
129+ sender .sendMessage (prefix + msg );
138130 } else {
139- sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("check-failed" )).replace ("%player%" , args [1 ]));
131+ sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("check-failed" )).replace ("%player%" , args [1 ]));
140132 }
141133 }
142134 } else {
143- sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("no-permission" )));
135+ sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("no-permission" )));
144136 }
145137 } else if (args [0 ].equalsIgnoreCase ("reload" )) {
146138 if (sender .hasPermission ("brandblocker.usage" )) {
147139 reloadConfig ();
148140 prefix = ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("prefix" ));
149- sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("config-reload" )));
141+ sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("config-reload" )));
150142 } else {
151- sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("no-permission" )));
143+ sender .sendMessage (prefix + ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("no-permission" )));
152144 }
153145 }
154146 }
155- return false ;
147+ return true ;
156148 }
157149 return false ;
158150 }
159151
160- @ Override
161- public void onPluginMessageReceived (String channel , Player p , byte [] msg ) {
162- final String brand = new String (msg , StandardCharsets .UTF_8 ).substring (1 );
163- player_brands .put (p .getName (), brand );
164- }
165-
166152 @ Override
167153 public void onDisable () {
168154 // Plugin shutdown logic
169- player_brands .clear ();
170155 }
171156
172157}
0 commit comments