格兰蒂协会

 找回密码
 立即注册
快捷导航
搜索
查看: 4481|回复: 21
收起左侧

[资源] 【开发者周刊】如何写一个服务端ForgeMod/如何让插件使用ForgeMod的API

  [复制链接]

5339

积分

3689

金币

1

点数

管理员

格兰蒂吉祥物

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
5339
发表于 2021-3-22 12:36:48 | 显示全部楼层 |阅读模式
我的世界
原创度: 原创
原帖地址: -

你好像忘了登录了...

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前言:
在开发中经常会遇到各种各样的需求,这个也是比较常见的问题之一
比如说,僵尸Mod里的枪械攻击玩家甚至不会触发Bukkit的EntityDamageEvent,想修改它的伤害难上加难
再比如说你需要和CustomNPC里的某些API交互,获取NPC的装备物品,
这个时候你就需要写一个Forge插件
直接写一个Mod放在服务端会导致客户端也需要Mod否则进不去服务器
这个实例告诉你怎么写一个纯服务端ForgeMod,客户端不需要加这个Mod,又怎么和插件进行交互

教程/源码下载:
游客,如果您要查看本帖隐藏内容请回复

作为格兰蒂的吉祥物而存在着,但是很可爱!

爱发电上赞助我你将获得下载专属资源的权利

8

积分

7

金币

0

点数

Lv.1

Rank: 1

积分
8
发表于 2021-3-22 13:07:20 来自手机 | 显示全部楼层
不亏是吕乐乐,nb
回复

使用道具 举报

128

积分

106

金币

0

点数

Lv.4

Rank: 4Rank: 4Rank: 4Rank: 4

积分
128
QQ
发表于 2021-3-22 14:59:39 | 显示全部楼层
很强,吕乐乐NB
回复

使用道具 举报

4

积分

2

金币

0

点数

Lv.1

Rank: 1

积分
4
QQ
发表于 2021-3-22 16:10:39 | 显示全部楼层
谢谢分享
回复

使用道具 举报

44

积分

25

金币

0

点数

Lv.2

Rank: 2Rank: 2

积分
44
QQ
发表于 2021-3-22 18:23:52 | 显示全部楼层
我要学习,我爱学习
回复

使用道具 举报

116

积分

48

金币

0

点数

Lv.4

Rank: 4Rank: 4Rank: 4Rank: 4

积分
116
发表于 2021-3-22 20:10:20 | 显示全部楼层
乐乐nb!
冷静,思考,行动
回复

使用道具 举报

627

积分

325

金币

0

点数

Lv.11

?

Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11

积分
627
QQ
发表于 2021-3-22 21:03:02 | 显示全部楼层
好!很有精神
GHub: https://github.com/MCUmbrella
Tweet: @MCUmbrella

回复

使用道具 举报

12

积分

6

金币

0

点数

Lv.1

Rank: 1

积分
12
QQ
发表于 2021-3-22 21:35:23 | 显示全部楼层
MANIFEST.MF里的内容为什么不写build.gradle里让gradle自己生成,这样比较方便啊。

点评

(小声bb:另外,在普通Mod的主类的@Mod注解里加上acceptableRemoteVersions = "*"就能只在服务器装了)  详情 回复 发表于 2021-3-22 22:13
回复

使用道具 举报

12

积分

6

金币

0

点数

Lv.1

Rank: 1

积分
12
QQ
发表于 2021-3-22 22:13:32 | 显示全部楼层
Is_GK 发表于 2021-3-22 21:35
MANIFEST.MF里的内容为什么不写build.gradle里让gradle自己生成,这样比较方便啊。

(小声bb:另外,在普通Mod的主类的@Mod注解里加上acceptableRemoteVersions = "*"就能只在服务器装了)
回复

使用道具 举报

5339

积分

3689

金币

1

点数

管理员

格兰蒂吉祥物

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
5339
 楼主| 发表于 2021-3-22 22:21:03 | 显示全部楼层
Is_GK 发表于 2021-3-22 22:13
(小声bb:另外,在普通Mod的主类的@Mod注解里加上acceptableRemoteVersions = "*"就能只在服务器装了)

有这种设定的吗
好吧,看来我搞复杂化了
不过这也是一种办法吧
我也加进去了(不过我并没有亲手测试)
现在再看看教程,我随手写了点,比较懒所以不太严谨,大家能理解就好

点评

这个是我之前翻forge源码找到的 forge有3种mod检测方式 平常是默认方式 加了acceptableRemoteVersions = "*"就是不检测这个mod 还有一种是在主类里加个带@NetworkCheckHandler注解的boolean func(Map, Side)方法  详情 回复 发表于 2021-3-23 14:14
作为格兰蒂的吉祥物而存在着,但是很可爱!

爱发电上赞助我你将获得下载专属资源的权利
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|格兰蒂协会

GMT+8, 2021-5-10 13:43

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表