lintx
本帖最后由 lintx 于 2020-12-4 19:28 编辑



YinwuChat
一款集成跨服聊天、跨BungeeCord聊天、web聊天、跨服at、跨服物品展示、RGB真彩色聊天
Q群互通、关键词屏蔽、游戏公告功能的聊天插件





*注意:如果你是从1.x版本升级到2.0版本,且在1.x版本时已经在使用Q群互通功能,那么你要在酷Q的HTTP API插件配置中,将ws_reverse_url后面加上/ws,比如你原来是ws://127.0.0.1:9000,那么现在就应该是ws://127.0.0.1:9000/ws
*注意:v2.1版本对配置文件的格式做了较大调整,为了使旧配置不丢失,虽然插件已经做了自动备份旧配置的功能,但还是建议在升级前手动备份一下旧版本的配置文件

说明

    YinwuChat原是为YinwuRealm制作的插件,作为服务器管理员及插件开发者,后将它开源并发表于mcbbs。
    YinwuChat同时是Bungeecord插件和Spigot插件,你需要在你的Bungee服务端和这个Bungee接入的所有的Spigot服务端都安装这个插件。
    YinwuChat开发的初衷即是为了使玩家在网页中也能和服务器中的玩家聊天,一开始本来是想依赖bukkitAPI开发的,但是由于服务器是BungeeCord群组服,在bukkitAPI中获取其他服务器的聊天内容不便,发送聊天内容更不便,所以转为BungeeCord插件,最后又改为BungeeCord、bukkit合作插件。



插件功能

  • 跨服聊天同步
  • 跨服私聊(/msg <玩家名> 消息)
  • 跨服@(聊天内容中输入想@的玩家的名字,或名字的前面一部分,不区分大小写)
  • 跨服物品展示(聊天内容中输入[i]即可将手中的物品发送到聊天栏,输入[i:x]可以展示背包中x对应的物品栏的物品,物品栏为0-8,然后从背包左上角从左至右从上至下为9-35,装备栏为36-39,副手为40,一条消息中可以展示多个物品)
  • WebSocket,开启WebSocket后配合YinwuChat-Web(Web客户端)可以实现web、游戏内聊天同步
  • 关键词屏蔽
  • 定时广播消息,支持悬浮提示、点击命令,支持分服务器发送。
  • 使用酷Q和酷Q HTTP API来实现Q群聊天同步
  • 聊天样式代码权限控制
  • 自定义聊天指令:可以自定义设置将玩家发送的聊天内容中一些内容替换为其他内容


配置文件

YinwuChat的配置文件主要分3块:Bungee端配置文件、Bungee端公告任务、Bukkit端配置文件。

Bungee端配置文件(config.yml)


Bungee端公告任务(tasks.yml):


Bukkit端配置文件(config.yml):

*注意:1.14版本的papi不支持%player_server%了

Q群聊天互通配置:


跨bc聊天互通配置:


效果截图


命令

Bungeecord端命令:


Bukkit端命令:


权限
Bungeecord端权限:


Bukkit端权限:


玩家使用说明

@某个玩家

当聊天消息中含有@符号,并后面跟着某个玩家的名字的前面一部分或完整名字时,即可@该玩家,该玩家将收到一条@提示
@所有人
@所有人可以@整个服务器所有人(不包括Web端和Q群),或者分服务器@该服务器所有人(不包括Web端和Q群) 具体使用方法为: 假如配置文件中的atAllKey是默认的all,那么聊天内容中含有@all时即可@整个服务器的人(all后面不能紧接着英文或数字,可以是中文、空格等) 假如你有一个服务器名字为lobby,那么聊天内容中含有@lall或@lobbyall时,即可@lobby服务器的所有人(即服务器名只需要输入前面部分即可,该服务器名为BungeeCord配置文件中的名字)
阻止被其他人@
使用命令/yinwuchat noat可以允许或禁止自己被其他人@,但是不能禁止被@所有人功能@
防止被他人骚扰
如果有某个玩家使用私聊、@骚扰你,或者你不喜欢他在公屏的发言,你可以使用命令/yinwuchat ignore <玩家名>来忽略他的消息
物品展示
(聊天内容中输入[i]即可将手中的物品发送到聊天栏,输入[i:x]可以展示背包中x对应的物品栏的物品,物品栏为0-8,然后从背包左上角从左至右从上至下为9-35,装备栏为36-39,副手为40,一条消息中可以展示多个物品)
RGB颜色聊天
如有yinwuchat.style.rgb权限,可使用,聊天中输入&#rgb即可,rgb为16进制rgb颜色代码,如:E90FF



下载及安装

1.前往https://github.com/lintx/Minecraft-Plugin-YinwuChat/releases下载最新版本的jar
2.将jar复制到各服的plugins文件夹内
3.重启各服务器
4.修改配置文件
5.执行yinwuchat reload命令重新加载配置
PS:web服务器相关问题或反向代理相关问题请自行查找解决方案


更新日志



----------Yinwu系列插件----------
YinwuChat----支持网页聊天的跨服聊天插件
BBSToper----奖励玩家顶服务器宣传贴
MCJointBan----基于GitHub的联合禁封插件
WebAuth----网页登陆: 正版共存|防假人
ExpCake----经验蛋糕

本插件所用所有代码均为原创,不存在借用/抄袭等行为
本插件为非盈利性插件,免费发布,严禁销售和转卖




2021.12 数据,可能有更多内容


