{"id":14969409,"url":"https://github.com/rtakland/yeeeesmotd","last_synced_at":"2025-10-26T07:31:40.162Z","repository":{"id":238614643,"uuid":"797000934","full_name":"RTAkland/YeeeesMOTD","owner":"RTAkland","description":"个性化的服务器MOTD, 以及自定义服务器Icon. Custom server motd, random server favicon and random description","archived":false,"fork":false,"pushed_at":"2025-02-08T07:43:13.000Z","size":1178,"stargazers_count":18,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-08T08:29:45.719Z","etag":null,"topics":["bukkit","bungeecord","minecraft","motd","paper","ping","plugin","plugins","server","spigot","velocity"],"latest_commit_sha":null,"homepage":"https://modrinth.com/plugin/yeeeesmotd","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RTAkland.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-07T02:31:18.000Z","updated_at":"2025-02-08T07:43:17.000Z","dependencies_parsed_at":"2024-06-09T13:23:18.728Z","dependency_job_id":"8f399a86-fc7a-444f-acbc-b3b8ae8f7f6d","html_url":"https://github.com/RTAkland/YeeeesMOTD","commit_stats":{"total_commits":303,"total_committers":3,"mean_commits":101.0,"dds":0.02640264026402639,"last_synced_commit":"a4e1cd5396f843d0029efadc32846038db1da0a4"},"previous_names":["dangotown/yeeeesmotd","rtakland/yeeeesmotd"],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RTAkland%2FYeeeesMOTD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RTAkland%2FYeeeesMOTD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RTAkland%2FYeeeesMOTD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RTAkland%2FYeeeesMOTD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RTAkland","download_url":"https://codeload.github.com/RTAkland/YeeeesMOTD/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238284902,"owners_count":19446749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bukkit","bungeecord","minecraft","motd","paper","ping","plugin","plugins","server","spigot","velocity"],"created_at":"2024-09-24T13:41:48.823Z","updated_at":"2025-10-26T07:31:34.759Z","avatar_url":"https://github.com/RTAkland.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://static.rtast.cn/static/icon/yesmotd-icon.png\" alt=\"SDKIcon\"\u003e\n\n\u003ch3\u003eMade By \u003ca href=\"https://github.com/RTAkland\"\u003eRTAkland\u003c/a\u003e\u003c/h3\u003e\n\n\u003cimg src=\"https://static.rtast.cn/static/kotlin/made-with-kotlin.svg\" alt=\"MadeWithKotlin\"\u003e\n\n\u003cbr\u003e\n\u003cimg alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/actions/workflow/status/RTAkland/YeeeesMOTD/main.yml\"\u003e\n\u003cimg alt=\"Kotlin Version\" src=\"https://img.shields.io/badge/Kotlin-2.0.0-pink?logo=kotlin\"\u003e\n\u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/RTAkland/YeeeesMOTD?logo=apache\"\u003e\n\n\u003c/div\u003e\n\n* English docs [README](./README_en.md)\n\n# 概述\n\n\u003e 此插件可以让你的服务器信息个性化,包括:`ip指纹(将玩家皮肤的头像作为Icon)`、\n\u003e `随机MOTD描述信息`、 `虚假的在线玩家数`、`虚假的最大玩家数`、`随机服务器icon`、\n\u003e `*防压测*`、`hitokoto一言`、`随机版本协议号和描述`、 `虚假在线玩家列表`\n\n[!IMPORTANT]\n除Bungeecord和Velocity只需要java17就能运行其余平台均需要java21才能运行\n\n# 功能完整性\n\n你可以点击下方展开按钮查看每个平台功能适配\n\n\u003cdetails\u003e\n\u003csummary\u003e展开\u003c/summary\u003e\n\n|    功能/平台    | Velocity | Paper(Folia Supported) | Spigot \u0026 Bukkit | BungeeCord |\n|:-----------:|:--------:|:----------------------:|:---------------:|:----------:|\n|    ip指纹     |    ✅     |           ✅            |        ✅        |     ✅      |\n|   虚假最大玩家数   |    ✅     |           ✅            |        ✅        |     ✅      |\n|   虚假在线玩家数   |    ✅     |           ❌            |        ❌        |     ✅      |\n|  随机MOTD信息   |    ✅     |           ✅            |        ✅        |     ✅      |\n|   随机ICON    |    ✅     |           ✅            |        ✅        |     ✅      |\n|     防压测     |    ✅     |           ✅            |        ✅        |     ✅      |\n| hitokoto一言  |    ✅     |           ✅            |        ✅        |     ✅      |\n| 虚假协议版本和版本描述 |    ✅     |           ❌            |        ❌        |     ✅      |\n|  虚假在线玩家列表   |    ✅     |           ❌            |        ❌        |     ✅      |\n\n\u003c/details\u003e\n\n# 使用\n\n在[`Releases`](https://github.com/RTAkland/YeeeesMOTD/releases/)中找到你的服务端对应的文件下载插件,\n将插件放入plugins文件夹内即可使用\n\n\u003e YeeeesMOTD现支持`Spigot` `Paper` `Purpur` `Velocity` `Bukkit` `BungeeCord` `Luminol` `Folia` `Leaves`\n\u003e 以及各自的衍生服务端, 以上为测试过的服务端\n\n# 配置\n\n## ip指纹\n\n此功能需要服务器`开启正版验证`(`enable online-mode`)并且服务器`有公网IP`(`with public ip`)\nip指纹可以记录玩家登陆游戏的ip在下次玩家使用这个ip ping服务器的时候就会有如下效果(\n将玩家皮肤的头作为服务器的icon显示给玩家):\n\n![showcase](./images/description.png)\n\n以下是默认的配置文件\n\n```json\n  \"ipFingerprint\": {\n\"enabled\": true\n},\n```\n\n## 随机服务器icon\n\n这个功能可以实现随机的icon, 可以自定义\n\n随机服务器的icon需要提前准备几张`64x64`像素大小的图片放入服务器`plugins/YeeeesMotd/icons`\n文件夹内且图片格式必须为`png`(现在图片的尺寸不必须是64x64了如果不是64x64插件自动将图片缩放成64x64)\n\n\u003e 使用`yeeeesmotd reload`可以热重载服务器随机icon列表\n\n## 随机MOTD信息\n\n这个功能是修改随机的MOTD描述信息,可以自定义, 需要实现如下效果:\n\n![description](./images/description.png)\n\n你需要打开`config.json`, 找到`descriptions`根下， 你可以看到以下内容，可以修改对应行的内容\n其中`line1`表示第一行, `line2`表示第二行, 语法支持[MiniMessage](https://github.com/KyoriPowered/adventure)\n以下为默认的配置\n\n```json\n \"descriptions\": [\n{\n\"line1\": \"\u003cyellow\u003e\u003cbold\u003eYeeeesMOTD\",\n\"line2\": \"\u003clight_purple\u003e\u003cbold\u003ePowered by RTAkland: https://github.com/RTAkland\"\n},\n{\n\"line1\": \"\u003c#00ff00\u003e\u003cbold\u003eDangoTown 团子小镇 生电服务器欢迎你\",\n\"line2\": \"\u003cyellow\u003e\u003cbold\u003ehttps://dgtmc.top\"\n},\n{\n\"line1\": \"\u003c#00FFFF\u003e\u003cbold\u003e团子小镇是一个历史悠久的服务器\",\n\"line2\": \"\u003c#00FFFF\u003e\u003cbold\u003e服务器于2016年开服至今\"\n}\n]\n```\n\n## 玩家在线数和最大玩家数\n\n这个功能可以设置虚假的在线玩家数和最大玩家数\n**注意: 此功能在`Bukkit \u0026 Paper \u0026 Spigot服务端无法使用**\n\n默认配置如下:\n\n```json\n\"maximumPlayer\": -1,\n\"onlinePlayer\": -1,\n\"clearSamplePlayer\": true\n```\n\n`maximumPlayer`表示最大玩家数默认为`-1`,\n`onlinePlayer`表示在线玩家数默认为`-1`,\n`clearSamplePlayer`表示是否清除在线玩家列表, 没有清除的效果图见[虚假在线玩家列表](#虚假在线玩家列表)\n默认为开启\n\n**注意: 这个功能只是将虚假的数据发送给玩家客户端实际上服务器的最大玩家数并不会受影响, 如果你要更改服务器的最大玩家数你需要更改服务端的配置文件\n**\n\n## 虚假在线玩家列表\n\n这个功能可以生成一些随机的玩家的名字显示给客户端，实际上这些玩家并不存在效果如下:\n\n![fake_sample_player](./images/fake_sample_player.png)\n\n默认的配置如下:\n\n```json\n\"fakeSamplePlayer\": {\n\"enabled\": true,\n\"fakePlayersCount\": 10\n},\n```\n\n`enabled`表示是否开启默认为关闭\n`fakePlayersCount`表示虚假的在线玩家列表, 默认为10,\n**该值不要设置超过400过大的话玩家ping服务器会出错, 超过400会被自动设置为10**\n\n如果你将`clearSamplePlayer`设置为`true`那么这个配置将不会生效即使`enabled`改为`true`\n\n\u003e\n如果你想将自己的名字添加进这个随机名字列表你可以点击[这里](https://github.com/RTAkland/Static/edit/main/static/username.txt)\n\u003e fork仓库并修改然后提交Pull Request, 在我审核后即可将你的名字加入这个列表  \n\u003e 你也可以点击[这里](https://static.rtast.cn/static/username.txt)来查看已有玩家列表\n\n## 防压测\n\n此功能可以(大概)防止恶意压测服务器， 所以玩家进服务器之前需要ping一次服务器,\n如果ping服务器的事件和进入服务器的过长，则需要重新ping一次服务器,\n以下为配置文件\n\n```json\n{\n  \"pingPass\": {\n    \"enabled\": false,\n    \"pingFirstText\": \"Please ping the server first! / 请先在服务器列表Ping一次服务器\",\n    \"pingAgainText\": \"Please ping the server again! / 请重新Ping一次服务器\",\n    \"interval\": 120\n  }\n  // ...\n}\n```\n\n其中`enabled`表示是否开启防压测，默认为关闭`false`.  \n`pingFirstText`表示玩家没有先ping服务器就进入服务器，将玩家断开连接的时候提示的信息.  \n`rePingText`表示玩家ping服务器的时间和进入服务器的时间间隔过长的提示信息.  \n`interval`表示ping服务器和进入服务器的最大间隔时间单位为 `秒`\n\n## Hitokoto一言\n\n此功能可以随机一言里的句子当作服务器描述信息, 你可以修改一言出现的`概率`(`Probability`)(范围0 ~ 100)\n可以设置一言句子的`种类`(`Type`) 和 `字体颜色`(`Font color`), 下面是详细的配置文件:\n\n```json\n  // ...\n\"hitokoto\": {\n\"enabled\": false,\n\"color\": \"#00E5EE\",\n\"type\": \"a\",\n\"probability\": 30\n}\n// ...\n```\n\n在上面的json文本中`hitokoto`根下的`enabled`表示是否开启此功能,默认关闭.  \n`color` 表示字体的颜色可以用RGB 16进制表示 ***请务必带上前面的 `#`***  \n`probability`表示一言当作MOTD概率默认为30%， 范围0 ~ 100 如果不在这个闭区间内则概率为0,\n当然如果你的概率设置成100的话那么最终显示出的概率也只有`50%`, 因为`ip指纹`(`ip fingering`)占用了剩余的`50%`\n概率的计算方式见 [概率计算](#概率计算)   \n`type` 表示一言的种类可选的种类具体见下表: 当然你也可以使用`all`来指定所有的类别\n\u003cdetails\u003e\n\u003csummary\u003e展开\u003c/summary\u003e\n\n| 参数 |      说明      |\n|:--:|:------------:|\n| a  |      动画      |\n| b  |      漫画      |\n| c  |      游戏      |\n| d  |      文学      |\n| e  |      原创      |\n| f  |     来自网络     |\n| g  |      其他      |\n| h  |      影视      |\n| i  |      诗词      |\n| j  |     网易云      |\n| k  |      哲学      |\n| l  |     抖机灵      |\n| 其他 | 作为 `动画`(a)处理 |\n\n\u003c/details\u003e\n\n## 虚假版本协议以及协议描述\n\n这个功能可以让你的服务器返回给玩家配置文件内的随即版本号(Protocol Number)以及随即版本描述(Protocol Name)  \n版本号就是游戏数据包版本号, 你可以在[这里](https://wiki.vg/Protocol_version_numbers)找到每个版本对应的版本号,\n版本描述就是`1.20.4`这是版本描述, 版本号是`765`,765是1.20.4的版本号  \n***注意***: 当然这个功能仅仅是返回了虚假的版本信息并不会真正的影响到游玩, 下方是效果图:\n\n![fake_protocol.png](images/fake_protocol.png)\n\n其中`shit bro`可以更改成你想要的文字,\n如果服务器返回的版本号和客户端的版本号不一致则最右方服务器状态信息就会显示一个❌  \n下方是这个功能的配置文件片段:\n\n```json\n\"fakeProtocol\": {\n\"enabled\": false,\n\"protocolNumberPool\": [],\n\"protocolNamePool\": [],\n\"alwaysInvalidProtocolNumber\": false\n},\n\n```\n\n`enabled`表示是否开启默认为关闭,\n`protocolNumberPool`表示版本号列表,可以填写整形数组例如`[1,2,3,4,5]`请务必使用半角逗号(英文逗号),  \n`protocolNamePool` 表示版本描述列表,可以填写字符串数组例如`[\"Shit bro\", \"Test\"]`请使用半角引号(英文引号),   \n当然在这里你也可以使用MiniMessage的语法来进行自定义字体颜色样式, 但是只能使用单个标签不能使用成对的标签例如你可以使用`\u003cgreen\u003e` \n不能使用`\u003cgreen\u003es\u003c/green\u003e`你可以参考这个例子进行修改`\u003cgreen\u003e测试 \u003cyellow\u003e\u003cbold\u003e[\u003conlinePlayer\u003e/\u003cmaxPlayer\u003e]`  \n`alwaysInvalidProtocolNumber`表示是否总是无效的版本号, 如果设置为`true`则`protocolNumberPool`内的设置不会生效\n这会让服务器总是返回版本号为`-1`\n\n### MiniMessage\n\n这里展示了一些MiniMessage格式的用法\n\n```json\n[\n  {\n    // 这里表示黄色和加粗\n    \"line1\": \"\u003cyellow\u003e\u003cbold\u003eYeeeesMOTD\",\n    \"line2\": \"\u003clight_purple\u003etest\"\n  },\n  {\n    \"line1\": \"\u003c#00ff00\u003e\u003citalic\u003eDangoTown 团子小镇 生电服务器欢迎你\",\n    // 你也可以直接使用RGB16进制表示方法来表示颜色\n    \"line2\": \"\u003cyellow\u003e\u003cbold\u003ehttps://dgtmc.top\"\n  }\n]\n```\n\n\u003e 更多MiniMessage的用法请前往[MiniMessage Docs](https://docs.advntr.dev/minimessage/format.html#standard-tags)\n\n***注意*** :在`Spigot`平台你不能使用成对的颜色标签来表示颜色例如下方示例\n\n```json\n  {\n  // 不能这样使用\n  \"line1\": \"\u003cyellow\u003eYeeeesMOTD\u003c/yellow\u003e\",\n  // 你应该使用单个标签\n  \"line2\": \"\u003clight_purple\u003etest\u003cgreen\u003etest2\"\n}\n```\n\n# 注意事项\n\n* ip指纹仅能在开启了正版验证的服务器使用,离线服务器因玩家UUID计算方式和正版有区别所以无法使用\n* ip指纹仅在有公网IP的服务器生效, 如果使用的是FRP端口映射技术则无法使用\n\n# 开发\n\n建议使用[Intellij IDEA](https://www.jetbrains.com/idea/)进行开发, 本项目百分之百使用[Kotlin](https://kotl.in)  \n如果你正在学习Kotlin, 那么本项目可能是你的选择, 项目代码简单易阅读\n\n* 1.Clone仓库\n\n```shell\n$ git clone https://github.com/RTAkland/YeeeesMOTD.git\n```\n\n* 2.等待IDEA索引完成\n* 3.阅读源代码并遵循Apache-2.0协议进行开发和开源\n\n# 开源\n\n- 本项目以[Apache-2.0](./LICENSE)许可开源, 即:\n    - 你可以直接使用该项目提供的功能, 无需任何授权\n    - 你可以在**注明来源版权信息**的情况下对源代码进行任意分发和修改以及衍生\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FRTAkland%2FYeeeesMOTD.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FRTAkland%2FYeeeesMOTD?ref=badge_large)\n\n# 鸣谢\n\n\u003cdiv\u003e\n\n\u003cimg src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.png\" alt=\"JetBrainsIcon\" width=\"128\"\u003e\n\n\u003ca href=\"https://www.jetbrains.com/opensource/\"\u003e\u003ccode\u003eJetBrains Open Source\u003c/code\u003e\u003c/a\u003e 提供的强大IDE支持\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtakland%2Fyeeeesmotd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frtakland%2Fyeeeesmotd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtakland%2Fyeeeesmotd/lists"}