• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~
VeloChatX-多功能VC端跨服聊天【聊天屏蔽|分区聊天|定时轮播||跨服私聊|高度自定义】

原创 付费 开源 聊天 VeloChatX-多功能VC端跨服聊天【聊天屏蔽|分区聊天|定时轮播||跨服私聊|高度自定义】 Stable 2.0.0 release

版权类型
原创
插件中文名称
文罗聊天
插件英文名称
VeloChatX
原帖地址
#
支持的核心(代理端)
  1. Velocity
语言支持
多语言
前置组件
[可选]LuckPerms for Velocity - https://luckperms.net/
适配版本(Java)
  1. 1.21
  2. 1.20
  3. 1.19
  4. 1.18
  5. 1.17
  6. 1.16
  7. 1.15
  8. 1.14
  9. 1.13
  10. 1.12
VeloChatX 一款多功能的独立Velocity跨服聊天插件
418257940-2ce8ffa3-19b9-4905-aa50-5bd1a4386ad3.png

【由AI生成,侵删】

:emmm:前言
由于paper新发布的Velocity代理端越来越多人再用,传统实现Bungeecore的跨服聊天过度到Velocity需要额外的插件如(snap)等支持才能传递消息。互联网上也找不到比较好的插件,同时合作的几个服务器服主有一些相关方面的需求,于是心血来潮写的这个插件。算是我开发的稍微中小型的插件了。

这次更新添加了定时广播轮播功能,以及分区聊天分区广播,腐竹们可以根据需要把子服分区管理,不同分区可以隔离聊天。
:哈哈哈:插件功能/特点
  • 完全自定义聊天格式 & 完全自定义消息输出
  • mention标题提及/玩家跨服私聊
  • 玩家跨服聊天屏蔽
  • 国际化支持,根据玩家的所属地切换对其输出的语言。
  • 支持玩家屏蔽其他玩家跨服发言 & 支持跨服屏蔽违禁词语
  • 玩家 加入/ 离开 子服务器消息广播 & 玩家 加入 / 离开 代理服务器消息广播
  • 支持用户自定义 TabList 玩家列表的自定义显示
  • 自动更新和下载插件新版本
  • 支持定时广播
  • 支持分区聊天
  • 数据库存储玩家数据


:给你心心:介绍视频


:额:运行截图

Velocity端:
console1.png
console2.png
ingame1.png

ingame2.png
help.png
mention1.png
mention2.png
msg1.png
msg2.png
:瞥你:权限
代码:
普通玩家: velochatx.player
管理员(reload命令): velochatx.admin

:喝水水:玩家指令/管理指令


代码:
插件主指令: VeloChatX VCX ChatX
子指令:
/velochatx help - 显示Velochatx的所有帮助
/velochatx on/off 关闭当前对跨服聊天支持
/velochatx ignore - 在在线时间段忽略某人的消息
/velochatx reject - 在在线时间段拒收某人消息,对其显示拒收消息

vcmsg 跨服私聊
mention 跨服提及消息

管理员指令
/velochatx reload [/config/message] 重载所有config,message
/velochatx show-channel-info 显示所有频道和频道服务器的在线的人数


:嘿嘿:请注意
玩家的 prefix 以及suffix 占位符是接入LuckPerms-Velocity 的称号,未来会添加更多支持的称号插件
1.3.X 版本与2.0.0 版本的配置文件具有较大的改动,请已经使用的腐竹注意一下更新的消息
按照更新消息里面进行操作以升级到2.0.0版本。
不进行更新配置文件有可能会出现未知的问题,以及最新的功能可能暂时无法使用

[MD]
## 如何从Stable 1.3.X 升级到 2.0.0 版本
## ```Config.yml```文件
>
> **必须需要更改的内容:**
> * 将***老版本***的 ***server-display*** 属性复制到新版本配置文件的
> **server-display** 下(需要完整复制所有内容)
> * 根据**您的需求**在 ```channel``` 字段下添加服务器的 **ID**
> 以实现区服聊天
>
> **可能需要更改的内容:**
> * ``server-broadcast``相关的两个字段已经移动至 ``broadcast.yml``文件当中
> 如果之前未对此属性进行更改则无须改动
>
> * 原 **server-display.display** 的 ``proxy`` 的转义已经替换到 **server-display** 属性之下,
> 不做更改也可以

## ``message.yml``
>
> **必须要更改的内容:**
> 请完全删除 **message.yml** 这个文件,插件会自动生成新的文件给您
> 若老版本不删除,有可能会出现新的文件
[/MD]

:酷:插件配置/消息文件(最新版)

config.yml:

YAML:
# VelochatX 2.0.0
# build java version: JE 17
# author: waterwood
# Available language zh,en

