Skip to content
Open
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
28 changes: 21 additions & 7 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,22 @@
<id>viaversion-repo</id>
<url>https://repo.viaversion.com</url>
</repository>
<repository>
<id>papermc</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<repository>
<id>codemc-releases</id>
<url>https://repo.codemc.io/repository/maven-releases/</url>
</repository>
<repository>
<id>codemc-snapshots</id>
<url>https://repo.codemc.io/repository/maven-snapshots/</url>
</repository>
<repository>
<id>papermc</id>
<url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
</repositories>

<dependencies>
Expand All @@ -50,6 +58,12 @@
<version>5.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.retrooper</groupId>
<artifactId>packetevents-spigot</artifactId>
<version>2.9.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.viaversion</groupId>
<artifactId>viaversion-api</artifactId>
Expand All @@ -65,13 +79,13 @@
<dependency>
<groupId>com.velocitypowered</groupId>
<artifactId>velocity-api</artifactId>
<version>3.3.0-SNAPSHOT</version>
<version>3.4.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>me.carleslc.Simple-YAML</groupId>
<groupId>com.github.Carleslc.Simple-YAML</groupId>
<artifactId>Simple-Yaml</artifactId>
<version>1.8</version>
<version>1.8.4</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
Expand Down
116 changes: 111 additions & 5 deletions src/main/java/ecb/ajneb97/spigot/EasyCommandBlocker.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import ecb.ajneb97.spigot.listeners.PlayerListener;
import ecb.ajneb97.spigot.listeners.PlayerListenerNew;
import ecb.ajneb97.spigot.managers.BungeeMessagingManager;
import ecb.ajneb97.spigot.managers.PacketEventsManager;
import ecb.ajneb97.spigot.managers.PacketManager;
import ecb.ajneb97.spigot.managers.ProtocolLibManager;
import ecb.ajneb97.spigot.managers.ViaVersionManager;
import ecb.ajneb97.spigot.utils.MessagesUtils;
Expand All @@ -23,25 +25,46 @@ public class EasyCommandBlocker extends JavaPlugin {
private PluginDescriptionFile pdfFile = getDescription();
public String version = pdfFile.getVersion();
public static ServerVersion serverVersion;
private ProtocolLibManager protocolLibManager;

private PacketManager packetManager;
private ViaVersionManager viaVersionManager;
private BungeeMessagingManager bungeeMessagingManager;
private CommandsManager commandsManager;
private ConfigManager configManager;
private UpdateCheckerManager updateCheckerManager;

@Override
public void onLoad() {
// Initialize packet manager early for PacketEvents
initializePacketManager();
}

public void onEnable(){
setVersion();

this.configManager = new ConfigManager(this.getDataFolder().toPath(),"config.yml","config.yml",false);
this.configManager.registerConfig();
this.configManager.checkMessagesUpdate();

// Initialize packet manager if not already done in onLoad
if(packetManager == null) {
initializePacketManager();
}

commandsManager = new CommandsManager(configManager.getConfig());
registerCommands();
registerEvents();

bungeeMessagingManager = new BungeeMessagingManager(this);
protocolLibManager = new ProtocolLibManager(this);
viaVersionManager = new ViaVersionManager(this);

// Log packet manager status
if(packetManager != null && packetManager.isEnabled()) {
Bukkit.getConsoleSender().sendMessage(MessagesUtils.getColoredMessage(prefix+" &aPacket manager initialized: " + packetManager.getLibraryName()));
} else {
Bukkit.getConsoleSender().sendMessage(MessagesUtils.getColoredMessage(prefix+" &cNo packet manager available - tab completion blocking disabled"));
}

Bukkit.getConsoleSender().sendMessage(MessagesUtils.getColoredMessage(prefix+" &eHas been enabled! &fVersion: "+version));
Bukkit.getConsoleSender().sendMessage(MessagesUtils.getColoredMessage(prefix+" &eThanks for using my plugin! &f~Ajneb97"));

Expand All @@ -50,12 +73,79 @@ public void onEnable(){
}

public void onDisable(){
// Close packet manager
if(packetManager != null) {
packetManager.terminate();
}

Bukkit.getConsoleSender().sendMessage(MessagesUtils.getColoredMessage(prefix+" &eHas been disabled! &fVersion: "+version));
}

/**
* Initialize the appropriate packet manager based on configuration
*/
private void initializePacketManager() {
String packetLibrary = "auto"; // default value

// Try to get configuration if available
if(configManager != null && configManager.getConfig() != null) {
packetLibrary = configManager.getConfig().getString("packet_library", "auto");
}

PacketManager protocolLibManager = null;
PacketManager packetEventsManager = null;

// Initialize managers based on availability
if(!"packetevents".equals(packetLibrary)) {
try {
protocolLibManager = new ProtocolLibManager(this);
} catch (Exception e) {
getLogger().info("ProtocolLib not available: " + e.getMessage());
}
}

if(!"protocollib".equals(packetLibrary)) {
try {
packetEventsManager = new PacketEventsManager(this);
} catch (Exception e) {
getLogger().info("PacketEvents not available: " + e.getMessage());
}
}

// Choose the appropriate manager
switch(packetLibrary.toLowerCase()) {
case "protocollib":
if(protocolLibManager != null && protocolLibManager.isEnabled()) {
this.packetManager = protocolLibManager;
} else {
getLogger().warning("ProtocolLib was requested but is not available");
}
break;
case "packetevents":
if(packetEventsManager != null && packetEventsManager.isEnabled()) {
this.packetManager = packetEventsManager;
} else {
getLogger().warning("PacketEvents was requested but is not available");
}
break;
case "auto":
default:
// Prefer ProtocolLib if available, fallback to PacketEvents
if(protocolLibManager != null && protocolLibManager.isEnabled()) {
this.packetManager = protocolLibManager;
} else if(packetEventsManager != null && packetEventsManager.isEnabled()) {
this.packetManager = packetEventsManager;
} else {
getLogger().warning("Neither ProtocolLib nor PacketEvents is available for tab completion blocking");
}
break;
}
}

public void setVersion(){
String packageName = Bukkit.getServer().getClass().getPackage().getName();
String bukkitVersion = Bukkit.getServer().getBukkitVersion().split("-")[0];

switch(bukkitVersion){
case "1.20.5":
case "1.20.6":
Expand Down Expand Up @@ -105,8 +195,24 @@ public void registerEvents() {
}
}

public ProtocolLibManager getProtocolLibManager() {
return protocolLibManager;
/**
* Get the active packet manager
* @return the active packet manager (ProtocolLib or PacketEvents)
*/
public PacketManager getPacketManager() {
return packetManager;
}

/**
* @deprecated Use getPacketManager() instead. This method is kept for backward compatibility.
* @return the packet manager if it's PacketEventsManager, null otherwise
*/
@Deprecated
public PacketEventsManager getPacketEventsManager() {
if(packetManager instanceof PacketEventsManager) {
return (PacketEventsManager) packetManager;
}
return null;
}

public ViaVersionManager getViaVersionManager() {
Expand Down Expand Up @@ -140,4 +246,4 @@ public void updateMessage(UpdateCheckerResult result){
public ConfigManager getConfigManager() {
return configManager;
}
}
}
Loading