MCPcopy Index your code
hub / github.com/anlingyi/xechat-idea

github.com/anlingyi/xechat-idea @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,633 symbols 4,984 edges 292 files 566 documented · 35%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

XEChat-Idea

Version 1.6.7-beta0

基于Netty的IDEA即时聊天插件:让你能够在IDEA里实现聊天、下棋、斗地主!(理论上支持JetBrains全系列开发工具🙂)

浏览器端:XEChat-Web

项目介绍

主要功能:

  • 即时聊天
  • 游戏对战
  • 待探索...

目前已实现:

游戏类

  • 五子棋(支持2人联机、人机对战,内置"人工制杖")
  • 斗地主(支持2~3人联机、人机对战)
  • 不贪吃蛇
  • 2048(作者 @浓睡不消残酒 ,感谢PR😊)
  • 数独(作者 @Speciallei ,感谢PR😊)
  • 推箱子(作者 @Speciallei ,感谢PR😊)
  • 中国象棋(支持2人联机、人机对战,作者 @15738383930 ,感谢PR😊)
  • 俄罗斯方块(作者 @SherlockerSun ,感谢PR😊)
  • 扫雷(作者 @SherlockerSun ,感谢PR😊)

工具类

了解更多...

项目结构

.
├── LICENSE
├── README.md
├── xechat-commons //公共模块
│   ├── pom.xml
│   └── src
├── xechat-plugin //IDEA插件端
│   ├── build.gradle
│   ├── gradle
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   ├── settings.gradle
│   └── src
└── xechat-server //服务端
    ├── pom.xml
    └── src

项目环境

服务端 & 公共模块

  • JDK8
  • Maven 3.6.x

IDEA 插件端

  • JDK11
  • Gradle 6.x

项目开发

运行 & 部署

提醒:公共模块需优先打包

# 进入公共模块根目录
cd xechat-commons
# 打包到本地仓库
mvn install

服务端

创建或调整日志目录 src/main/resources/logback.xml

<property name="ROOT_LOG_PATH" value="/var/log/xechat-server"/>

运行

直接运行主方法 XEChatServer.java

部署

# 进入服务端根目录
cd xechat-server
# 打包
mvn package
# 启动服务端
java -jar target/xechat-server-xxx.jar

启动参数:

  • 设置端口-p {端口号}
  • 设置敏感词文件-swfile {文件路径}
  • 设置和风天气-weather {和风api key}
  • 设置百度翻译-fyAppId {appId} -fyAppKey {appKey}
  • 设置ip2region文件-ipfile {文件路径}
  • 设置管理员令牌-token {令牌}
  • 指定外部配置文件-path {文件路径}
  • 开放WS协议-enableWS {true|false}

具体的外部配置文件信息请看:xechat-server/src/main/resources/config.setting

参考示例:

java -jar target/xechat-server-xxx.jar -p 1024 -swfile /Users/anlingyi/local/test/words.txt -weather {和风天气api key}

敏感词相关配置参考

和风天气相关配置参考

开放WS协议相关配置参考

IDEA插件端

修改IDEA版本

修改 build.gradle 配置文件,将 IDEA 版本号改为你想使用的版本(仅限开发调试阶段)

intellij {
    version '2021.3'
}

本地运行

Tasks > intellij > runIde

image.png

插件部署

提醒:修改服务端地址

进入到 cn.xeblog.plugin.client.XEChatClient ,修改以下变量值

    private static final String HOST = "localhost"; // 服务端IP
    private static final int PORT = 1024; // 服务端端口

打包

Tasks > build > assemble

image.png

打包完成后的文件 build/distributions/xechat-plugin-xxx.zip

安装

IDEA > Preferences > Plugins

image.png

选择打包后的文件安装 build/distributions/xechat-plugin-xxx.zip

安装体验

添加插件库 Plugins > 设置按钮 > Manage Plugin Repositories...

http://plugins.xeblog.cn

image.png

搜索 “xechat” 安装

image.png

如有条件,还请自行部署服务端。

Docker运行

感谢 @猎隼丶止戈 对此部分做的贡献 😊

镜像地址:https://hub.docker.com/r/anlingyi/xechat-server/tags

docker-compose.yml

