This commit is contained in:
boybook
2025-12-01 20:59:16 +08:00
parent 12738a142c
commit 760c2dd9ad
5535 changed files with 21070 additions and 2021 deletions

View File

@@ -0,0 +1,150 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/image-20200221210608332.eccd8edb.png
hard: 入门
time: 20分钟
---
# 官方插件
本节内容可查阅[视频教程](https://cc.163.com/act/m/daily/iframeplayer/?id=5faa58dc5655da63cc2d8a5d)的**官方mod插件**小节
## 获取官方插件
用以下方式下载官方插件:
- MCStudio=>基岩版服务器=>插件=>官方插件=>公告插件
![image-20200221210532737](./images/firstplugin01.png)
## 公告插件配置与部署
- 公告插件由neteaseAnnounce、neteaseAnnounceMaster、neteaseAnnounceService三个Mod构成。
- 执行neteaseAnnounceService目录下的mod.sql
![image-20200221210532737](./images/firstplugin02.png)
- 登录到远程开发机
- 执行下面命令进入mysqlmysql -h机器ip -p数据库密码 -u数据库用户名。
```
mysql -h127.0.0.1 -uminecraft -pminecraft
```
- 执行下面命令切换数据库名称 use minecraft
```
use minecraft
```
- 执行mod.sql把mod.sql文件的内容拷贝并执行结果提示"Query OK"表示执行成功。示例如下:
```
-- ###########################version1.0.0####################
-- 登录弹窗
CREATE TABLE IF NOT EXISTS `neteaseLoginPopup` (
`_id` INT UNSIGNED NOT NULL auto_increment COMMENT '唯一ID自增',
`title` VARCHAR(40) NOT NULL DEFAULT 'empty' COMMENT '弹窗标题',
`content` VARCHAR(2000) NOT NULL DEFAULT '' COMMENT '弹窗文本正文,支持颜色格式化',
`pic` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '弹窗图片路径需要在res中存在',
`priority` INT UNSIGNED NOT NULL COMMENT '弹窗显示优先级,数字大的显示在前',
`beginTime` INT UNSIGNED NOT NULL COMMENT '显示起始时间,超过这个时间后登录的玩家才会看到此弹窗',
`endTime` INT UNSIGNED NOT NULL COMMENT '显示结束时间,超过这个时间后登录的玩家不会再看到此弹窗',
PRIMARY KEY (_id) COMMENT '主键',
INDEX `end_index` (`endTime`) COMMENT '显示结束时间索引,方便清理过期弹窗'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 浮窗公告
CREATE TABLE IF NOT EXISTS `neteaseFloatingWindow` (
`_id` INT UNSIGNED NOT NULL auto_increment COMMENT '唯一ID自增',
`content` VARCHAR(255) NOT NULL DEFAULT 'empty' COMMENT '公告正文,支持颜色格式化',
`displayTime` TINYINT UNSIGNED NOT NULL COMMENT '公告显示时长,单位秒',
`lobbyShow` TINYINT UNSIGNED NOT NULL COMMENT '公告是否在大厅服显示',
`gameShow` TINYINT UNSIGNED NOT NULL COMMENT '公告是否在游戏服显示',
`beginTime` INT UNSIGNED NOT NULL COMMENT '显示起始时间,公告会在这个时间点开始显示',
`endTime` INT UNSIGNED NOT NULL COMMENT '显示结束时间,超过这个时间,公告不会再显示',
PRIMARY KEY (_id) COMMENT '主键',
INDEX `end_index` (`endTime`) COMMENT '显示结束时间索引,方便清理过期公告'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 邮件用户信息
CREATE TABLE IF NOT EXISTS `neteaseMailUserProp` (
`uid` INT UNSIGNED NOT NULL COMMENT '用户唯一ID',
`lastGroupSync` INT UNSIGNED NOT NULL COMMENT '群邮件同步进度',
`version` INT UNSIGNED NOT NULL COMMENT '玩家信息版本',
`cTime` INT UNSIGNED NOT NULL COMMENT '玩家首次登录游戏的时间',
PRIMARY KEY (uid) COMMENT '主键'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 单人邮件
CREATE TABLE IF NOT EXISTS `neteaseUserMail` (
`_id` INT UNSIGNED NOT NULL auto_increment COMMENT '唯一ID自增',
`uid` INT UNSIGNED NOT NULL COMMENT '邮件属于哪位玩家',
`title` VARCHAR(40) NOT NULL DEFAULT 'empty' COMMENT '邮件标题',
`content` VARCHAR(1500) NOT NULL DEFAULT '' COMMENT '邮件正文',
`itemList` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '邮件附件物品列表使用json.dumps序列化为字符串',
`cTime` INT UNSIGNED NOT NULL COMMENT '邮件创建时间',
`expire` INT UNSIGNED NOT NULL COMMENT '邮件过期时间',
`srcName` VARCHAR(40) NOT NULL DEFAULT '' COMMENT '邮件发送者',
`hasRead` TINYINT UNSIGNED NOT NULL COMMENT '是否已读',
`getBonus` TINYINT UNSIGNED NOT NULL COMMENT '是否已经领取奖励',
PRIMARY KEY (_id) COMMENT '主键',
INDEX `uid_index` (`uid`) COMMENT '玩家uid索引方便检索属于某玩家的邮件',
INDEX `expire_index` (`expire`) COMMENT '过期时间索引,方便清理过期邮件'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 群发邮件
CREATE TABLE IF NOT EXISTS `neteaseGroupMail` (
`_id` INT UNSIGNED NOT NULL auto_increment COMMENT '唯一ID自增',
`effectTime` INT UNSIGNED NOT NULL COMMENT '生效时间,首次登录时间早于此时间的玩家才会收到此邮件',
`title` VARCHAR(40) NOT NULL DEFAULT 'empty' COMMENT '邮件标题',
`content` VARCHAR(1500) NOT NULL DEFAULT '' COMMENT '邮件正文',
`itemList` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '邮件附件物品列表使用json.dumps序列化为字符串',
`cTime` INT UNSIGNED NOT NULL COMMENT '邮件创建时间',
`expire` INT UNSIGNED NOT NULL COMMENT '邮件过期时间',
`srcName` VARCHAR(40) NOT NULL DEFAULT '' COMMENT '邮件发送者',
PRIMARY KEY (_id) COMMENT '主键',
INDEX `expire_index` (`expire`) COMMENT '过期时间索引,方便清理过期邮件'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ###########################version1.0.3####################
-- 单人邮件:增加邮件附件长度限制
ALTER TABLE `neteaseUserMail` MODIFY COLUMN `itemList` VARCHAR (4000) NOT NULL DEFAULT '';
-- 群发邮件:增加邮件附件长度限制
ALTER TABLE `neteaseGroupMail` MODIFY COLUMN `itemList` VARCHAR (4000) NOT NULL DEFAULT '';
```
![image-20191230170155729](./images/chajian_sql.png)
- 修改neteaseAnnounce目录下的mod.json配置
![image-20200221210532737](./images/firstplugin03.png)
![image-20200221210532737](./images/firstplugin04.png)
- 新建空白网络服在大厅服配置neteaseAnnounce、在控制服配置neteaseAnnounceMaster、在功能服配置neteaseAnnounceService。
![image-20200221210532737](./images/firstplugin05.png)
## 官方插件开发测试
- 部署该网络服,部署完成后执行“开发测试”。
- 打开控制台调试执行POST指令mail-send-many。
![image-20200221210532737](./images/firstplugin06.png)
![image-20200221210532737](./images/firstplugin07.png)
![image-20200221210532737](./images/firstplugin08.png)
- 在游戏中查看效果
![image-20191230170211461](./images/image-20191230170211461.png)