Add built-in mute system with /lmute and /lunmute commands

- Added MuteManager for handling mutes with persistence (mutes.json)
- Added /lmute <nick> <time> [-s] [reason] command
- Added /lunmute <nick> [-s] command
- Time formats: 1d, 2h, 30m, 60s, 0 for permanent
- -s flag for silent mute/unmute (no broadcast)
- Mute check integrated into ChatListener
- Removed LibertyBans API dependency (using built-in system)
This commit is contained in:
loki5512344 2026-01-03 12:20:35 +01:00
parent d44c5f811f
commit c6175d9d61
7 changed files with 524 additions and 85 deletions

View file

@ -29,6 +29,7 @@ public final class LoChat extends JavaPlugin {
private CustomCommandManager customCommandManager;
private GradientModule gradientModule;
private LibertyBansHook libertyBansHook;
private MuteManager muteManager;
@Override
public void onEnable() {
@ -47,6 +48,7 @@ public final class LoChat extends JavaPlugin {
mentionManager = new MentionManager(this);
spyManager = new SpyManager(this);
customCommandManager = new CustomCommandManager(this);
muteManager = new MuteManager(this);
chatManager = new ChatManager(this);
autoMessageManager = new AutoMessageManager(this);
@ -88,6 +90,9 @@ public final class LoChat extends JavaPlugin {
if (gradientModule != null) {
gradientModule.shutdown();
}
if (muteManager != null) {
muteManager.save();
}
getLogger().info("LoChat отключен!");
}
@ -106,6 +111,15 @@ public final class LoChat extends JavaPlugin {
LoChatCommand loChatCommand = new LoChatCommand(this);
getCommand("lochat").setExecutor(loChatCommand);
getCommand("lochat").setTabCompleter(loChatCommand);
// Команды мутов
MuteCommand muteCommand = new MuteCommand(this);
getCommand("lmute").setExecutor(muteCommand);
getCommand("lmute").setTabCompleter(muteCommand);
UnmuteCommand unmuteCommand = new UnmuteCommand(this);
getCommand("lunmute").setExecutor(unmuteCommand);
getCommand("lunmute").setTabCompleter(unmuteCommand);
}
public void reload() {
@ -183,4 +197,8 @@ public final class LoChat extends JavaPlugin {
return libertyBansHook;
}
public MuteManager getMuteManager() {
return muteManager;
}
}