YinwuChat
一款集成跨服聊天、跨BungeeCord聊天、web聊天、跨服at、跨服物品展示、RGB真彩色聊天Q群互通、关键词屏蔽、游戏公告功能的聊天插件


开源地址
插件百科
插件下载(v2.11.1)(蓝奏云)


*注意:如果你是从1.x版本升级到2.0版本,且在1.x版本时已经在使用Q群互通功能,那么你要在酷Q的HTTP API插件配置中,将ws_reverse_url后面加上/ws,比如你原来是ws://127.0.0.1:9000,那么现在就应该是ws://127.0.0.1:9000/ws
*注意:v2.1版本对配置文件的格式做了较大调整,为了使旧配置不丢失,虽然插件已经做了自动备份旧配置的功能,但还是建议在升级前手动备份一下旧版本的配置文件


说明
    YinwuChat原是为YinwuRealm制作的插件,作为服务器管理员及插件开发者,后将它开源并发表于mcbbs。
    YinwuChat同时是Bungeecord插件和Spigot插件,你需要在你的Bungee服务端和这个Bungee接入的所有的Spigot服务端都安装这个插件。
    YinwuChat开发的初衷即是为了使玩家在网页中也能和服务器中的玩家聊天,一开始本来是想依赖bukkitAPI开发的,但是由于服务器是BungeeCord群组服,在bukkitAPI中获取其他服务器的聊天内容不便,发送聊天内容更不便,所以转为BungeeCord插件,最后又改为BungeeCord、bukkit合作插件。


插件功能
  • 跨服聊天同步
  • 跨服私聊(/msg &lt;玩家名&gt; 消息)
  • 跨服@(聊天内容中输入想@的玩家的名字,或名字的前面一部分,不区分大小写)
  • 跨服物品展示(聊天内容中输入[i]即可将手中的物品发送到聊天栏,输入[i:x]可以展示背包中x对应的物品栏的物品,物品栏为0-8,然后从背包左上角从左至右从上至下为9-35,装备栏为36-39,副手为40,一条消息中可以展示多个物品)
  • WebSocket,开启WebSocket后配合YinwuChat-Web(Web客户端)可以实现web、游戏内聊天同步
  • 关键词屏蔽
  • 定时广播消息,支持悬浮提示、点击命令,支持分服务器发送。
  • 使用酷Q和酷Q HTTP API来实现Q群聊天同步
  • 聊天样式代码权限控制
  • 自定义聊天指令:可以自定义设置将玩家发送的聊天内容中一些内容替换为其他内容



