Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 51082|回复: 231

[插件开发教程] ---===从零基础开始,到精通插件===---#5

  [复制链接]
berry64 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5730
钻石
性别
保密
注册时间
2013-4-17
查看详细资料
发表于 2014-12-25 22:30:26 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 berry64 于 2019-1-29 10:52 编辑








第五章:分段和第一个插件

今天呢,我们先来看看"{"和"}"是什么东西

{就像一个段落的开头

相同的,}就像一个段落的结尾

这些段落之间有很多句子,就是java代码里面;前面的东西啦

;就是句号。(好快)

然后呢,就开始写我们的第一个插件!

于是,我们先建一个Java项目
a1.png


然后名字叫他MyFirstPlugin,意思是我的第一个插件

a2.png
对着src右键→新建→包
名字叫他:com.github.(你自己喜欢的名字)
这里我的是com.github.berry64,别用我的,你可以用com.github.asdf或者什么的
只要不重复就可以了
可以com.qq.(你的QQ号)
然后对着主文件右键→属性
a3.png

就够啦,jar文件只要你开服务器的核心文件就够了
这里我用@stool 的帖子
核心文件



然后右键创建的包,选择新建
然后创建一个新的类,名字叫他MyFirstPlugin
a4.png

然后这个就是我们的主文件了
现在我们创建plugin.yml也就是让bukkit加载他的必要文件,
右键主文件,新建→文件
a5.png

然后你就可以看见我们创建了plugin.yml!
plugin.yml格式非常规范,有点错bukkit就不读,也不知道为何
我觉得挺讨厌的{:10_522:}
没事
这里我发模版
  1. name: (插件名字)
  2. main: (刚刚创建的包的名字).(主类的名字)
  3. version: 0.0.1-SNAPSHOT
复制代码


这里main可能搞不懂, 我解释一下, 比如说我们创建了一个包名字叫net.berry64.asdf
而里面的插件主类名字叫main.java
那么这里的main就填:
  1. net.berry64.asdf.main
复制代码

version呢, 就是插件的版本号,按理说应该每次更新都要增加一位数或者使用一个不重复的数字...

不过我看起来像那种会管他的人吗OAO
0.0.1 很容易理解成第一个插件版本,而后面又有个-SNAPSHOT, 就是快照的意思

记住每一个冒号后面都必须有一个空格!!!!!!!!!!!!!!!!!!!!!!!!!!!!

像这样,一个可以用的插件就出来了,不过没有什么功能
a6.png

现在我们回到MyFirstPlugin.java写一段代码
public class MyFirstPlugin后面加上
  1. extends JavaPlugin implements Listener
复制代码
这样就可以了(对于大神们我说叫新手一直加一个Listener总是好的)

如果报错了你就把鼠标放在上面然后看解决方案,如果有的话导入,没有的话那就说明你没弄好
然后,我们要创建一个指令
输入
@Override

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){if (cmd.getName().equalsIgnoreCase("[指令]")){
sender.sendMessage("HAYO");
return true;
}
return false;
}如果不理解的话, 这里有写好的代码:

这样,java里面的指令已经创好了,记得把[指令]换成你要的英文指令
现在我们打开plugin.yml来注册这个指令
在下面我们输入:
  1. commands:
  2.   HAYO:
  3.     description: HAYO
  4.     usage: /<command>
复制代码
提示一下,空格什么的都很严格的现在我分开来,空格用[]代替
commands:
[][]HAYO:
[][][][]description:[]HAYO
[][][][]usage:[]/<command>
这样就是注册了一个指令了,全部保存然后右键主文件,导出
找到java 下面的 Jar文件,点继续
然后设置保存位置,就好了!{:10_512:}
还不赶紧放到plugins里面试试看?
按理说你输入/HAYO 应该会收到一个消息的
读完了吱一声啊!然后求点人气和金币,给人气自己不丢什么,不想给至少吱一声让我知道谁看了啊


回到目录




评分