# 此文件的版本,通常不需要改变,检测更新需要用到
config-version: 2.0.0
# 自动更新 / 自动下载
check-update:
  enable: true
  auto-download: true

# 配置聊天输出的格式{xxx}代表替换的变量
# 在message里,这些规则也适用
# channel: 返回玩家所在的服务器频道
# Group: 返回玩家的组别
# Prefix/Suffix: 返回玩家的前/后缀
# Server: 返回玩家所在的服务器,服务器的显示名字可以在下面的server-display来转换后再输出;
# player: 返回玩家的名字
# Message: 玩家的消息文本
# NOTE : SERVER && MESSAGE && PlayName 这三个字段是必须的,如果少了就好用默认的输出format:[{Server}]{PlayerName}: {Message}
# 支持mc的颜色格式包括 §和& 颜色代码,会覆盖原有的颜色
chat-format: "{channel}{Group}{Server}{Prefix}{Player}{Suffix} §8:§r {Message}"

# 插件消息文件的语音版本,通常依据于您的Java JVM的版本自动设置
locale: zh

# global/locale 这个选项设置在显示给玩家信息(提及,私聊等)是否根据玩家客户端还是服务器的语言显示?
# global: 依据服务器的语言显示给玩家(可以更改设置自定义的消息)
# locale: 依据玩家的客户端的语言显示玩家各种消息(无法自定义消息,只能显示内置的默认的插件消息)
player-locale: global

# 是否在终端输出所有玩家的文本
# 如果觉得服务器内存不够,可以把这个功能关闭尤其是服务器玩家在线人数特别多的时候
log-text:
  enable: true
  # 是否要转换输出到终端的文本颜色(实现和游戏中一样的效果,日志中不会显示颜色代码,不影响游戏中输出的颜色)
  convert: true

# 转换输出的服务器的显示名称
# display的键对应的必须是Velocity中的服务器名字 -> Velocity.toml -> [servers]
# proxy表示代理服务器,如Velocity;
# 如果出现 unknown 或 未知字样则表示下方缺少对应的服务器
# e.g. [Lobby]steven: hello -> [大厅服]steven: hello
server-display:
  enable: true
  proxy: "[§5代理服§r]"
  display:
    lobby: "[§d大厅服§r]"
    server1: "[§3小游戏服§r]"
    server2: "[§2生存服§r]"

# @自 1.4.0 版本加入
# 为每个服务器分组
# 一组频道可以有多个子服务器,一个服务器可以在多个频道内
# 当某个服务器在多个频道同时出现的时候 {channel} 默认替换成 首次 出现的服务器
# global 为 false 的时候则仅仅频道内的服务器消息互通
# global 被设置 true 则所有服务器的消息(不论是否在频道内)都会互通
# 若某个服务器不在频道内,则默认接入global,即全服互通,{channel} 占位符则会被替换成空字符串
channels:
  global: false
  channel-list:
    login:
      display: "[§6登录频道§r]"
      welcome:
        enable: true
        message: "欢迎加入登录频道"
      servers:
        - lobby
    games:
      display: "[§6小游戏频道§r]"
      welcome:
        enable: true
        message: "欢迎加入小游戏频道"
      servers:
        - server1
    survive:
      display: "[§6生存频道§r]"
      welcome:
        enable: true
        message: "欢迎加入生存频道"
      servers:
        - server2
    # 可以按照以上的格式往下添加多个频道(请注意格式要保持一致)

# 是否在提醒的时候给玩家大屏幕显示标题
mention-show-title:
  enable: true
  # 显示Title的时间,秒为单位,支持整数,非整数自动四舍五入。分别是淡入,停留,淡出的持续时间。
  time:
    fade-in: 1
    stay: 2
    fade-out: 1

# 为原本的玩家Tab替换,每个玩家前面加上显示当前的服务器
# interval 请注意该选项在玩家多的时候尽量设置较大的数值,玩家越多占用的资源会更大
tab-list:
  enable: true
  interval: 1000 #刷新间隔,毫秒为单位 输入0则表示不刷新
  format: "{server}{prefix}{player}{Suffix}" #显示的每行的每个玩家的tab的格式  可以参考chat的format的占位符以及服务器的占位符
  header: "欢迎加入{proxy} 当前服务器: {server}"
  footer: "在线人数 §8{online}§r / §8{total_online}§r | Ping: §8{ping}"

# 违禁词语,以","分隔
ban-words:
  enable: true
  log-to-console: true
  words: "*,*"

# 是否启用玩家的跨服屏蔽功能(未来更新功能,当前版本默认启用)
# max-list 表示最多存储多少个玩家(对于超大型服务器这个值越小越好)
# 以 UUID 形式存储在数据库当中,一个玩家约 16B
ban-list:
  enable: true
  max-player: 20

