How anlingyi/xechat-idea works
XEChat-Idea is an IntelliJ chat plugin paired with a Netty server and shared protocol models. A user connects from the plugin, logs in, then sends chat, game-room, command, or tool requests; the server handles requests and returns responses for the plugin to dispatch to UI handlers. The README also documents online games, weather, reading, and browsing. The graph preserves these product branches; several are represented at their enclosing source directories because their implementation was not sampled, so their internal wiring is intentionally omitted.
Main entry points: handler Action Handlers · XEChatClientHandler.java Client Handler · RequestHandler.java Request Handling · XEChatClient.java Chat Client
Components 21
IDE Plugin
- Chat Client
xechat-plugin/src/main/java/cn/xeblog/plugin/client/XEChatClient.java - Client Handler
xechat-plugin/src/main/java/cn/xeblog/plugin/handler/XEChatClientHandler.java - Response Dispatch
xechat-plugin/src/main/java/cn/xeblog/plugin/handler/ResponseHandler.java - User Actions
xechat-plugin/src/main/java/cn/xeblog/plugin/action - Chat UI
xechat-plugin/src/main/java/cn/xeblog/plugin/ui/MainWindow.java - Plugin State
xechat-plugin/src/main/java/cn/xeblog/plugin/persistence/PersistenceService.java
Chat Server
- Chat Server
xechat-server/src/main/java/cn/xeblog/server/XEChatServer.java - Network Channels
xechat-server/src/main/java/cn/xeblog/server/handler - Request Handling
xechat-server/src/main/java/cn/xeblog/server/handler/RequestHandler.java - Action Handlers
xechat-server/src/main/java/cn/xeblog/server/action/handler - Online Users
xechat-server/src/main/java/cn/xeblog/server/cache/UserCache.java - Game Rooms
xechat-server/src/main/java/cn/xeblog/server/cache/GameRoomCache.java - Response History
xechat-server/src/main/java/cn/xeblog/server/service/DefaultResponseHistoryService.java
Shared Protocol
- Messages & DTOs
xechat-commons/src/main/java/cn/xeblog/commons/entity
Product Features
- Games & Rooms
xechat-plugin/src/main/java/cn/xeblog/plugin/game - Game Messages
xechat-commons/src/main/java/cn/xeblog/commons/entity/game - Weather Lookup
xechat-server/src/main/java/cn/xeblog/server/service/WeatherService.java - Reading Tool
xechat-plugin/src/main/java/cn/xeblog/plugin/tools/read - Embedded Browser
xechat-plugin/src/main/java/cn/xeblog/plugin/tools/browser - Server Reactions
xechat-server/src/main/java/cn/xeblog/server/action/handler/react
Other components
- IDE User
Connections 22
- IDE User → Chat UI: uses
- Chat Client → Client Handler: configures
- Client Handler → Network Channels: WebSocket traffic
- Chat Server → Network Channels: starts
- Network Channels → Request Handling: dispatches requests
- Request Handling → Action Handlers: routes actions
- Client Handler → Response Dispatch: dispatches responses
- Response Dispatch → Chat UI: updates UI
- User Actions → Chat Client: sends requests
- Client Handler → Messages & DTOs: exchanges messages
- Request Handling → Messages & DTOs: reads messages
- Action Handlers → Messages & DTOs: builds responses
- Action Handlers → Online Users: tracks users
- Action Handlers → Game Rooms: manages rooms
- Action Handlers → Response History: records responses
- User Actions → Games & Rooms: starts play
- Games & Rooms → Game Messages: sends room requests
- Action Handlers → Weather Lookup: handles weather requests
- IDE User → Reading Tool: uses
- IDE User → Embedded Browser: uses
- IDE User → Server Reactions: requests reactions
- Plugin State → Chat Client: restores state