Files
netease-bedrock-wiki/mconline/30-网络服插件教程/4-插件制作/4-插件编写——制作篇(上).md
2025-08-25 18:36:29 +08:00

88 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 插件编写——制作篇(上)
## 需求分析
之前提到过Apollo插件拥有3种不同的类型我们在开始编写前首先需要思考哪些需求可以运行在哪个类型的服务器上。
结构图如下
![](./images/xmind.png)
### Game/Lobby
- 输入cp1领取号码成功领取后用官方neteaseAlert插件提示“本次领取的号码是%s”
- 若超过当日可领取的上限3输入cp1领取时用官方neteaseAlert插件提示“今日领取的号码已超过上限”
- 每日开奖时间之前上一天的2001~当天2000输入cp2可查询已领取的号码。
- 官方neteaseAlert插件提示已领取的号码情况“今日已领取%s数量个号码%s、%s、%s”
> 为什么聊天输入相关的监听需要做在Game/Lobby服务器
因为玩家只会在Game/Lobby上在线只有在这两种服务器上才能监听玩家的聊天信息。
### Service
- 每日2000开奖通过邮件官方neteaseAnnounce插件告知中奖玩家并发放奖励。
- 中奖的邮件提示:本期中奖号码:%s、%s、%s、%s、%s。恭喜你在本期抽奖活动中中奖请再接再厉。邮件附件内容黑曜石*5
- 没中奖的邮件提示:本期中奖号码:%s、%s、%s、%s、%s。很遗憾在本期抽奖活动中未能中奖请继续努力。邮件附件内容铁锭*3
- 服务器API——给指定玩家随机获得1个号码必须是本期活动没有获得过的如果没有号码则返回-1)
- 服务器API——返回玩家已获取的号码数量
- 服务器API——返回玩家已获取的号码列表
- 服务器API——重置某个玩家的号码
- 服务器API——重置所有号码
- 服务器API——执行发奖返回获奖的号码列表以及获奖玩家列表
- 发奖时刻之前触发——返回中奖号码,可修改中奖号码
- 发奖时刻之后触发——返回中奖号码与中奖玩家
> 为什么“每日2000开奖通过邮件官方neteaseAnnounce插件告知中奖玩家并发放奖励。”需要做在Service服务器
因为发奖需要统一操作而不可能所有玩家都在同一个Game/Lobby中数据处理放在Service上则可以统一处理更方便。
### Master
# 开发查询和参考链接
### Mod SDK
对游戏相关SDK不熟悉可以在这里查询。
- 接口: <a href="../../../mcdocs/1-ModAPI/接口/通用/索引.html" rel="noopenner"> 链接 </a>
- 事件:<a href="../../../mcdocs/1-ModAPI/事件/世界.html" rel="noopenner"> 链接 </a>
### Apollo
对Apollo的专用接口有疑问可以在这里查询。
- <a href="../../../mcdocs/2-Apollo/4-SDK/1-大厅与游戏服事件.html" rel="noopenner"> 链接 </a>
### Apollo 插件地址
在这里可以查看已经制作好的插件,并了解它们各自的功能。
- 官方插件:<a href="../../../mcdocs/2-Apollo/5-官方插件简介.html" rel="noopenner"> 链接</a>
- 第三方插件:<a href="../../../mcdocs/2-Apollo/6-第三方插件简介.html" rel="noopenner"> 链接</a>
# 代码编写
首先点击新建空白Addon作品名称填写Lottery为例
![](./images/code-1.png)
点击启动编辑会打开编辑器。但是我们创建项目的目的是为了快速生成一个Apollo插件模板所以在弹出编辑器窗口后关闭即可。
随后在基岩版组件中找到我们刚刚创建的名为Lottery的AddOn右键选择点击转换为服务器Mod。
<img src="./images/code-2.png" style="zoom:150%;" />
弹出的窗口中,选项不需要做特别修改,直接点击转换。
随后在基岩版服务器插件中找到刚刚创建的Lottery右键打开目录。因为我们之前已经将需求归类总结出需要Game/Lobby服和Service服的插件所以我们将文件夹复制并重命名成符合规范的。这里我们复制一份Lottery并重命名成soldierLottery再将原来的文件夹重命名成soldierLotteryService。
操作完成后文件夹的样子应该如截图所示。
![](./images/code-3.png)