参与人数 102人气 +88 金粒 +581 收起 理由
qq1136428600 + 2 手把手教学
5352 + 5 神乎其技,不服不行!
zhanzhan + 1 + 15 神乎其技,不服不行!
fcxq + 1 Ssssssssssssssssssss
GHH552418 + 1 MCBBS有你更精彩~
NGK3 + 2 MCBBS有你更精彩~
mchappytowncc + 20 MCBBS有你更精彩~
_MK14 + 10 十分感谢!
895644173 + 1 + 15 神乎其技,不服不行!
堕落男 + 1 + 10 学会了,谢谢!
Aaron.Hzy + 1 人生中第一个MC插件
azz185 + 1 + 20 启蒙教学,哈哈哈
酷车手BB弹 + 1 吱一声
five_dada + 1 + 10 很细心,好评~
e41q + 1 神乎其技,不服不行!
无涯a.a + 1 MCBBS有你更精彩~
18319128299 + 1 神乎其技,不服不行!
+ 2 Ssssssssssssssssssss
梦雨灵 + 1 + 10 牛逼牛逼,入门了
liangteng4105 + 1 Ssssssssssssssssssss

查看全部评分

Tom112233 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
270
钻石
性别
保密
注册时间
2014-12-19
查看详细资料
发表于 2014-12-25 22:46:11 | 显示全部楼层
最近也在学习java。  这帖子必须顶啊

评分

参与人数 1人气 +1 收起 理由
Zin_ming + 1 愿Him常在你左右!

查看全部评分

回复

使用道具 举报

网络摆渡客 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5928
钻石
性别
保密
注册时间
2014-7-10
查看详细资料
发表于 2014-12-25 23:17:07 | 显示全部楼层
这个开发工具还是有必要说一下的。
回复

使用道具 举报

tufeiyes 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
125
钻石
性别
保密
注册时间
2014-10-24
查看详细资料
发表于 2014-12-25 23:17:32 | 显示全部楼层
我还是一个新手 还在找寻更大MOD满足个人的需求 JAVA 这太高科技了 直言 咱没看懂
回复

使用道具 举报

欢心世界 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
48
钻石
性别
保密
注册时间
2014-12-20
查看详细资料
发表于 2014-12-25 23:29:08 | 显示全部楼层
霸气霸气啊新手的福利啊牛逼吧主加油哦
回复

使用道具 举报

stool 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
6275
钻石
性别
保密
注册时间
2013-2-4
查看详细资料
发表于 2014-12-26 17:18:53 | 显示全部楼层
还行-.-
希望能继续保持
回复

使用道具 举报

936728431 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2875
钻石
性别
保密
注册时间
2013-5-3
查看详细资料
发表于 2014-12-26 17:31:52 | 显示全部楼层
收藏了
回复

使用道具 举报

defoliation_h 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
4080
钻石
性别
保密
注册时间
2013-9-5
查看详细资料
发表于 2014-12-26 20:55:25 | 显示全部楼层
写到
extends JavaPlugin implements Listener
的时候就出问题了,我已经按部就班的做好了环境配置可是还是有错误
回复

使用道具 举报

Grandiose 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
6285
钻石
性别
保密
注册时间
2013-5-25
查看详细资料
发表于 2014-12-30 22:46:54 | 显示全部楼层
= =。。其实写的还是可以的,但是我觉得你最好先讲讲包啊类啊之类的东西,但我觉得你写的时候很不正经,开玩笑不是应该这么开的【好吧你比教我的那位正经多了...

不知道是不是因为学过一点点的原因我读起来没什么压力,但是我觉得最好不要直接跳到插件,因为中间还有很多内容没讲,比如引入bulabula的,而且到了后面就没有代码示例了...

还有建议你把一些常用快捷键加上去,比如保存的就是ctrl+s
回复

使用道具 举报

liuyipeng001 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1276
钻石
性别
保密
注册时间
2014-7-13
查看详细资料
发表于 2015-1-1 16:47:27 | 显示全部楼层
能不能换成中文的= =
回复

使用道具 举报

liuyipeng001 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1276
钻石
性别
保密
注册时间
2014-7-13
查看详细资料
发表于 2015-1-1 16:55:51 | 显示全部楼层
h22391386 发表于 2014-12-26 20:55
写到
extends JavaPlugin implements Listener
的时候就出问题了,我已经按部就班的做好了环境配置可是还是 ...

我也是= =
回复

使用道具 举报

