connection_lost
本帖最后由 connection_lost 于 2016-2-10 10:40 编辑

简单的说一下吧,目前来说看到很多插件的编写中有着非常多的误区,希望各位注意一下。写的差劲的插件,不仅会拉低开发者的平均智商,性能差的插件也会在不同程度的情况下浪费性能。本篇教程将告诉你,如何写并且发布出一个差劲的插件。

1. 写好插件并不需要学习Java基础
由于BukkitAPI相对简单,对编程基础要求较低,如果你要写插件的话,你大可以边写插件边学Java基础。

2. 插件构思 —— 对自己有用即可
想要写插件?你要先考虑写什么。
看起来我们需要一个清屏插件,一个双跳插件,一个可以右键地板获得钻石的插件,很简单吧?三下五除二搞定,好,我们发到MCBBS就行了。
[功能] ClearChat —— 聊天清屏![1.8.x]
[娱乐] DoubleJump —— 在服务器中双跳吧 [1.8.x]
[娱乐] Diamonds —— 钻石不够多?找地板要![1.8.x]

3. 功能无法调节的插件会凸显你的独一无二
我今天要写一个死亡信息的插件,你看,MC里面自带的死亡信息非常无聊,而且还是白色的。所以我来把被JJ炸死的信息改一下吧。
  1. @EventHandler
  2. public void onPlayerDeath(PlayerDeathEvent event){
  3.     if (event.getEntity().getKiller() instanceof Creeper){
  4.         event.setDeathMessage(event.getPlayer().getName() + "被JJ崩死拉!")
  5.     }
  6. }
复制代码
感觉良好,发一下吧。
[娱乐] JJDeath —— 被JJ怪炸死不再无聊![1.8.x]

4. 开始设计你的插件结构
我们来想一下这个插件每个文件的结构吧。
包的名字?随便来一个,写自己名字吧。文件的名字?插件的名字吧。
看起来很顺眼,非常棒。

5. 使用方便自己使用的变量名称
插件是自己的,别人根本就不应该看你写的插件,所以你可以根据自己的喜好为变量命名。
  1. String number = "walala";
  2. int text = 10;
  3. Player a;
  4. Entity b;
复制代码
String 信息 = "测试测试";
int 数量 = 1000;

6. 节省时间,多使用public
所有地方使用全局public前缀的变量可以直接从其他地方调用,免去了get与set的麻烦。
  1. public String number = "walala";
  2. public int text = 10;
  3. public Player a;
  4. public Entity b;
  5. public Creeper c;
复制代码

7. 检查类别是多余的,因为即使出错也不会崩服,只会无关紧要的报错而已。
  1. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
  2.     ((Player)sender).sendMessage("欢迎使用!");
  3. }
复制代码

8. 记住使用复制粘贴
这是一个例子
  1. player.sendMessage("");
  2. player.sendMessage("");
  3. player.sendMessage("");
  4. player.sendMessage("");
  5. player.sendMessage("");
  6. player.sendMessage("");
  7. player.sendMessage("");
  8. player.sendMessage("");
  9. player.sendMessage("");
  10. player.sendMessage("");
  11. player.sendMessage("");
  12. player.sendMessage("");
  13. player.sendMessage("");
复制代码

9. 发布插件的时候让为下载者保留一个惊喜
发布插件的时候,由于下载者可以从你的描述中精确的看出你的插件可以做什么。所以在你上传插件的时候,你不应该具体的描述插件,而是使用“这个插件很厉害”,“绝对独一无二”这种新颖且吸引人的字眼,吸引更多的人下载。

e. 后记
以上内容全部为根据真实内容改编,如果你发现自己中枪,请看着办。


627241778
没中枪 233333333

格林
多亏机智没有中枪 ...

1434967947
报错不好,

4one_R
没中((

softpak
差勁的插件  XDDD

云闪
没中枪_(:_」∠)_话说以前差点就这样了……

panda2134
噗。。。

Bryan33
大公鸡快来当插件版版主~

914554688wyt
6中枪了..  然而现在知道IDE自带gettersetter了。。

connection_lost
a390807154 发表于 2016-2-12 10:23
大公鸡快来当插件版版主~

呃,现实世界,服务器,还有一些别的事情实在是太忙了,目前还是不行呐 QwQ

Game_rat
楼主真是同道中人呐,老衲不胜佩服

tdiant
写的太好了,完美的教程

DarcJC
(⊙v⊙)嗯。我会告诉你我喜欢用随便乱打的字母做变量吗?【手动混淆= =

Huang蛋黄酱
写的真牛= =

第一页 上一页 下一页 最后一页