最MC论坛

标题: Sponge介绍与插件编写 [打印本页]

作者: bcylbc    时间: 2015-5-18 19:12
标题: Sponge介绍与插件编写
一、Sponge介绍
      Sponge是一种新的开源服务端和客户端API,由Minecraft各个编程社区的协助而开发。而Sponge的目标用户是伺服主和想改装Minecraft的人。
      而Sponge仍然处于开发状态,预计11月会正式发布,目前已释出API Release(插件开发用,非伺服器)。


      Sponge官网: 按此
      Sponge API JavaDoc: 按此
      API 1.0 Release释出: 按此


      Q:我是服主,为什么我需要学习插件编写?
      A:其实插件编写并不只有插件师才需要学习,增加人流不能只靠着宣传,唯有提高伺服器的技术量才提高兢争力,难保有一天你需要自行修改插件呢?
      Q:我并没有学习过编程,此篇文章适合我吗?
      A:此篇文章主要帮助大家认识插件编程,均假设了各位并没有学习过相关知识,从零开始。

二、JDK安装、Eclipse安装,Sponge编译JDK:
下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
x32请下载jdk-8*-windows-i586.exe
x64请下载jdk-8*-windows-x64.exe




下载并安装后需要设置环境变数:
(本人是较旧的JDK,但设置方法相同)
首先找回你的安装位置:
Spoiler:
以我的为例,「C:\Program Files\Java\jdk1.7.0_55」




如下图所示,输入「 ; 」+JDK位置+「\bin」 如:「;C:\Program Files\Java\jdk1.7.0_55\bin」


按确定后完成。


Eclipse:
下载位置:http://www.eclipse.org/downloads/
下载Eclipse IDE for Java Developers


安装方法较简单,不作详细讲解


Sponge编译:(若果不想自行编译,这裹有一个懒人方法,想知道就要看5秒广告噜:http://adf.ly/6430260/build )
(我们需要的是spongeapi-1.1-SNAPSHOT.jar)
首先到https://github.com/SpongePowered/SpongeAPI 按「Download ZIP」
解压后运行「gradlew.bat」进行编译
当编译完成后,就可以到「build/libs」文件夹中取成果了~

三、Hello,World!
首先开启Eclipse,然后会弹出这样的视窗:
Spoiler:


之后我们可以建立一个文件夹(WorkSpace)来保存我们的文件,再按OK。
当弹出了下图的视窗后,按下图指示。
Spoiler:


然后把之前编译好的(或者是下载的→_→)spongeapi-1.1-SNAPSHOT.jar放入WorkSpace中
放好后就开始建立我们的JavaProject:
Spoiler:

然后选择你的spongeapi-1.1-SNAPSHOT.jar,再按Finish。
再在左边的Package Explorer中点选HelloWorld的src,再右键新增Class
Spoiler:



再在Package中输入helloWorld.common(也就是把这个新增的class放在文件夹helloWorld中的common文件夹)
于Name中输入main(其实不一定要用main,也可以用其他名字)
Spoiler:


之后main.java应该会有以下的代码
package helloWorld.common;

public class main {

}
复制代码
现在,我们在main class的前面增加一段Code

package helloWorld.common;

@Plugin(id = "HelloWorld",name = "HelloWorld", version="1.0.0")
public class main {

}
复制代码
这时,在@Plugin下面应该会有一条红色的曲线,这是提醒这段Code中出了错误
Spoiler:

原因是我们没有引用(参考)Sponge的Plugin类,首先,我们把滑鼠放在Plugin上,再选择Import "Plugin"来增加Plugin类的参考
Spoiler:



之后Eclipse就会为你增加一行Code了
package helloWorld.common;

import org.spongepowered.api.plugin.Plugin;

@Plugin(id = "HelloWorld",name = "HelloWorld", version="1.0.0")
public class main {

}
复制代码
这时候我为大家解释一下@Plugin(id = "HelloWorld",name = "HelloWorld", version="1.0.0")这行Code的作用
为什么要用@Plugin呢?他能够代替(也许?)plugin.yml的引导作用,因为Sponge不可能知道要从哪里开始运行这个插件,所以要用@Plugin作引导而当中的id,即内部用的名字。 name,即用作显示的名字。 version,也就是插件的版本了。


Event:
由此段起,由于Sponge仍然是残缺版,教学无法继续,因此将暂停Sponge部份的教学,开始JAVA的基础教学。

一、Java基本概念
(还是用水果作比喻比较容易xD)首先,假设以下这段Code: (纯虚构)
Orange tom;
复制代码
这里的作用就是宣告有一只橙,名叫tom,但却没有说tom是哪一只橙。
现在把Code改成:
Orange tom = new Orange();
复制代码
那么这里就宣告了有一只橙,名叫tom,是一只新的橙(产生一只新的橙)
Spoiler:


现在,若果把Code改成这样的话:
Orange jack = new Orange();
Orange tom = jack;
复制代码
现在,有一只新的橙叫jack,而有只橙叫tom,他是jack的复制品
也或有人会问,如果我把tom切掉,那jack也会被切掉吗?
当然是不会,因为tom只是jack的复制品,就算其中一只被切掉,也不会对另一只有影响。


运算子:
加 + 大于,大于或等于 >,>= 或者
||
减 - 小于,小于或等于 <,<= 递增 ++
乘 * 等于,不等于 ==,!= 递减 --
除 / 而且 &&

if与else:
if和else在编程中是一种十分基本的logic
结构如下: (else部分有需要则写)
if(条件)
{
    //如果符合的话做什么
}
else
{
    //如果不符合的话做什么
}
复制代码
那么,条件要怎写呢?现在,我们要用上面的运算子来写条件
条件例子:
*1:int 是带正负号的整数用的,由-2,147,483,648 至2,147,483,647

int a=10;
int b=20;
int c=5;
//还记得橙的例子吗?这里宣告了有3个整数,叫a,b和c,分别是10,20,和5
if(a=b)
{
}
//大家以为这里会输出False(否)吗?不,这里会送你一个大大的Error,因为这里用了「=」,而没有用「==」
if(a==b)
{
}
//这里当然会输出False了
if(a!=b)
{
}
//True
if(a>=b)
{
}
//False
if(a==0 || b>a)
{
}
//这里会输出True,因为b>a成立
if(a==0 && b>a)
{
}
//这里会输出False,因为a==0不成立
复制代码

待更新







欢迎光临 最MC论坛 (http://www.zuimc.com/) Powered by Discuz! X3.2