Files
netease-modsdk-wiki/docs/mcguide/27-网络游戏/课程3:简易网络服模板部署与常见操作/第7节:官方插件.md
2025-03-18 14:46:12 +08:00

151 lines
6.6 KiB
Markdown
Raw 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.
---
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)