message.yml
YAML:
# 以下是游戏中展示给玩家的消息配置
# 所有的键都不能删除或更改,所有的值可以自定义更改
# 部分文本支持VeloChatX占位符
mention-to-message: "§2你提及了玩家 {Server}{Group}{Prefix}{Player}{Suffix}"
mention-receive-message: "{Server}{Group}{Prefix}{Player}{Suffix} §6提及了你!"
no-self-action-message: "§c你无法对自己执行这个操作§r"
fail-find-player-message: "§6在所有服务器上找不到玩家:%s ,其是否§c隐身§r或者§c下线?§r"
mention-title-show-main: "§c请注意 §6你被提及了!"
mention-title-show-sub: "{Group}{Prefix}{Player}{Suffix} §e提及了你!"
msg-to-message: "[§c私聊§r] §2你§r §7->§r {Server}{Group}{Prefix}{Player}{Suffix} §8:§r {Message}"
msg-receive-message: "[§c私聊§r] {Server}{Group}{Prefix}{Player}{Suffix} §7->§r §2你 §8:§r {Message}"
msg-reject-message: "§6你向§r {Group}{Prefix}{Player}{Suffix} §c发送的消息被他拒收了!§r"
has-ignore-message: "§6玩家§r {Group}{Prefix}{Player}{Suffix} §c的消息已经被忽视了!§r"
has-reject-message: "§6玩家§r {Group}{Prefix}{Player}{Suffix} §c的消息已经被拒收了!§r"
normal-chat-message: "§a您现在对玩家§r {Group}{Prefix}{Player}{Suffix} §a的聊天已经恢复正常。§r"
no-in-list-message: "§6玩家§r {Group}{Prefix}{Player}{Suffix} §c不在被拒收/忽视的列表当中!§r"
enable-vc-chat-message: "已连接至跨服聊天系统。"
disable-vc-chat-message: "已断开跨服聊天系统的连接。您接下来无法看到其他服务器的消息了。"
unknown-command-message: "未知的命令。"
only-in-game-message: "此命令只能在游戏中使用。"
only-in-console-message: "此命令只能在控制台使用。"
no-permission: "您无权使用该命令!"
ban-words-message: "您当前的发言存在违禁/敏感词汇,已屏蔽您对其他服的广播。"
reject-list-show-message: "来自以下玩家的消息被§6忽略§r并且被§6拒收§r"
ignore-list-show-message: "来自以下玩家的消息被§c忽略§r"
empty-list-show-message: "§6你的拒收和忽略列表不存在任何玩家。§r"

Broadcast.yml
YAML:
# 【自2.0.0更新启用】
# 是否启用全服广播功能
# 大部分的文本支持占位符
enable: true
# 此文件的版本,通常不需要改变,检测更新需要用到
config-version: 2.0.0
# 广播顺序是否打乱
random: true
# 每次广播的间隔(秒)
# 如果是大型服务器,请将此间隔适当延长,避免占用过多的服务器资源。
interval: 60

# 全局定时广播,对所有服务器都生效
# 【请注意】
# 1. 当全局广播被启用的时候 message-list 也就是 广播内容 会合并(全局广播的在最上面)
# 2. 区服广播的 广播前缀(prefix) 的优先级最高(覆盖掉全局广播)
global:
  enable: true
  # 显示广播的前缀
  prefix: "§7[§b服务器娘§7]§r §8:§r"
  # 广播欢迎消息(会覆盖区服广播的配置如果global被启用)
  message-list:
    - "欢迎进入§a{proxy}§r,快来和大家一起冒险吧!"
    - "本服§r每日§a活跃§r玩家有机会获得丰厚奖励!"
    - "§c注意:§r请遵守服务器规则,共同创建和谐的游戏环境。"
    - "§f我们有专属的§9自定义插件§r,带来不一样的游戏体验!"
    - "§d服务器§r内有丰富的§a游戏模式§r,快来体验吧!"
    - "§7不要忘了加入我们的§bQQ群§r,获取最新动态和活动信息!"
    - "§f欢迎所有新玩家加入§r,任何问题请向管理员求助!"
    - "§e快邀请你的朋友们一起来§g玩耍§r吧,更多精彩等着你!"
    - "§8服务器正在进行§c维护§r,感谢您的耐心等待!"
    - "§a欢迎大家来到§7{server}§r,祝您游戏愉快!"
    - "§5全服§r§c活动§r即将开始,记得准时参加哦!"
    - "§d感谢您的支持与参与,我们会继续为大家提供更好的服务!"