配置文件
YinwuChat的配置文件主要分3块:Bungee端配置文件、Bungee端公告任务、Bukkit端配置文件。
Bungee端配置文件(config.yml)
```
#是否开启WebSocket
openwsserver: false


#WebSocket监听端口
wsport: 8888


#WebSocket发送消息时间间隔(毫秒)
wsCooldown: 1000


#安装了BungeeAdminTools插件时,
#在Web端发送消息,使用哪个服务器作为禁言/ban的服务器
webBATserver: lobby


#@玩家时的冷却时间(秒)
atcooldown: 10


#@全体玩家的关键词
#默认为all,可以使用@all来@所有人
#如果你有一个服务器叫做lobby
#那么可以使用@lobbyall来@lobby服务器的所有人
#@lobbyall可以简写为@lall或@loball等(服务器名前面一部分)
atAllKey: all


#链接识别正则表达式,符合该正则的聊天内容会被替换,并且可以点击
linkRegex: ((https?|ftp|file)://[-A-Za-z0-9+&amp;@#/%?=~_|!:,.;]+[-A-Za-z0-9+&amp;@#/%=~_|])


#聊天屏蔽模式,目前1为将聊天内容替换为shieldedReplace的内容,其他为直接拦截
shieldedMode: 1


#多少秒内总共发送屏蔽关键词`shieldedKickCount`次就会被踢出服务器(包括web端)
shieldedKickTime: 60


#`shieldedKickTime`秒内发送屏蔽关键词多少次会被踢出服务器
shieldedKickCount: 3


#配置文件的版本,请勿修改
configVersion: 4


#从web页面发送消息到游戏中时禁用的样式代码
webDenyStyle: klmnor


#是否允许玩家自定义聊天前后缀
allowPlayerFormatPrefixSuffix: true


#玩家自定义聊天前后缀禁止使用的样式代码
playerFormatPrefixSuffixDenyStyle: klmnor


#聊天内容屏蔽关键词,list格式,你需要自己添加这个设置
shieldeds:
#每个关键词一行
- keyword


tipsConfig:
shieldedKickTip: 你因为发送屏蔽词语,被踢出服务器

#聊天内容中含有屏蔽关键词时,整个消息会被替换为这个
shieldedReplace: 富强、民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善
atyouselfTip: '&amp;c你不能@你自己'
atyouTip: '&amp;e{player}&amp;b@了你'
cooldownTip: '&amp;c每次使用@功能之间需要等待10秒'
ignoreTip: '&amp;c对方忽略了你,并向你仍了一个烤土豆'
banatTip: '&amp;c对方不想被@,只想安安静静的做一个美男子'
toPlayerNoOnlineTip: '&amp;c对方不在线,无法发送私聊'
msgyouselfTip: '&amp;c你不能私聊你自己'
youismuteTip: '&amp;c你正在禁言中,不能说话'
youisbanTip: '&amp;c你被ban了,不能说话'

#发送的聊天消息中含有屏蔽的关键词时会收到的提醒
shieldedTip: '&amp;c发送的信息中有被屏蔽的词语,无法发送,继续发送将被踢出服务器'

#聊天内容中的链接将被替换为这个文本
linkText: '&amp;7[&amp;f&amp;l链接&amp;r&amp;7]&amp;r'

#各种消息的格式化设置
formatConfig:
#WebSocket发送过来的消息格式化内容,
#由list构成,每段内容都分message、hover、click 3项设置
format:
#直接显示在聊天栏的文字,
#{displayName}将被替换为玩家名
#hover和click字段中的{displayName}也会替换
- message: '&amp;b[Web]'
    #鼠标移动到这段消息上时显示的悬浮内容
    hover: 点击打开YinwuChat网页
    #点击这段消息时的动作,自动识别是否链接,如果是链接则打开链接
    #否则如果是以!开头就执行命令,否则就将内容填充到聊天框
    #比如让看到消息的人点击就直接给发消息的人发送tpa请求,
    #就可以写成!/tpa {displayName}(不写斜杠会按发送消息处理)
    click: https://chat.yinwurealm.org
- message: '&amp;e{displayName}'
    hover: 点击私聊
    click: /msg {displayName}
- message: ' &amp;6&gt;&gt;&gt; '
- message: '&amp;r{message}'

#QQ群群员发送的消息,游戏内展示的样式
qqFormat:
- message: '&amp;b[QQ群]'
    hover: 点击加入QQ群xxxxx
    #这里可以替换为你QQ群的申请链接
    click: https://xxxxxx.xxxx.xxx
- message: '&amp;e{displayName}'
- message: ' &amp;6&gt;&gt;&gt; '
- message: '&amp;r{message}'

#私聊时,自己收到的消息的格式
toFormat:
- message: '&amp;7我 &amp;6-&gt; '
- message: '&amp;e{displayName}'
    hover: 点击私聊
    click: /msg {displayName}
- message: ' &amp;6&gt;&gt;&gt; '
- message: '&amp;r{message}'

#私聊时,对方收到的消息的格式
fromFormat:
- message: '&amp;b[Web]'
    hover: 点击打开YinwuChat网页
    click: https://xxxxxx.xxxx.xxx
- message: '&amp;e{displayName}'
    hover: 点击私聊
    click: /msg {displayName}
- message: ' &amp;6-&gt; &amp;7我'
- message: ' &amp;6&gt;&gt;&gt; '
- message: '&amp;r{message}'

#其他玩家私聊时,有权限的玩家看到的监听消息的样式
monitorFormat:
- message: '&amp;7{formPlayer} &amp;6-&gt; '
- message: '&amp;e{toPlayer}'
- message: ' &amp;6&gt;&gt;&gt; '
- message: '&amp;r{message}'
coolQConfig:
#qq群有新消息时是否发送到游戏中
coolQQQToGame: true

#qq群有新消息时,只有开头跟这里一样才发送到游戏中
coolqToGameStart: ''

#游戏中有新消息时是否发送到QQ群中
coolQGameToQQ: true

#游戏中有新消息时,只有开头跟这里一样才发送到QQ群中
gameToCoolqStart: ''

#转发QQ群消息到游戏时禁用的样式代码
qqDenyStyle: 0-9a-fklmnor

#监听的QQ群的群号,酷Q接收到消息时,如果是QQ群,且群号和这里一致,就会转发到游戏中
coolQGroup: 0

#和酷Q HTTP API插件通信时使用的accesstoken,为空时不验证,强烈建议设置为一个复杂的字符串
coolQAccessToken: ''

#QQ群中群员发送的@信息将被替换为这个文本
#{qq}将被替换为被@的人的QQ号
qqAtText: '&amp;7[@{qq}]&amp;r'

#QQ群中群员发送的图片将被替换为这个文本
qqImageText: '&amp;7[图片]&amp;r'

#QQ群中群员发送的语音将被替换为这个文本
qqRecordText: '&amp;7[语音]&amp;r'


#利用redis做跨bc聊天同步的配置
redisConfig:
#是否开启redis聊天同步
openRedis: false

#redis服务器的ip地址或域名
ip: ''

#redis的端口
port: 0

#一般不要修改
maxConnection: 8

#redis的密码
password: ''

#服务器标识,每个bc端的YinwuChat插件的标识请设置为不一样
selfName: bc1

#是否转发其他群组服发送的公告消息
forwardBcTask: true

#是否转发其他群组服的消息至QQ
forwardBcMessageToQQ: true

#是否转发其他群组服的消息至web
forwardBcMessageToWeb: true

#是否允许其他群组服使用atall功能at本群组服玩家
forwardBcAtAll: true

#是否允许其他群组服使用at功能at本群组服玩家
forwardBcAtOne: true

#本群组服发送的消息的前缀
selfPrefixFormat:
- message: '&amp;8[其他群组]&amp;r'
    hover: 来自其他群组的消息
    click: ''
```


Bungee端公告任务(tasks.yml):


```
tasks:
- enable: true    #是否开启这个任务
interval: 30    #任务间隔时间
list:  #格式和Bungee的配置文件中的消息格式一致
- message: '&amp;e[帮助]'
    hover: 服务器帮助文档
    click: ''
- message: '&amp;r 在聊天中输入'
- message: '&amp;b[&amp;fi&amp;b]'
    hover: 在聊天文本中包含这三个字符即可
    click: ''
- message: '&amp;r可以展示你手中的物品,输入'
- message: '&amp;b[i:x]'
    hover: |-
   &amp;b:&amp;r冒号不区分中英文
   &amp;bx&amp;r为背包格子编号
   物品栏为0-8,然后从背包左上角
   从左至右从上至下为9-35
   装备栏为36-39,副手为40
    click: ''
- message: '&amp;r可以展示背包中x位置对应的物品,一条消息中可以展示多个物品'
#任务对应的服务器,不区分大小写,
#只有对应的服务器的玩家才会收到消息,
#为&quot;all&quot;时所有服务器都会广播,为&quot;web&quot;时只有web端才会收到通知
server: all
```