耗子 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
10673
钻石
性别
保密
注册时间
2012-2-18
查看详细资料
发表于 2015-1-1 22:31:55 | 显示全部楼层
并非正解啊0 0!
回复

使用道具 举报

48856209 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2105
钻石
性别
保密
注册时间
2013-8-24
查看详细资料
发表于 2015-1-3 13:37:03 | 显示全部楼层
  1. package 第三周编程作业;
  2. import java.util.Scanner;
  3. public class 数字特征值 {
  4.         public static void main(String[] args) {
  5.                 // TODO Auto-generated method stub
  6.                 Scanner in = new Scanner(System.in);
  7. //                程序初始化
  8.                 System.out.println(": 数字特征值 - 奇偶特征值 : 计算器");
  9.                 System.out.print("请输入一个非负整数,不大于1000000:");
  10. //                优化用户界面
  11.                 int a=0;
  12.                 int b=a;
  13.                 int count=0;
  14.                 int c=0;
  15.                 int d=0;
  16.                 int e=0;
  17.                 int ce=0;
  18.                 int binary=0;
  19.                 int count1=0;
  20.                 a = in.nextInt();
  21. //                定义变量
  22.                 if (a<0)
  23.                 {
  24.                         System.out.println("所输入的值不能是负数!程序终止.");
  25.                         System.exit(0);
  26.                 }
  27.                 else
  28.                 {
  29.                         if ( a > 1000000 )
  30.                         {
  31.                                 System.out.println("所输入的值不能大于1000000!程序终止.");
  32.                                 System.exit(0);
  33.                         }
  34.                 }
  35. //                判断输入是否正确
  36.                 while ( a > 0 )
  37.                 {
  38.                         b = a%10;
  39.                         a = a/10;
  40.                         d = b;
  41.                         count=count+1;
  42.                         /*判断的d(b)值为单双 输出为d*/
  43.                         if(d%2 == 0)
  44.                         {
  45.                                 c=0;
  46.                         }
  47.                         else
  48.                         {        if (d == 0)
  49.                                 {
  50.                                         c=0;
  51.                                 }
  52.                                 else
  53.                                 {
  54.                                         c=1;
  55.                                 }
  56.                         }
  57.                         /*判断累积器的单双 输出为e*/
  58.                         if(count%2 == 0)
  59.                         {
  60.                                 e=0;
  61.                         }
  62.                         else
  63.                         {        if (count == 0)
  64.                                 {
  65.                                         e=0;
  66.                                 }
  67.                                 else
  68.                                 {
  69.                                         e=1;
  70.                                 }
  71.                         }
  72. //                        比较c,e的大小关系 若相等则输出1 若不相等输出0 输出de
  73.                         if (c == e)
  74.                         {
  75.                                 ce=1;
  76.                         }
  77.                         else
  78.                         {
  79.                                 ce=0;
  80.                         }
  81.                                 binary=(int)(Math.pow(2,(count-1)));
  82.         //                        得出二进制值
  83.                         if (ce == 1)
  84.                         {
  85.                                 count1=count1+binary;
  86.                         }
  87.                 }
  88.                 System.out.println("奇偶特征值:");
  89.                 System.out.println(count1);
  90. //                输出
  91.                 in.close();
  92.         }
  93. }
复制代码

看起来楼主是一位编程大触XD
刚刚完成第三周编程作业 可以帮我优化一下代码吗?
回复

使用道具 举报

berry64 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5730
钻石
性别
保密
注册时间
2013-4-17
查看详细资料
 楼主| 发表于 2015-1-3 13:38:53 | 显示全部楼层
48856209 发表于 2015-1-3 13:37
看起来楼主是一位编程大触XD
刚刚完成第三周编程作业 可以帮我优化一下代码吗? ...

要我优化成什么样子
回复

使用道具 举报

48856209 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2105
钻石
性别
保密
注册时间
2013-8-24
查看详细资料
发表于 2015-1-3 13:45:36 | 显示全部楼层
berry64 发表于 2015-1-3 13:38
要我优化成什么样子

在保证正常功能的前提下
越短越好
你可以先试一下这段代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-12-9 00:28 , Processed in 0.062115 second(s), Total 24, Slave 23 queries, Release: Build.2019.12.06.1150, Gzip On, MemCached On.

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

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

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