# 区服局部定时广播
# 【请注意】
# 1. 若 global 全局广播 enable  = false 则只会单独广播区服的
# 2. channel-list 以及 server-list 所包括的所有服务器和频道中的服务器均会广播
# 3. 若一个或多个channel或者server在多个 区服广播 当中
#     i. prefix 仅会继承最后一个广播的 prefix
#     ii. 不同区服广播中所含相同的消息会合并重复消息不会增加出现概率
# 4. 若出现相同的 区服广播 名称,则仅会读取首次读取的 区服广播
locale:
  enable: true
  broadcast-list:
    # server-list 对应 (插件 config 以及velocity -> Velocity.toml server中对应的服务器id)
    # channel-list 对应 config.yml 中的 channel-list
    # 子服的广播会选择合并掉全局广播(全局广播必须被应用也就是 enable = true才会生效)
    example:
      enable: true
      prefix: "[§a服务器娘§r] §8:§r"
      message-list:
        - "服务器正在§a搭建§r中,更多精彩内容即将呈现。"
        - "§6欢迎§r加入服务器官方群"
        - "欢迎加入服务器大家庭"
        - "§d服务器§r内有丰富的§a游戏模式§r,快来体验吧!"
      channel-list:
        - lobby
      server-list:
        -
    example2:
      enable: false
      prefix: "[§a服务器娘§r] §8:§r"
      message-list:
        - "服务器正在§a搭建§r中,更多精彩内容即将呈现。"
        - "§6欢迎§r加入服务器官方群"
        - "欢迎加入服务器大家庭"
        - "§b新手村§r已开启,来吧!新玩家,开始您的冒险吧!"
      channel-list:
        - lobby
        - games
        - survive
      server-list:
        -

# 玩家加入代理服(群组服)的时候广播消息
welcome-broadcast:
  enable: true
  # 是否仅在首次加入代理服的时候进行广播
  only-first-join: false
  message: "欢迎加入§5群组§r!"

# Since v1.3.3 转移自 config.yml
# 是否需要在玩家离开/加入 子服务器的时候,在原服务器发送离开消息,在被加入的服务器发送加入消息
# log-to-console 是否在终端输出玩家的消息
# send-to-all-subServer 是否对所有子服进行广播消息(会覆盖下方的broadcast-in-channel)
# broadcast-in-channel 是否对服务器所属的频道进行广播
join-leave-broadcast:
  enable: true
  log-to-console: true
  send-to-all-subServer: false
  broadcast-in-channel: true
  join-prefix: "§a(+)§r"
  leave-prefix: "§c(-)§r"
  player-join-message: "{Group}{Prefix}{Player}{Suffix} 加入了 {Server}"
  player-leave-message: "{Group}{Prefix}{Player}{Suffix} 离开了 {Server}"

# 是否需要在玩家离开/加入 群组服务器的时候,在原服务器发送离开消息,在被加入的服务器发送加入消息
join-leave-proxy-broadcast:
  enable: true
  log-to-console: true
  send-to-all-subServer: true
  join-prefix: "§a[+]§r"
  leave-prefix: "§c[-]§r"
  player-join-message: "{Group}{Prefix}{Player}{Suffix} 现在加入了 {Proxy}"
  player-leave-message: "{Group}{Prefix}{Player}{Suffix} 现在离开了 {Proxy}"
:晕:统计数据
VeloChatX.svg

:次手手:写在最后
插件制作不易,Velocity给的API没有Bukkit给的全,基本上绝大部分全都是我自己完成的API。
如果需要请爱发电发电后获取,发电后可以获取插件持续更新,以及问题跟踪解答。

如有关MC服务器开服的插件或者开服有关的问题,欢迎到我的爱发电主页发电,可以定制插件/解答一些服务器的问题。

:花花:联系我们

点击链接加入群聊【水木的插件叉烧交流】
若链接失效请搜索群号: 912110987
赞助链接: 爱发电
  • 1725464682274.png
    1725464682274.png
    32.2 KB · 查看: 88
作者
WaterWood
查看
1,351
首次发布
最后更新

评分

0.00 星 0 次评分

WaterWood 的其他资源

最新更新

  1. Stable 2.0.1 release 稳定版 版本更新

    [2.0.1] - [2025.4.5] 修复 - 修复 全局广播 在不启用的时候抛出的空指针异常 - 修复 局部广播 无法读取的问题 - 修复日志无法被正常获取的问题 改动 -...
  2. Stable 2.0.0 release 稳定版 版本更新

    ## 📖 更新日志 - v2.0.0 ### 🧐 新特性 - 新增 **channel(频道)** 功能,用于管理分组跨服聊天 1. 服务器可以按照不同类别分配到不同的频道当中 2...
  3. 1.3.2稳定更新

    完善WaterAPI内容 修复了在JVM语言版本为英文的时候的英文配置文件,检测自动更新的时候因为英文版本的配置文件出现问题,而导致插件无法正常加载 未来更新预告:...
后退
顶部 底部