Minecraft(我的世界)中文论坛
标题: Sponge插件开发样例
作者: RecursiveG 时间: 2015-1-13 12:07
标题: Sponge插件开发样例
本帖最后由 RecursiveG 于 2015-1-13 12:07 编辑
考虑到SpongeAPI已经发布了1.0版本,我在这写个短短的小样例,让各位(主要是各位Bukkit插件开发者)对Sponge插件开发有个基本认识。
具体的教程在这里都可以查到https://docs.spongepowered.org/en/latest/plugins/。不过是英文的,应该不久就有人去翻译成中文吧。
我在这里写一个小小的“Hello World”插件:每个玩家登录时显示一条欢迎信息。
我以Gradle和Intellij作为开发环境来演示。
首先是建一个文件夹来放你的代码,然后建立一个build.gradle文件,内容如下:- apply plugin: 'java'
- sourceCompatibility = 1.6
- version = '1.0'
- repositories {
- mavenCentral()
- maven {
- name 'Sponge maven repo'
- url 'http://repo.spongepowered.org/maven/'
- }
- }
- dependencies {
- compile "org.spongepowered:spongeapi:1.1-SNAPSHOT"
- testCompile group: 'junit', name: 'junit', version: '4.11'
- }
复制代码 接着打开IDE,导入这个Gradle项目,各种建立文件夹,各种设定source。而依赖会由Gradle帮你搞定。
最终的目录结构会像是这样的:
主类的代码像是这样的:
是不是有一种似曾相识的感觉?需要注意的是,Sponge插件不再需要plugin.yml文件,而是用@Plugin这个Annotation代替,注册事件使用@Subscribe。大部分事件都位于org.spongepowered.api.event包下,有需要的可以自行查看。
最后,运行gradle的build task,编译好的jar就会在build/libs文件夹下了。然后把这个jar拖进mods文件夹即可运行(没错!是mods文件夹而不是plugins文件夹)虽然现在Sponge还没正式发布。
最后来一发测试时候的截图(不要问我是怎么跑起来的)
(全文完)
作者: End_KG 时间: 2015-1-13 12:18
挺不错的
作者: SPE__HaiKuo 时间: 2015-1-13 13:16
终于有人发Sponge的教程了'_>'
作者: 叁只番茄 时间: 2015-1-13 13:23
本帖最后由 叁只番茄 于 2015-1-13 13:27 编辑
前几天配置好了sponge的开发环境然后就一直没弄
刚刚我也还在看里面的官方教程还有sponge的API来着_(:з」∠)_
sponge有点微妙♂ 因为他还有客户端版本_(:з」∠)_
其实到现在我都只会从eclipse我配置好的运行调试启动一个有sponge的客户端或者服务端
gradlew一下出来的那个sponge jar扔forge服务端和客户端都报错_(:з」∠)_
作者: RecursiveG 时间: 2015-1-13 17:27
估计还要在classpath加一堆东西吧(虽然我也没试过。。。。。)
作者: huanghongxun 时间: 2015-1-13 18:03
原来SpongeAPI已经发布了。。
可以欢乐的学API了0w0
作者: poi4399 时间: 2015-1-17 22:32
发现了签名,我们需要聊一下_(:зゝ∠)_
作者: 默默、无闻 时间: 2015-6-25 12:51
{:10_522:}2.1的API SendMessage 报错什么鬼。。。。。。
作者: 默默、无闻 时间: 2015-6-25 14:05
{:10_527:}原来要格式化文本 ......
作者: JovisBone 时间: 2015-12-18 15:39
我想请问版主我导入gradle项目后和你的不一样呀,是不是少了什么步骤(第一次用IDEA
作者: 插件达人 时间: 2016-4-18 12:28
下载地址给一个可以不
作者: RecursiveG 时间: 2016-4-19 02:25
尝试手动建立一下?
作者: liach 时间: 2016-5-11 11:52
呵呵API5都快出了……
作者: Tollainmear 时间: 2017-8-12 00:45
谢谢分享~短小精悍~!
作者: @TGL 时间: 2018-8-23 17:51
为什么你写的事件我不能用,我这边能用的事件很少,根本没有玩家登录,服务器启动的事件
(添加了API的)