Minecraft(我的世界)中文论坛

 找回密码
 注册(register)
查看: 6896|回复: 14

[插件开发教程] Sponge插件开发样例

[复制链接]
发表于 2015-1-13 12:07:24 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

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

x
本帖最后由 RecursiveG 于 2015-1-13 12:07 编辑

考虑到SpongeAPI已经发布了1.0版本,我在这写个短短的小样例,让各位(主要是各位Bukkit插件开发者)对Sponge插件开发有个基本认识。
具体的教程在这里都可以查到https://docs.spongepowered.org/en/latest/plugins/。不过是英文的,应该不久就有人去翻译成中文吧。
我在这里写一个小小的“Hello World”插件:每个玩家登录时显示一条欢迎信息。
我以Gradle和Intellij作为开发环境来演示。

首先是建一个文件夹来放你的代码,然后建立一个build.gradle文件,内容如下:
  1. apply plugin: 'java'

  2. sourceCompatibility = 1.6
  3. version = '1.0'

  4. repositories {
  5.     mavenCentral()
  6.     maven {
  7.         name 'Sponge maven repo'
  8.         url 'http://repo.spongepowered.org/maven/'
  9.     }
  10. }

  11. dependencies {
  12.     compile "org.spongepowered:spongeapi:1.1-SNAPSHOT"
  13.     testCompile group: 'junit', name: 'junit', version: '4.11'
  14. }
复制代码
接着打开IDE,导入这个Gradle项目,各种建立文件夹,各种设定source。而依赖会由Gradle帮你搞定。

最终的目录结构会像是这样的:
No1.png
主类的代码像是这样的:
No2.png

是不是有一种似曾相识的感觉?需要注意的是,Sponge插件不再需要plugin.yml文件,而是用@Plugin这个Annotation代替,注册事件使用@Subscribe。大部分事件都位于org.spongepowered.api.event包下,有需要的可以自行查看。

最后,运行gradle的build task,编译好的jar就会在build/libs文件夹下了。然后把这个jar拖进mods文件夹即可运行(没错!是mods文件夹而不是plugins文件夹)虽然现在Sponge还没正式发布。

最后来一发测试时候的截图(不要问我是怎么跑起来的)
No3.png
(全文完)
发表于 2015-1-13 12:18:42 | 显示全部楼层
挺不错的
回复

使用道具 举报

发表于 2015-1-13 13:16:28 | 显示全部楼层
终于有人发Sponge的教程了'_>'
回复

使用道具 举报

发表于 2015-1-13 13:23:43 | 显示全部楼层
本帖最后由 叁只番茄 于 2015-1-13 13:27 编辑

前几天配置好了sponge的开发环境然后就一直没弄
刚刚我也还在看里面的官方教程还有sponge的API来着_(:з」∠)_
sponge有点微妙♂ 因为他还有客户端版本_(:з」∠)_
其实到现在我都只会从eclipse我配置好的运行调试启动一个有sponge的客户端或者服务端
gradlew一下出来的那个sponge jar扔forge服务端和客户端都报错_(:з」∠)_
回复

使用道具 举报

 楼主| 发表于 2015-1-13 17:27:28 | 显示全部楼层
叁只番茄 发表于 2015-1-13 13:23
前几天配置好了sponge的开发环境然后就一直没弄
刚刚我也还在看里面的官方教程还有sponge的API来着_(:з」 ...

估计还要在classpath加一堆东西吧(虽然我也没试过。。。。。)
回复

使用道具 举报

发表于 2015-1-13 18:03:55 | 显示全部楼层
原来SpongeAPI已经发布了。。
可以欢乐的学API了0w0
回复

使用道具 举报

发表于 2015-1-17 22:32:44 | 显示全部楼层
SPE__HaiKuo 发表于 2015-1-13 13:16
终于有人发Sponge的教程了'_>'

发现了签名,我们需要聊一下_(:зゝ∠)_
回复

使用道具 举报

发表于 2015-6-25 12:51:10 | 显示全部楼层
{:10_522:}2.1的API SendMessage 报错什么鬼。。。。。。
回复

使用道具 举报

发表于 2015-6-25 14:05:55 | 显示全部楼层
{:10_527:}原来要格式化文本 ......
回复

使用道具 举报

发表于 2015-12-18 15:39:48 | 显示全部楼层
QQ图片20151218153956.jpg
我想请问版主我导入gradle项目后和你的不一样呀,是不是少了什么步骤(第一次用IDEA
回复

使用道具 举报

发表于 2016-4-18 12:28:24 | 显示全部楼层
下载地址给一个可以不
回复

使用道具 举报

 楼主| 发表于 2016-4-19 02:25:11 | 显示全部楼层
JovisBone 发表于 2015-12-18 15:39
我想请问版主我导入gradle项目后和你的不一样呀,是不是少了什么步骤(第一次用IDEA
...

尝试手动建立一下?
回复

使用道具 举报

发表于 2016-5-11 11:52:53 | 显示全部楼层
呵呵API5都快出了……

评分

参与人数 1金粒 +1 收起 理由
RecursiveG + 1 那么写Sponge教程这个任务就交给你了!.

查看全部评分

回复

使用道具 举报

发表于 2017-8-12 00:45:04 | 显示全部楼层
谢谢分享~短小精悍~!
回复

使用道具 举报

发表于 2018-8-23 17:51:33 | 显示全部楼层
为什么你写的事件我不能用,我这边能用的事件很少,根本没有玩家登录,服务器启动的事件
(添加了API的)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2018-10-21 19:16 , Processed in 0.083032 second(s), 8 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2017 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

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