Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>me.victorgamer15</groupId>
<artifactId>BrandBlocker</artifactId>
<version>1.9.2</version>
<version>1.9.3-1.21.8</version>
<packaging>jar</packaging>

<name>BrandBlocker</name>
Expand Down Expand Up @@ -69,7 +69,7 @@
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21.7-R0.1-SNAPSHOT</version>
<version>1.21.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
Expand Down
71 changes: 28 additions & 43 deletions src/main/java/dev/victormenacho/brandblocker/BrandBlocker.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, String> 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);
}
Expand All @@ -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<String> iterator = getConfig().getStringList("blocked-brands").iterator();

Expand All @@ -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;

Expand All @@ -112,15 +99,15 @@ public void run() {
return;
}
}
}.runTaskLater(this, 20L); // Delay of 20 ticks (1 second)
}.runTaskLater(this, 20L);
}

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
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»");
Expand All @@ -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();
}

}
Loading