• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~
YeeeesMOTD -新一代服务器MOTD插件!

授权转载 开源 其他 YeeeesMOTD -新一代服务器MOTD插件! 1.4.1

版权类型
授权转载
插件中文名称
YeeeesMOTD
插件英文名称
YeeeesMOTD
原帖地址
https://github.com/RTAkland/YeeeesMOTD
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Folia
  4. Purpur
  5. Leaves
  6. 其他核心
语言支持
多语言
适配版本(Java)
  1. 1.21
概述
此插件可以让你的服务器信息个性化,包括:ip指纹(将玩家皮肤的头像作为Icon)、 随机MOTD描述信息、 虚假的在线玩家数、虚假的最大玩家数、随机服务器icon、 *防压测*、hitokoto一言、随机版本协议号和描述、 虚假在线玩家列表

功能完整性
IMG_20240809_220608.jpg

使用
在外链中找到你的服务端对应的文件下载插件, 将插件放入plugins文件夹内即可使用

YeeeesMOTD现支持Spigot Paper Purpur Velocity Bukkit BungeeCord Luminol Folia 以及各自的衍生服务端, 以上为测试过的服务端

配置
ip指纹
此功能需要服务器开启正版验证(enable online-mode)并且服务器有公网IP(with public ip) ip指纹可以记录玩家登陆游戏的ip在下次玩家使用这个ip ping服务器的时候就会有如下效果( 将玩家皮肤的头作为服务器的icon显示给玩家):
IMG_20240809_221200.png


以下是默认的配置文件

JSON:
"ipFingerprint": {
"enabled": true
}
随机服务器icon
这个功能可以实现随机的icon, 可以自定义
随机服务器的icon需要提前准备几张64x64像素大小的图片放入服务器plugins/YeeeesMotd/icons 文件夹内且图片格式必须为png

使用yeeeesmotd reload可以热重载服务器随机icon列表

随机MOTD信息
这个功能是修改随机的MOTD描述信息,可以自定义, 需要实现如下效果:
IMG_20240809_221200.png


你需要打开config.json, 找到descriptions根下, 你可以看到以下内容,可以修改对应行的内容 其中line1表示第一行, line2表示第二行, 语法支持MiniMessage 以下为默认的配置

JSON:
  "descriptions": [
    {
      "title": "<yellow><bold>YeeeesMOTD",
      "link": "<light_purple><bold>Powered by RTAkland: <yellow><bold>https://github.com/RTAkland"
    },
    {
      "title": "<#00ff00><bold>DangoTown 团子小镇 生电服务器欢迎你",
      "link": "<yellow><bold>https://dgtmc.top"
    },
    {
      "title": "<#00FFFF><bold>团子小镇是一个历史悠久的服务器",
      "description": "<#00FFFF><bold>服务器于2016年开服至今"
    }
  ]
玩家在线数和最大玩家数
这个功能可以设置虚假的在线玩家数和最大玩家数 注意: 此功能在`Bukkit & Paper & Spigot服务端无法使用

默认配置如下:


JSON:
"maximumPlayer": -1,
"onlinePlayer": -1,
"clearSamplePlayer": true

maximumPlayer表示最大玩家数默认为-1, onlinePlayer表示在线玩家数默认为-1, clearSamplePlayer表示是否清除在线玩家列表, 没有清除的效果图见虚假在线玩家列表 默认为开启

**注意: 这个功能只是将虚假的数据发送给玩家客户端实际上服务器的最大玩家数并不会受影响, 如果你要更改服务器的最大玩家数你需要更改服务端的配置文件 **

虚假在线玩家列表
这个功能可以生成一些随机的玩家的名字显示给客户端,实际上这些玩家并不存在效果如下:

fake_sample_player-1-png.76509


默认的配置如下:


JSON:
  "fakeSamplePlayer": {
    "enabled": true,
    "fakePlayersCount": 10
  }

enabled表示是否开启默认为关闭 fakePlayersCount表示虚假的在线玩家列表, 默认为10, 该值不要设置超过400过大的话玩家ping服务器会出错, 超过400会被自动设置为10

如果你将clearSamplePlayer设置为true那么这个配置将不会生效即使enabled改为true

如果你想将自己的名字添加进这个随机名字列表你可以点击这里 fork仓库并修改然后提交Pull Request, 在我审核后即可将你的名字加入这个列表
你也可以点击这里来查看已有玩家列表

防压测
此功能可以(大概)防止恶意压测服务器, 所以玩家进服务器之前需要ping一次服务器, 如果ping服务器的事件和进入服务器的过长,则需要重新ping一次服务器, 以下为配置文件


JSON:
{
  "pingPass": {
    "enabled": false,
    "pingFirstText": "Please ping the server first! / 请先在服务器列表Ping一次服务器",
    "pingAgainText": "Please ping the server again! / 请重新Ping一次服务器",
    "interval": 120
  }
  // ...
}

其中enabled表示是否开启防压测,默认为关闭false.
pingFirstText表示玩家没有先ping服务器就进入服务器,将玩家断开连接的时候提示的信息.
rePingText表示玩家ping服务器的时间和进入服务器的时间间隔过长的提示信息.
interval表示ping服务器和进入服务器的最大间隔时间单位为

Hitokoto一言
此功能可以随机一言里的句子当作服务器描述信息, 你可以修改一言出现的概率(Probability)(范围0 ~ 100) 可以设置一言句子的种类(Type) 和 字体颜色(Font color), 下面是详细的配置文件:

JSON:
// ...

"hitokoto": {

    "enabled": false,
    
    "color": "#00E5EE",
    
    "type": "a",
    
    "probability": 30
    
    }
    
    // ...

在上面的json文本中hitokoto根下的enabled表示是否开启此功能,默认关闭.
color 表示字体的颜色可以用RGB 16进制表示 请务必带上前面的 #
probability表示一言当作MOTD概率默认为30%, 范围0 ~ 100 如果不在这个闭区间内则概率为0, 当然如果你的概率设置成100的话那么最终显示出的概率也只有50%, 因为ip指纹(ip fingering)占用了剩余的50% 概率的计算方式见 概率计算
type 表示一言的种类可选的种类具体见下表: 当然你也可以使用all来指定所有的类别
IMG_20240809_224843.jpg


虚假版本协议以及协议描述
这个功能可以让你的服务器返回给玩家配置文件内的随即版本号(Protocol Number)以及随即版本描述(Protocol Name)
版本号就是游戏数据包版本号, 你可以在这里找到每个版本对应的版本号, 版本描述就是1.20.4这是版本描述, 版本号是765,765是1.20.4的版本号
注意: 当然这个功能仅仅是返回了虚假的版本信息并不会真正的影响到游玩, 下方是效果图:

fake_protocol (3).png


其中shit bro可以更改成你想要的文字, 如果服务器返回的版本号和客户端的版本号不一致则最右方服务器状态信息就会显示一个❌
下方是这个功能的配置文件片段:

JSON:
  "fakeProtocol": {
    "enabled": false,
    "protocolNumberPool": [],
    "protocolNamePool": [],
    "alwaysInvalidProtocolNumber": false
  }

enabled表示是否开启默认为关闭, protocolNumberPool表示版本号列表,可以填写整形数组例如[1,2,3,4,5]请务必使用半角逗号(英文逗号), protocolNamePool 表示版本描述列表,可以填写字符串数组例如["Shit bro", "Test"]请使用半角引号(英文引号), alwaysInvalidProtocolNumber表示是否总是无效的版本号, 如果设置为true则protocolNumberPool内的设置不会生效 这会让服务器总是返回版本号为-1

MiniMessage 小消息
这里展示了一些MiniMessage格式的用法


JSON:
[
    {
        // 这里表示黄色和加粗
        "line1": "<yellow><bold>YeeeesMOTD",
        "line2": "<light_purple>test"
    },
    {
        "line1": "<#00ff00><italic>DangoTown 团子小镇 生电服务器欢迎你",
        // 你也可以直接使用RGB16进制表示方法来表示颜色
        "line2": "<#ffff00><bold>https://dgtmc.top"
    }
]

更多MiniMessage的用法请前往MiniMessage Docs

注意 :在Spigot平台你不能使用成对的颜色标签来表示颜色例如下方示例


JSON:
{
  // 不能这样使用
  "line1": "<yellow>YeeeesMOTD</yellow>",
  // 你应该使用单个标签
  "line2": "<light_purple>test<green>test2"
}

概率计算
在高中的课程中学到了概率与统计即: 基本概率概念, 独立事件和互斥事件, 条件概率, 随机变量和分布 但是这里只用到了独立事件和互斥事件。
要计算某个事件的最终概率,可以通过将各个独立事件的概率相乘来获得。
在程序中总共会有两次随机产生, 第一次概率固定为50%,分别对应了展示玩家头像 和展示图标列表中的图标,如果结果是展示图标列表中的图标则进行下一个独立的事件的概率的计算 第二次随机是否展示一言,最终的概率计算方程为P(最终被抽中)=P(第一次抽中)×P(第二次抽中) 由于第一次的概率固定为50%所欲第一次抽中的概率取固定值0.5,第二次的概率假设为x% 那么最终的概率为0.5x。 假设将x设为30%那么最终的结果就是0.5x0.3=0.15=15%。

注意事项
ip指纹仅能在开启了正版验证的服务器使用,离线服务器因玩家UUID计算方式和正版有区别所以无法使用
ip指纹仅在有公网IP的服务器生效, 如果使用的是FRP端口映射技术则无法使用

搬运授权证明:
IMG_20240809_230814.jpg
  • fake_sample_player (1).png
    fake_sample_player (1).png
    31.3 KB · 查看: 945
作者
柠枺
下载
717
查看
1,373
首次发布
最后更新

评分

0.00 星 0 次评分

柠枺 的其他资源

最新更新

  1. 图标功能更新

    现在会自动将服务器图标图片转换成64x64大小
  2. 仅支持1.16即以上版本

    标题所述
  3. 支持自定义协议版本名称使用minimessage语法

    标题所述
后退
顶部 底部