version: '3'
services:
  xechat:
    image: anlingyi/xechat-server:1.6.7-beta
    container_name: xechat-server
    restart: always
    ports:
      - 1024:1024
      - 1025:1025
    volumes:
      - /home/xechat/logs:/var/log/xechat-server
      - /home/xechat/config/config.setting:/home/xechat/config/config.setting
      - /home/xechat/db:/home/xechat/db

公开你的鱼塘

如果你想公开你的鱼塘,请编辑项目中的 server_list.json 文件,添加上你的鱼塘信息,然后提交PR到这里,待我们审核通过后即可。

    {
        "name": "xxx", //鱼塘名
        "ip": "127.0.0.1", //你的服务器IP或域名
        "port": 1024 //端口号
    }

学习交流

感谢 @鹿儿岛 提供的QQ交流群 😊

如果大家对这个项目感兴趣,欢迎加入我们的交流群🎉

  • QQ群:754126966

Extension points exported contracts — how you extend this code

IPage (Interface)
@author LYF @date 2022-07-19 [10 implementers]
xechat-plugin/src/main/java/cn/xeblog/plugin/tools/read/page/IPage.java
ActionHandler (Interface)
@author anlingyi @date 2020/8/14 [11 implementers]
xechat-server/src/main/java/cn/xeblog/server/action/handler/ActionHandler.java
Status (Interface)
@author anlingyi @date 2020/6/2 [1 implementers]
xechat-commons/src/main/java/cn/xeblog/commons/enums/Status.java
CommandHandler (Interface)
@author anlingyi @date 2020/8/19 [12 implementers]
xechat-plugin/src/main/java/cn/xeblog/plugin/action/handler/command/CommandHandler.java
ReactHandler (Interface)
@author anlingyi @date 2022/9/19 8:43 AM [11 implementers]
xechat-server/src/main/java/cn/xeblog/server/action/handler/react/ReactHandler.java
IpConstants (Interface)
ip常量 @author nn200433 @date 2022年01月10日 0010 15:03:02
xechat-commons/src/main/java/cn/xeblog/commons/constants/IpConstants.java
MessageHandler (Interface)
@author anlingyi @date 2020/8/19 [11 implementers]
xechat-plugin/src/main/java/cn/xeblog/plugin/action/handler/message/MessageHandler.java
CityService (Interface)
城市信息 接口 @author nn200433 @date 2022-04-19 10:56:15 [2 implementers]
xechat-server/src/main/java/cn/xeblog/server/service/CityService.java

Core symbols most depended-on inside this repo

add
called by 637
xechat-plugin/src/main/java/cn/xeblog/plugin/game/ngsnake/model/Snake.java
get
called by 297
xechat-plugin/src/main/java/cn/xeblog/plugin/enums/Style.java
size
called by 112
xechat-plugin/src/main/java/cn/xeblog/plugin/game/ngsnake/model/Snake.java
showSimpleMsg
called by 99
xechat-plugin/src/main/java/cn/xeblog/plugin/action/ConsoleAction.java
getValue
called by 80
xechat-plugin/src/main/java/cn/xeblog/plugin/game/sudoku/algorithm/Grid.java
setText
called by 80
xechat-plugin/src/main/java/cn/xeblog/plugin/tools/read/ui/HardReadWidget.java
equals
called by 77
xechat-plugin/src/main/java/cn/xeblog/plugin/game/ngsnake/model/Point.java
setEnabled
called by 57
xechat-plugin/src/main/java/cn/xeblog/plugin/action/AliveAction.java

Shape

Method 1,307
Class 257
Enum 48
Interface 21

Languages

Java100%

Modules by API surface

xechat-plugin/src/main/java/cn/xeblog/plugin/game/landlords/LandlordsGame.java50 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/game/sudoku/algorithm/Grid.java39 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/game/gobang/Gobang.java39 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/game/AbstractGame.java36 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/game/gobang/ZhiZhangAIService.java34 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/game/box/PushBoxUI.java29 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/game/chess/GamePanel.java28 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/tools/AbstractPanelComponent.java26 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/action/ConsoleAction.java26 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/tools/read/entity/Book.java25 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/game/game2048/GameUI.java24 symbols
xechat-plugin/src/main/java/cn/xeblog/plugin/game/chess/GameLogic.java23 symbols

For agents

$ claude mcp add xechat-idea \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact