a822c91637
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
2026-08-09 21:31:11 +02:00
689ab1a9ae
feat: anti-swear obfuscation bypass + filter statistics
...
- SwearNormalizer: expanded leet/lookalike map (q→р, digits), strips separators inside
words, collapses repeated letters; single source of truth for AhoCorasick
- SwearFilter: detects obfuscated profanity on normalized text, masks tolerant matches
in replace mode via tolerant word patterns
- FilterStatistics: per-filter block counters -> /lochat filterstats subcommand
- tests: SwearNormalizerTest, FilterStatisticsTest
2026-08-09 21:17:18 +02:00
cda89c78e4
fix: carry-over fixes — per-type cooldowns, PM cooldown, nickname persistence, thread-safe deques
...
- PlayerServiceImpl: separate cooldown map per chat type (fixes cross-blocking between local chat and RP commands)
- PrivateMessageServiceImpl: enforce chat.pm.cooldown (honors chat.bypass.cooldown)
- NickServiceImpl: persist nicknames async on every change/reset
- FloodFilter/SpamFilter: ConcurrentLinkedDeque instead of ArrayDeque
- tests: PlayerServiceCooldownTest
2026-08-09 21:08:58 +02:00
b1b0c9082b
fix: critical fixes from code review — async translation, atomic persistence, unified chat pipeline, config key alignment
2026-08-09 21:04:07 +02:00
42ebac890c
feat: persistence util, PM DRY, Discord rate limiter, missing permissions in plugin.yml
2026-07-05 15:17:15 +02:00
d3d87c34e0
chore: cleanup configs, docs, checkstyle, remove dead deps
2026-07-05 11:38:24 +02:00
2d79d2a91d
chore: update .gitignore and build.gradle.kts for local server testing
...
- Added entries to .gitignore for local Paper test server and API documentation.
- Included the run-paper plugin in build.gradle.kts for local server execution.
- Configured runServer task with Minecraft version 1.21.4 for testing.
2026-04-01 16:09:15 +02:00
d1d2b93742
fix all
2026-03-16 12:43:52 +01:00
fe64b3d51f
fix command and refactoring config
2026-03-10 16:58:10 +01:00
102341bb2c
Complete LoHub implementation: ETAP 4-10 (Custom Items, Launchpad, Double Jump, Player Hider, Scoreboard, Tablist, Announcements)
2026-02-24 00:19:05 +01:00
6a4c8a7886
feat: LoHub Action system + Join system implementation
2026-02-23 17:27:34 +01:00
212640a64e
docs: update TODO.md with completed features
2025-12-30 21:19:39 +01:00
252b0a60db
Initial commit: LoChat v1.0.0 with Gradient module
2025-12-29 14:57:49 +01:00