feat: chat channel system (/join /leave /channel)
- config-driven channels in config/channels.yml (global, local, staff, trade) with emoji, colors, prefix, radius, cooldowns, permissions and aliases - Channel record + ChannelConfig loader wired into ConfigManager (reload supported) - ChannelService (api) + ConcurrentHashMap-backed ChannelServiceImpl, joined in ServiceRegistry; default channel join treated as 'not in channel' - JoinChannelCommand / LeaveChannelCommand / ChannelCommand (+ tab completion), registered in CommandManager; plugin.yml commands + permissions - ChatEventListener routes AsyncChatEvent to the active channel: per-channel cooldown, local-radius viewer filtering, channel-aware renderer - EnhancedChatRenderer supports Channel overload (emojiFor/prefixText/channelColor) - ChannelServiceImplTest covering join/leave/permissions/aliases
This commit is contained in:
parent
689ab1a9ae
commit
a822c91637
17 changed files with 821 additions and 12 deletions
|
|
@ -8,7 +8,10 @@ import com.loki.lochat.commands.admin.chat.ClearChatCommand;
|
|||
import com.loki.lochat.commands.admin.chat.ClearChatConfigCommand;
|
||||
import com.loki.lochat.commands.admin.system.LoChatCommand;
|
||||
import com.loki.lochat.commands.admin.system.ReloadConfigCommand;
|
||||
import com.loki.lochat.commands.chat.ChannelCommand;
|
||||
import com.loki.lochat.commands.chat.GlobalChatCommand;
|
||||
import com.loki.lochat.commands.chat.JoinChannelCommand;
|
||||
import com.loki.lochat.commands.chat.LeaveChannelCommand;
|
||||
import com.loki.lochat.commands.chat.LocalChatCommand;
|
||||
import com.loki.lochat.commands.messaging.IgnoreCommand;
|
||||
import com.loki.lochat.commands.messaging.IgnoreListCommand;
|
||||
|
|
@ -54,6 +57,11 @@ public class CommandManager {
|
|||
reg("g", new GlobalChatCommand(plugin));
|
||||
reg("l", new LocalChatCommand(plugin));
|
||||
|
||||
// ── Каналы ─────────────────────────────────────────────────────────────
|
||||
regTab("join", new JoinChannelCommand(plugin));
|
||||
reg("leave", new LeaveChannelCommand(plugin));
|
||||
regTab("channel", new ChannelCommand(plugin));
|
||||
|
||||
// ── Личные сообщения / игнор ──────────────────────────────────────────
|
||||
reg("msg", new MsgCommand(plugin));
|
||||
reg("reply", new ReplyCommand(plugin));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue