151 lines
6.6 KiB
Markdown
151 lines
6.6 KiB
Markdown
---
|
||
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=>基岩版服务器=>插件=>官方插件=>公告插件
|
||
|
||

|
||
|
||
|
||
|
||
## 公告插件配置与部署
|
||
|
||
- 公告插件由neteaseAnnounce、neteaseAnnounceMaster、neteaseAnnounceService三个Mod构成。
|
||
|
||
- 执行neteaseAnnounceService目录下的mod.sql
|
||
|
||

|
||
|
||
- 登录到远程开发机
|
||
|
||
- 执行下面命令进入mysql:mysql -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 '';
|
||
|
||
```
|
||
|
||
|
||
|
||

|
||
|
||
- 修改neteaseAnnounce目录下的mod.json配置,
|
||
|
||

|
||
|
||

|
||
|
||
- 新建空白网络服,在大厅服配置neteaseAnnounce、在控制服配置neteaseAnnounceMaster、在功能服配置neteaseAnnounceService。
|
||
|
||

|
||
|
||
|
||
|
||
## 官方插件开发测试
|
||
|
||
- 部署该网络服,部署完成后执行“开发测试”。
|
||
|
||
- 打开控制台调试,执行POST指令:mail-send-many。
|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||
|
||
|
||
- 在游戏中查看效果
|
||
|
||

|