Bukkit端配置文件(config.yml):


```
#格式和Bungee的配置文件中的消息格式一致,
#但是这里的内容支持PlaceholderAPI变量
format:
- message: '&amp;b[%player_server%]'
hover: 所在服务器:%player_server%
click: /server %player_server%
- message: '&amp;e{displayName}'
hover: 点击私聊
click: /msg {displayName}
- message: ' &amp;6&gt;&gt;&gt; '
- message: '&amp;r{message}'
toFormat:
- message: '&amp;b[%player_server%]'
hover: 所在服务器:%player_server%
click: /server %player_server%
- message: '&amp;e{displayName}'
hover: 点击私聊
click: /msg {displayName}
- message: ' &amp;6-&gt; &amp;7我'
- message: '&amp;r{message}'
fromFormat:
- message: '&amp;7我 &amp;6-&gt; '
- message: '&amp;e{displayName}'
hover: 点击私聊
click: /msg {displayName}
- message: '&amp;r{message}'
#接收消息处理延时,单位为毫秒,
#用于处理部分需要使用聊天栏信息来交互的插件的运行(比如箱子商店等),
#延时时间就是等待其他插件处理的时间
eventDelayTime: 50
#自定义消息内容替换,比如下面默认的设置
#发送消息时,消息中含有[p]的,[p]会被替换为位置
messageHandles:
#消息中的哪些内容会被替换,写法是正则表达式,
#所以本来是替换[p]的,由于是正则表达式,两个方括号都需要加反斜杠转义
- placeholder: \[p\]
#替换成的消息样式,格式和前面的format格式一致,支持papi变量
format:
- message: '&amp;7[位置]'
    hover: |-
   所在服务器:ServerName
   所在世界:%player_world%
   坐标:X:%player_x% Y:%player_y% Z:%player_z%
    click: ''
configVersion: 1#配置文件的版本,请勿修改
```


*注意:1.14版本的papi不支持%player_server%了


Q群聊天互通配置:


1. YinwuChat插件配置
    1. 需要开启openwsserver
    2. 将coolQGroup设置为你想同步的Q群的号码
    3. 将coolQAccessToken设置为一个足够复杂足够长的字符串(推荐32位左右的随机字符串)
2. 安装酷Q HTTP API插件
    1. 去 https://github.com/richardchien/coolq-http-api/releases/latest 下载最新版本的coolq-http-api,coolq-http-api具体的安装说明可以到 https://cqhttp.cc/docs/http://richardchien.gitee.io/coolq-http-api/docs/ 查看
    2. 将coolq-http-api放到酷Q目录下的app目录下
    3. 打开酷Q的应用管理界面,点击重载应用按钮
    4. 找到“[未启用]HTTP API”,点它,然后点右边的启用按钮
    5. 有提示的全部点“是”
    6. 到酷Q目录下的“data\app\io.github.richardchien.coolqhttpapi\config”目录,下,打开你登录的QQ号对应的json文件(比如你登录的QQ号是10000,那文件名就是10000.json)
    7. 将use_http修改为false(如果你没有其他应用需要使用的话)
    8. 将use_ws_reverse修改为true(必须!)
    9. 将ws_reverse_url修改为插件的websocket监听地址加端口(比如你端口是9000,酷Q和mc服务器在一台机器上就填 ws://127.0.0.1:9000/ws)
    10. post_message_format请务必保证是&quot;string&quot;
    11. 将enable_heartbeat设置为true
    12. 增加一行   &quot;ws_reverse_use_universal_client&quot;: true,    或者如果你的json文件中有ws_reverse_use_universal_client的话将它改为true(必须!)
    13. 将access_token修改为和YinwuChat配置中的coolQAccessToken一致的内容
    14. 右键酷Q主界面,选择应用-HTTP API-重启应用


跨bc聊天互通配置:


1. YinwuChat插件配置
    1. 将新版本BungeeCord端配置文件的redisConfig.openRedis修改为true
    2. redisConfig.ip修改为redis服务器的ip
    3. redisConfig.port修改为redis服务器的端口
    4. redisConfig.password修改为redis服务器的密码
    5. redisConfig.selfName修改为每个BungeeCord端都不一样的一个字符串(插件内部标记消息来源及消息目的用,每个BungeeCord必须不一样,无其他要求)
    6. 重新加载插件后,在一个BungeeCord端接入的玩家发送的消息可以在其他BungeeCord端接入的玩家处看到(支持公屏聊天、私聊、at等所有功能,但是私聊和at等指定玩家的功能,被拒绝或忽略等情况下,本地提示可能不正确)


效果截图指令帮助:

网页聊天:



命令
Bungeecord端命令:


1. 控制台命令
    - `yinwuchat reload [config|ws]`:重新加载插件,或仅重新加载配置(在ws配置有变动时自动重启ws),或只重启ws
2. 游戏内命令
    - `/yinwuchat`:插件帮助(其他未识别的命令也都将显示帮助)
    - `/yinwuchat reload [config|ws]`:重新加载配置文件,执行这个命令需要你具有`yinwuchat.reload`权限
    - `/yinwuchat bind &lt;token&gt;`:绑定token,`token`是插件下发给web客户端的,玩家从web客户端获取token后到游戏内使用命令将玩家和token进行绑定
    - `/yinwuchat list`:列出玩家已绑定的token
    - `/yinwuchat unbind &lt;token&gt;`:解绑token,当你需要解绑某个token时使用(如在公共场合绑定了token,或者不想用这个token了等),`token`为使用`list`命令时查询到的`token`,可以只输入前面部分文字
    - `/msg &lt;玩家名&gt; &lt;消息&gt;`:向玩家发送私聊消息
    - `/yinwuchat vanish`:切换聊天系统隐身模式(无法被@,无法被私聊,web端无法看见在线,需要有`yinwuchat.vanish`权限)
    - `/yinwuchat ignore &lt;玩家名&gt;`:忽略/取消忽略玩家消息
    - `/yinwuchat noat`:禁止/允许自己被@(@全体除外)
    - `/yinwuchat muteat`:切换自己被@时有没有声音
    - `/yinwuchat monitor`:切换是否监听其他玩家的私聊消息
    - `/yinwuchat format public/private prefix/suffix view/set [prefix/suffix]`:查看/设置聊天前后缀:


Bukkit端命令:


`yinwuchat-bukkit reload`: 重新加载配置,需要权限`yinwuchat.reload


权限
Bungeecord端权限:


- `yinwuchat.reload`玩家可以在游戏中使用`/yinwuchat reload`命令重新加载插件配置
- `yinwuchat.cooldown.bypass`@人没有冷却时间
- `yinwuchat.atall`允许@所有人
- `yinwuchat.vanish`允许进入聊天隐身模式
- `yinwuchat.badword`允许编辑聊天系统关键词列表
- `yinwuchat.monitor`允许玩家使用`/yinwuchat monitor`命令,并允许玩家监听其他玩家的私聊消息


Bukkit端权限:


`yinwuchat.reload`玩家可以在游戏中使用`/yinwuchat-bukkit reload`命令重新加载bukkit端yinwuchat的配置,默认权限:仅OP可以使用
`yinwuchat.style.x`是否允许玩家使用对应的样式代码,`x`为具体样式代码,具体为`0-9`,`a-f`,`klmnor`共22个样式代码,默认设置时`0-9`,`a-f`,`r`为允许,其他为不允许


玩家使用说明

@某个玩家

当聊天消息中含有@符号,并后面跟着某个玩家的名字的前面一部分或完整名字时,即可@该玩家,该玩家将收到一条@提示
@所有人
@所有人可以@整个服务器所有人(不包括Web端和Q群),或者分服务器@该服务器所有人(不包括Web端和Q群) 具体使用方法为: 假如配置文件中的atAllKey是默认的all,那么聊天内容中含有@all时即可@整个服务器的人(all后面不能紧接着英文或数字,可以是中文、空格等) 假如你有一个服务器名字为lobby,那么聊天内容中含有@lall或@lobbyall时,即可@lobby服务器的所有人(即服务器名只需要输入前面部分即可,该服务器名为BungeeCord配置文件中的名字)
阻止被其他人@
使用命令/yinwuchat noat可以允许或禁止自己被其他人@,但是不能禁止被@所有人功能@
防止被他人骚扰
如果有某个玩家使用私聊、@骚扰你,或者你不喜欢他在公屏的发言,你可以使用命令/yinwuchat ignore &lt;玩家名&gt;来忽略他的消息
物品展示
(聊天内容中输入[i]即可将手中的物品发送到聊天栏,输入[i:x]可以展示背包中x对应的物品栏的物品,物品栏为0-8,然后从背包左上角从左至右从上至下为9-35,装备栏为36-39,副手为40,一条消息中可以展示多个物品)
RGB颜色聊天
如有yinwuchat.style.rgb权限,可使用,聊天中输入&amp;#rgb即可,rgb为16进制rgb颜色代码,如:E90FF


下载及安装


1.前往https://github.com/lintx/Minecraft-Plugin-YinwuChat/releases下载最新版本的jar
2.将jar复制到各服的plugins文件夹内
3.重启各服务器
4.修改配置文件
5.执行yinwuchat reload命令重新加载配置
PS:web服务器相关问题或反向代理相关问题请自行查找解决方案


更新日志


2020-12-04(v2.11.1):
1.优化私聊时玩家名提示
2.增加1.16RGB颜色聊天,使用方法:聊天中输入&amp;#rgb即可,rgb为16进制rgb颜色代码,如:E90FF,配置中的format字段也支持rgb颜色,新增权限:yinwuchat.style.rgb


2020-02-19(v2.9):
1.修复使用redis来做多bc消息同步时,web端和qq端的消息会重复发送的bug。
2.修复format中的命令或链接中的符号会被替换为颜色代码导致命令或链接不正确的bug。


2020-01-22(v2.8):
1.增加设置项redisConfig.forwardBcTask,可以设置使用redis联通多个bc群组服时,是否转发其他群组服的公告消息。
2.增加设置项redisConfig.forwardBcMessageToQQ,可以设置使用redis联通多个bc群组服时,是否转发其他群组服的消息到QQ。
3.增加设置项redisConfig.forwardBcMessageToWeb,可以设置使用redis联通多个bc群组服时,是否转发其他群组服的消息到web。
4.增加设置项redisConfig.forwardBcAtAll,可以设置使用redis联通多个bc群组服时,是否允许其他群组服使用atall功能at本群组的玩家。
5.增加设置项redisConfig.forwardBcAtOne,可以设置使用redis联通多个bc群组服时,是否允许其他群组服使用at功能at本群组的玩家。
6.增加设置项redisConfig.selfPrefixFormat,可以设置使用redis联通多个bc群组服时,本群组发送的消息的前缀,配置格式同其他消息配置一致。


2020-01-19(v2.7):
1.修复qq同步消息时,前缀为空时,无法同步的bug


2020-01-14(v2.6):
1.增加单独的ignore命令,效果和/yinwuchat ignore一致。
2.修复开启了游戏至QQ的消息同步需要特定前缀后,玩家设置了消息前缀时,消息无法发送到QQ群的bug。
3.修复了跨bungee同步的消息没有发送到web端和QQ的bug(跨bungee消息的,无法适用需要特定前缀)。
4.修复了QQ和游戏同步时,配置中的前缀实际上都是使用的QQ-游戏的bug(也就是游戏到QQ实际上使用的也是QQ到游戏的前缀)。


2020-1-8(v2.5):
1.修复私聊时可以@玩家的bug
2.增加可选的公屏/私聊前缀/后缀配置及相对应的命令,效果为玩家聊天时,视为在聊天内容前后自动加上对应的内容,命令:/yinwuchat format public/private prefix/suffix view/set [prefix/suffix],利用此设置,玩家可以实现默认文字颜色、样式,或习惯性口头禅等效果
BungeeCord端配置:
allowPlayerFormatPrefixSuffix:是否允许玩家使用自定义前后缀
playerFormatPrefixSuffixDenyStyle:玩家自定义前后缀禁止使用的样式代码


2020-1-3(v2.4):
1.将redis相关操作全部放入异步线程执行,即使redis操作出现问题也能不阻塞主线程
2.修复了jedis实例没有释放的bug


2019-12-28(v2.2):
更新到v2.2版本
1.修复了游戏发送消息同步到QQ群时,配置了消息前缀但是只有不匹配前缀的消息才发送的bug(逻辑反了)
2.修复了游戏聊天中很多符号无法显示的bug
3.修复了私聊时无法展示物品的bug


2019-12-24(v2.1):
1.修复了web端不显示玩家列表的bug(需要删除插件目录下的web目录,然后重新启动插件,让插件自动生成web目录后才能修复)
2.修改了几处向web端发送玩家列表的逻辑
3.修复了bukkit端的messageHandles配置不能为空的bug
4.修改了bukkit端插件监听chat事件的优先级,以确保其他插件能正确处理插件事件
5.物品展示的符号修改(暂未实装)
6.修复了@所有人功能只能@一个人的bug
7.增加了QQ和游戏同步聊天时必须使用指定前缀才能发送消息的可选选项
8.增加通过redis来跨BungeeCord聊天的功能:
    a&gt;将新版本BungeeCord端配置文件的redisConfig.openRedis修改为true
    b&gt;redisConfig.ip修改为redis服务器的ip
    c&gt;redisConfig.port修改为redis服务器的端口
    d&gt;redisConfig.password修改为redis服务器的密码
    e&gt;redisConfig.selfName修改为每个BungeeCord端都不一样的一个字符串(插件内部标记消息来源及消息目的用,每个BungeeCord必须不一样,无其他要求)
    f&gt;重新加载插件后,在一个BungeeCord端接入的玩家发送的消息可以在其他BungeeCord端接入的玩家处看到(支持公屏聊天、私聊、at等所有功能,但是私聊和at等指定玩家的功能,被拒绝或忽略等情况下,本地提示可能不正确)
注意:该版本对配置文件的格式做了较大调整,为了使旧配置不丢失,虽然插件已经做了自动备份旧配置的功能,但还是建议在升级前手动备份一下旧版本的配置文件


2019-11-13(v2.0):
经过大量重构的2.0版本上线


注意:如果你是从1.x版本升级到2.0版本,且在1.x版本时已经在使用Q群互通功能,那么你要在酷Q的HTTP API插件配置中,将ws_reverse_url后面加上/ws,比如你原来是ws://127.0.0.1:9000,那么现在就应该是ws://127.0.0.1:9000/ws


1.websocket服务框架更换为netty,bungee和spigot内置,而且性能更好
2.由于更换为netty后可以同时开启http和ws监听,所以新版本内置了http服务器,自带web端文件,需要使用web聊天的服主不需要单独下载web端文件并架设http服务器了
3.web端使用vue替换了angularjs,修复了玩家名列表不能滑动的bug,修复了&amp;r样式代码不能正确还原文字样式的bug
4.bungee端增加qqDenyStyle设置,可以在转发QQ群消息时,禁用部分或全部样式代码(默认为禁用全部样式)
5.bungee端增加webDenyStyle设置,可以设置web端发送消息时,禁用部分或全部样式代码(默认为禁用除颜色和重置外的样式)
6.bukkit端增加了一系列的样式代码权限,具体权限为yinwuchat.style.x,x为具体样式代码,具体为0-9,a-f,klmnor,默认设置时0-9,a-f,r为允许,其他为不允许
7.消息格式中的click字段除了原本的链接和填充到聊天栏之外新增了直接执行命令的支持(以英文感叹号!开头可以直接执行,比如!/tpa {displayName}就可以点击直接给说话的玩家发送tpa请求,注意如果感叹号后面没有斜杠会按发送聊天消息处理)
8.bukkit端增加自定义handle设置,可以自定义设置将玩家发送的聊天内容中一些内容替换为其他内容,默认含有一个[p]的handle,可以将聊天内容中的[p]替换为玩家位置,服主可以按自己的喜好和需求定制handle
9.bungee端新增权限yinwuchat.monitor,新增命令/yinwuchat monitor,当玩家拥有权限yinwuchat.monitor时可以使用该命令切换是否监听其他玩家的私聊信息,默认为监听,当玩家拥有该权限且设置为监听时,其他玩家发送私聊信息会给玩家发送一份监听消息(监听消息的样式可以单独设置)
10.取消了前置插件Configure(现在内置了)


2019-11-10(v1.4.0):
1.优化和酷Q HTTP API通信的部分代码
2.Q群同步可以单独开启或关闭 Q群-&gt;游戏 方向和 游戏-&gt;Q群 方向的消息(也就是可以只将Q群消息转发到游戏,或只将游戏内消息转发到Q群)
3.优化前置插件检测,现在会正确检测前置插件是否存在,如不存在将停用插件
4.将QuickShop-Reremake添加到软依赖列表以将yinwuchat放在QuickShop-Reremake之后启动以修复在使用QuickShop-Reremake插件购买/出售物品时将出售/购买的数量发送到公屏的问题
5.bukkit端插件增加一个命令:`yinwuchat-bukkit reload`用于重新加载配置文件


2019-11-8(v1.3.0):
1.修复了bc端插件会导致其他插件和bc端交互数据无效的bug
2.修复了1.2.0版本中bukkit端的延时代码可能会导致的主线程休眠的bug(感谢github用户BryanSer的issues)
3.私聊命令增加了tell、t、m共3个alias
4.私聊命令自动补全增加整个bc服所有玩家名


2019-11-7(v1.2.0):
一. 新增事件延迟以兼容部分需要监听聊天内容的插件(可以在处理消息前等待一段时间以等待其他插件处理聊天消息,比如箱子商店)
二. 新增Q群同步功能(需要使用酷Q和酷Q HTTP API来实现Q群聊天同步)


2019-8-1:
1.一条消息中可以展示多个物品了
2.增加定时广播,可以用于提示、公告等


2019-4-12:
因增加@、物品展示等功能,将插件修改为bungeecord、bukkit同时使用。


----------Yinwu系列插件----------
YinwuChat----支持网页聊天的跨服聊天插件
BBSToper----奖励玩家顶服务器宣传贴
MCJointBan----基于GitHub的联合禁封插件
WebAuth----网页登陆: 正版共存|防假人
ExpCake----经验蛋糕


本插件所用所有代码均为原创,不存在借用/抄袭等行为本插件为非盈利性插件,免费发布,严禁销售和转卖




lintx
谁能告诉我,为什么编辑帖子全是错误,无法提交?
  • 本插件所用代码部分来自其他开源或闭源(已授权)作品
  • 本插件为非盈利性插件,免费发布,严禁销售和转卖
  • 部分插件源码来自Java-WebSocket开源项目(开源地址:https://github.com/TooTallNate/Java-WebSocket
  • 部分插件源码来自gson开源项目(开源地址:https://github.com/google/gson

  • Abraham511
    lintx 发表于 2019-1-3 10:37
    谁能告诉我,为什么编辑帖子全是错误,无法提交?
  • 本插件所用代码部分来自其他开源或闭源(已授权)作品
    [ ...
  • 为什么编辑帖子全是错误,无法提交?


    论坛被攻击了


    解决方法:http://www.mcbbs.net/thread-835702-1-1.html

    117779284
    网页可以禁言吗·

    xmdhs
    帖子名的末尾应为支持的服务器版本,另外还是仔细看看版规吧

    lintx
    现在根本就编辑不了帖子

    nmlgbaaa
    网站有SSL证书认证吗?

    nmlgbaaa
    求分享nginx配置QAQ

    lintx
    117779284 发表于 2019-1-3 18:21
    网页可以禁言吗·

    现在可以

    lintx
    nmlgbaaa 发表于 2019-5-18 22:56
    求分享nginx配置QAQ

    已更新nginx配置示例

    CallMeDavid
    牛批嗷????????

    qmsiyu
            ConfigureCore是什么呢?这个前置在哪

    lintx
    qmsiyu 发表于 2019-7-8 21:36
    ConfigureCore是什么呢?这个前置在哪

    spigot或我github有

    X836696023
    在Bungee端的报错(是不是要装前置插件?但是前置插件我搜不到啊):


    jiao1018000
    插件不错谢谢楼主收下了

    sharina2012
    感谢分享 插件不错 谢谢

    q2639716792
    受益匪浅 感谢

    L_Panda
    X836696023 发表于 2019-7-31 13:45
    在Bungee端的报错(是不是要装前置插件?但是前置插件我搜不到啊):

    安装前置https://github.com/lintx/ConfigureCore-for-Minecraft-plugins

    L_Panda
    难道这是我的问题?

    lintx
    更新到1.2.0
    一. 新增事件延迟以兼容部分需要监听聊天内容的插件(可以在处理消息前等待一段时间以等待其他插件处理聊天消息,比如箱子商店)
    二. 新增Q群同步功能(需要使用酷Q和酷Q HTTP API来实现Q群聊天同步)
    配置方法:
    1. YinwuChat插件配置
        1. 需要开启openwsserver
        2. 将coolQGroup设置为你想同步的Q群的号码
        3. 将coolQAccessToken设置为一个足够复杂足够长的字符串(推荐32位左右的随机字符串)
    2. 安装酷Q HTTP API插件
        1. 去 https://github.com/richardchien/coolq-http-api/releases/latest 下载最新版本的coolq-http-api,coolq-http-api具体的安装说明可以到 https://cqhttp.cc/docs/http://richardchien.gitee.io/coolq-http-api/docs/ 查看
        2. 将coolq-http-api放到酷Q目录下的app目录下
        3. 打开酷Q的应用管理界面,点击重载应用按钮
        4. 找到“[未启用]HTTP API”,点它,然后点右边的启用按钮
        5. 有提示的全部点“是”
        6. 到酷Q目录下的“data\app\io.github.richardchien.coolqhttpapi\config”目录,下,打开你登录的QQ号对应的json文件(比如你登录的QQ号是10000,那文件名就是10000.json)
        7. 将use_http修改为false(如果你没有其他应用需要使用的话)
        8. 将use_ws_reverse修改为true(必须!)
        9. 将ws_reverse_url修改为插件的websocket监听地址加端口(比如你端口是9000,酷Q和mc服务器在一台机器上就填 ws://127.0.0.1:9000/)
        10. post_message_format请务必保证是"string"
        11. 将enable_heartbeat设置为true
        12. 增加一行   "ws_reverse_use_universal_client": true,    或者如果你的json文件中有ws_reverse_use_universal_client的话将它改为true(必须!)
        13. 将access_token修改为和YinwuChat配置中的coolQAccessToken一致的内容
        14. 右键酷Q主界面,选择应用-HTTP API-重启应用
    升级到1.2.0版本时推荐备份旧配置,等待插件重新生成新版本配置后再将旧版本配置中和新版本中一致的部分还原。

    lintx
    nuo13260 发表于 2019-10-6 20:21
    难道这是我的问题?

    我本地测试没有这个问题,你插件版本和服务端版本分别是多少?

    lintx
    更新到1.3.0
    1.修复了bc端插件会导致其他插件和bc端交互数据无效的bug
    2.修复了1.2.0版本中bukkit端的延时代码可能会导致的主线程休眠的bug(感谢github用户BryanSer的issues)
    3.私聊命令增加了tell、t、m共3个alias
    4.私聊命令自动补全增加整个bc服所有玩家名

    lintx
    更新到1.4.0
    1.优化和酷Q HTTP API通信的部分代码
    2.Q群同步可以单独开启或关闭 Q群->游戏 方向和 游戏->Q群 方向的消息(也就是可以只将Q群消息转发到游戏,或只将游戏内消息转发到Q群)
    3.优化前置插件检测,现在会正确检测前置插件是否存在,如不存在将停用插件
    4.将QuickShop-Reremake添加到软依赖列表以将yinwuchat放在QuickShop-Reremake之后启动以修复在使用QuickShop-Reremake插件购买/出售物品时将出售/购买的数量发送到公屏的问题
    5.bukkit端插件增加一个命令:`yinwuchat-bukkit reload`用于重新加载配置文件

    lintx
    经过大量重构的2.0版本上线

    注意:如果你是从1.x版本升级到2.0版本,且在1.x版本时已经在使用Q群互通功能,那么你要在酷Q的HTTP API插件配置中,将ws_reverse_url后面加上/ws,比如你原来是ws://127.0.0.1:9000,那么现在就应该是ws://127.0.0.1:9000/ws

    1.websocket服务框架更换为netty,bungee和spigot内置,而且性能更好
    2.由于更换为netty后可以同时开启http和ws监听,所以新版本内置了http服务器,自带web端文件,需要使用web聊天的服主不需要单独下载web端文件并架设http服务器了
    3.web端使用vue替换了angularjs,修复了玩家名列表不能滑动的bug,修复了&r样式代码不能正确还原文字样式的bug
    4.bungee端增加qqDenyStyle设置,可以在转发QQ群消息时,禁用部分或全部样式代码(默认为禁用全部样式)
    5.bungee端增加webDenyStyle设置,可以设置web端发送消息时,禁用部分或全部样式代码(默认为禁用除颜色和重置外的样式)
    6.bukkit端增加了一系列的样式代码权限,具体权限为yinwuchat.style.x,x为具体样式代码,具体为0-9,a-f,klmnor,默认设置时0-9,a-f,r为允许,其他为不允许
    7.消息格式中的click字段除了原本的链接和填充到聊天栏之外新增了直接执行命令的支持(以英文感叹号!开头可以直接执行,比如!/tpa {displayName}就可以点击直接给说话的玩家发送tpa请求,注意如果感叹号后面没有斜杠会按发送聊天消息处理)
    8.bukkit端增加自定义handle设置,可以自定义设置将玩家发送的聊天内容中一些内容替换为其他内容,默认含有一个[p]的handle,可以将聊天内容中的[p]替换为玩家位置,服主可以按自己的喜好和需求定制handle
    9.bungee端新增权限yinwuchat.monitor,新增命令/yinwuchat monitor,当玩家拥有权限yinwuchat.monitor时可以使用该命令切换是否监听其他玩家的私聊信息,默认为监听,当玩家拥有该权限且设置为监听时,其他玩家发送私聊信息会给玩家发送一份监听消息(监听消息的样式可以单独设置)
    10.取消了前置插件Configure(现在内置了)

    cp666
    我将配置里面的{playerName}改成了%player_displayname%,可是并不会显示玩家昵称,如果要显示该怎么写

    第一页 上一页 下一页 最后一页