本帖最后由 1582952890 于 2017-9-16 18:11 编辑
(虽说项目已弃坑,但测试1.8-1.9可用,反馈1.10+不兼容,重置版未测试)
(以下内容摘自
http://www.mcbbs.net/thread-601563-1-1.html)
重置版PoreRT站内搬运帖
什么是Sponge,为什么要选择Sponge?
这部分内容并不重要,结论就是Sponge是一个更新的服务端插件API,相对于不更新的Cauldron,它更适合用来开新版本服务器,比如1.8.x,1.9.x,甚至1.10.x,如果对历史不感兴趣,可以不看折叠内容。
首先让我们谈谈API
最开始的Minecraft毫无疑问只有官方客户端/服务端
但是鉴于Java的特殊性,即便官方没有给源代码,依然可以通过反编译的方式修改游戏客户端/服务端
但是这种修改方式毫无疑问对开发者很不友好
一呢是对技术要求很高,毕竟Minecraft官方是对代码进行了混淆(一种代码保护手段)
二呢是容易造成冲突。比如说开发者A要开发一个登陆功能,需要获取用户登陆的消息。开发者B要开发一个上线提示功能,毫无疑问也需要获取用户登录的消息。如果A和B都自己修改代码实现功能,那么他们可能修改的代码会冲突。因为服务端只有一处用来做上线处理的,他们毫无疑问都会改这一处。那么到底按谁的代码为准呢?按A的为准那么B的功能就无法正常使用,反之亦然。而在代码越来越复杂以后,游戏和服务器都会无法启动,到处都是冲突,除非只使用一个扩展。
这个时候就有大神出现了,他们负责底层的游戏功能修改,然后整理成现成的功能提供给其他开发者使用。(比如获取各种消息,增加物品,地图,生物等等)
那么现在,用户登录的时候是大神的代码来处理,然后他再把上线消息转发给开发者A和B,这样就不会造成冲突了,而且也提高了可移植性,即便游戏代码修改,也只需要把大神那部分底层代码修改掉,A和B写的代码并不用再做修改。
大神的代就是所谓的API
毫无疑问能做这件事的人有很多,于是就有了各种API,比如Forge,ModLoader(已死),Bukkit,Sponge等等等等
在1.8之前,客户端最火的API当属Forge,而服务端当属Bukkit,就是我们常说的水桶服
修改游戏增加新物品/道具/地图/生物等等的扩展程序被称之为MOD,他们大部分基于Forge,当然也有部分基于其他API,而修改服务端,使用命令行作为主要操作和显示方式的扩展则被称为插件,他们几乎都是基于Bukkit开发的。
鉴于上面所说的原因,Forge和Bukkit是不兼容的,Bukkit自己实现了Craftbukkit,一个为原版服务端加上了BukkitAPI支持的服务端。而Forge则是提供了安装器,安装在原版服务端后服务端就能使用基于Forge的MOD。
但是很多人又想玩插件又想玩MOD,怎么办呢?
嗯,没错,又出来了一位大神,他手动处理两个API冲突部分,将他们整合到了一起,就是后来的MCPC Plus,后改名为Cauldron
接下来众所周知的GPL事件出现了,因为Bukkit的某个代码使用了GPL协议代码,按照GPL协议要求,使用了GPL协议代码的程序应当全部开源。然而Bukkit里又有一些无法开源的私有代码(这部分代码不属于Bukkit所以无权开源),结果就是Bukkit被告了,然后被迫停更了。
或许你们听说过Spigot,一个基于Bukkit增加了反作弊功能的服务端。它的作者钻了GPL协议的空子,强行继续更新起了Bukkit,然并卵,Cauldron作者,Forge作者等一系列大神都对那次事件心灰意冷,不想继续开发Bukkit,于是一合计就诞生了新的插件API--Sponge
和Bukkit不同,Sponge设计的时候就是基于Forge的,它看起来更像是一个基于Forge的MOD,所以兼容性方面也不再需要大神来整合了,只需要我们手动安装一个名为SpongeForge的MOD,就能得到Sponge插件的支持,十分方便。
而且它的更新速度很快,比如说1.10版本都发布了(当然,并不是稳定版),相对于永不更新的Cauldron,只有插件没有MOD的Spigot,毫无疑问Sponge更适合用来开1.8版本以后的服务器
这也是为什么要使用Sponge的理由
|
在软件工程里没有什么问题是不能通过加一个中间层解决的
就好比给游戏代码加了中间层隔离的Forge造就了众多MOD一样
自然也会有大神去做一个Bukkit中间层来兼容以前的Bukkit插件
这个项目就叫Pore,这是一个Sponge插件
原版:
下载地址:
https://ci.caseif.net/job/Pore/lastSuccessfulBuild [<--原下载地址已挂]
百度云下载:
http://pan.baidu.com/s/1hrF5G9I 密码: yuab [<--目前版本:Pore-1.0.0-SNAPSHOT][
30# 不支持1.10.2]
国外大佬重置版:
原帖地址:
https://forums.spongepowered.org/t/pore-returned-a-sponge-implementation-of-the-bukkit-api/14935[<--未测试]百度云下载:
https://pan.baidu.com/s/1o8pqz4u 密码: d59b
感谢
@1640727878提供
重置版PoreRT站内搬运帖
下载它,你将得到一个jar包,它是一个Sponge插件,正如第三步所说,把它放到mods文件夹就可以了,就像这样:
然后就开服吧,如果没有报错并且服务端目录里多了一个bukkit-plugins文件夹,那么恭喜你,安装成功了
只需要把Bukkit插件放在这个文件夹里就能使用了,就像这样:
这是@pppploi8写的MCSGUI管理插件,是一个基于Bukkit-1.6.4 API的Bukkit插件,它在Sponge里运行正常
最后,虽然有兼容Bukkit的解决方案,但是毫无疑问并不如Sponge插件完美,而且Essentials,Permission等基本插件已经有Sponge移植版了。如果条件允许(英文还算可以),还是强烈建议去官方找Sponge插件使用。
Sponge官方插件地址:
https://forums.spongepowered.org/c/plugins