您尚未登录,请登录后浏览更多内容! 登录 | 加入最MC

QQ登录

只需一步,快速开始

 找回密码
 加入最MC

QQ登录

只需一步,快速开始

查看: 7041|回复: 14
打印 上一主题 下一主题

[Java] =|=|=|=|=谁说没Java基础就不能写插件?=|=|=|=|=

[复制链接]
  • TA的每日心情
    慵懒
    2017-5-6 16:51
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    跳转到指定楼层
    楼主
    本帖最后由 Dead_Fish 于 2017-10-8 20:29 编辑

    ps.序号后面标红代表重要/必看,蓝色代表选读,黑色代表可不读。

    1.准备工作:
    首先,下载最新的JDK6(不建议下载JDK7):http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.htm,然后下载Eclipse:http://www.eclipse.org/downloads/  






    2.认识Eclipse:  (选读)
    你要知道,Eclipse是外国佬写的,需要英语基础,如果实在没基础,就去下载个中文包放上去吧






    3.HelloWolrd:  (上半节)
    学编程第一个一般都是HelloWorld,我也不破例了
    打开Eclipse,点击右边的workdBench,再创建一个Java项目(左上角的File - New - Java Project ) 全部设置完毕后,再点击Finish,打开项目,再打开src,创建一个Package(包)
    路径的命名规则:为保证不与其它程序或插件产生冲突,包名应该用你的域名或者邮箱倒过来作为包路径,应全部为小写(包路径对大小写不敏感)
      例如:
      com.github.<你的用户名>
      或
      com.gmail.<你的用户名>
      后面的扩展路径则可以按用途命名
      之后应以插件名结尾(因为你可能不只制作一个插件),
      为了避免与服务端产生冲突,请不要使用以下路径:(简单说,就是名字不能带有)
      - org.bukkit
      - net.bukkit
      - com.bukkit


    类名的命名规则:为增强可读性,应由无空格的多个单词连接而成,每个单词的首字母应大写(类名对大小写敏感)
    创建完Package之后,再右键刚刚创建的Package - New - Class  名字随意,最好要加数字,不能以.开头或以.结尾(例如.myplugin / myplugin.)
    打开刚刚创建的Class,你会发现里面已经有了代码---未完继续






    4.HelloWorld: (下半节)
    在第三行加入: import org.bukkit.plugin.java.JavaPlugin  这代表导入JavaPlugin 的类
    然而! 这样是不完全的,我们还需要在public class <你的Class名> {    的{前面,加一个extends JavaPlugin,这代表引用了上面导入的JavaPlugn类
    完成了这些之后,就可以添加进代码了
    有两个代码会在插件被启用/取消启用时调用: 分别是:
    onEnable()   /  onDisable()
    在class里添加进去,他们看起来是这样的: ([]代表几个空格)
    public class <Class名> extends JavaPlugin {
    [][][]@Override
    [][][]public void onEnable(){
    [][][][][][][]//加载时做什么
    }
    [][][]@Override
    [][][]public void onDisable(){
    [][][][][][][]//卸载时做什么
    }
    可以加上getLogger().info("在控制台发送的信息(没有彩色字)");

    也许你看蒙的,那我就放个图给你们理解一下吧:  
    写完之后就需要创建plugin.yml了:   右键项目 - New - File - Filename填plugin.yml  - Finish  打开后填入以下信息:
    name: <插件名称>
    main: <包名称.主类>
    version: <版本,数字形式表达>    Author: <作者,可以填你的游戏名>(可填可不填)
    例子:

    做完之后,点击项目名 - Export - Java File - 把.classpath 和 .project 去掉勾,然后写好插件的路径(Jar File填路径),点击Finish
    放进服务端里: 看看看! 跑起来了 :  






    5.为你的插件添加指令: (上半节)
    打开之前写的HelloWorld插件的编辑界面(当然你重新创一个也行)
    打开之后,找到你的主类(这里指的一般是插件类的主要部分,就是你plugin.yml里main里路径.类名的那个类)
    打开后,在public class <你的类名> extends JavaPlugin{
                     <--->
                     }
    的中间,加上一个Override标识符和
            @Override
            public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
                    return true;
            }因为onCommand是布尔值,布尔值相当于真和假,所以每添加一组指令,都要加上一个return true/false;
    ps.如果加的是return true 则输入后除了显示指令应该显示的(不知道如何表达了),如果是return false 则会一直显示plugin.yml 里的useage里的(这个待会讲)
            @Override
            public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
                    if (cmd.getName().equalsIgnoreCase("HelloWorld")){
                            if (sender.isOp()){
                                    sender.sendMessage(ChatColor.BLUE+"你好,我的世界");
                            }else{
                                    sender.sendMessage(ChatColor.GREEN+"你好,世界");
                            }
                            return true;
                    }
                    return true;
            }

    讲解: if (cmd.getName().equlasIgnoreCase("HelloWorld")){
                  if (sender.isOp()){
                           sender.sendMessage(ChatColor.BLUE+"你好,我的世界");
                         } else{
                             sender.sendMessage(ChatColor.GREEN+"你好,世界");
                         }
               }
    如果(获得命令<不区分大小写>=HelloWorld则执行)-(检测)如果sender(命令触发者)是OP-触发者(点)发送信息蓝+你好我的世界
                                                                                  -否则(玩家不是op)-发送信息绿+你好世界







    6.为你的插件添加指令: (下半节)
    做完之后,就开始在plugin.yml 里添加指令了
    打开Eclipse里的plugin.yml
    另起一行输入:(一个[]代表一个空格)
    commands:
    [][]<Command>:    ##插件的指令
    [][][][]description: "注释"     ##插件的注释,如果要中文就要加上""
    [][][][]usage: /<command> ##指令的使用(如果return 是false的话,就会发出这里写的,最好去实践一下。)
    [][][][]permission: Skill.use    ##使用权限
    [][][][]permission-message: You don't have permission use this Commands    ##如果没权限则显示
    举个栗子:

    这样,一个插件的雏(chu)形就做好了。



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?加入最MC

    x
    打赏

    6

    收藏

    6

    支持

    3

    反对

    0

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
  • TA的每日心情
    奋斗
    2017-3-20 19:58
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
    发表于 2017-3-20 19:55:19 | 只看该作者
    每日一顶,爱死这个教程了
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-2-10 10:44
  • 签到天数: 56 天

    [LV.5]常住居民I

    推荐
    发表于 2017-3-19 19:29:03 | 只看该作者
    不错的教程。支持一下
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-3-20 19:58
  • 签到天数: 1 天

    [LV.1]初来乍到

    沙发
    发表于 2017-3-19 14:14:02 | 只看该作者
    完美,谁说没java基础就不能写的?  顶!

    点评

    楼主,我看不懂  详情 回复 发表于 2017-8-15 19:03
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
  • TA的每日心情
    开心
    2017-3-19 14:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    板凳
    发表于 2017-3-19 14:16:45 | 只看该作者
    顶~ 好人一生平安
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
  • TA的每日心情
    慵懒
    2017-3-20 20:34
  • 签到天数: 2 天

    [LV.1]初来乍到

    地板
    发表于 2017-3-19 14:29:06 | 只看该作者
    顶,我需要定制插件,大神能帮帮忙吗
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

    该用户从未签到

    7#
    发表于 2017-4-14 18:08:46 | 只看该作者
    谁教我我不会。交我的人加我QQ;2823411132
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
  • TA的每日心情
    慵懒
    2017-6-29 18:01
  • 签到天数: 35 天

    [LV.5]常住居民I

    8#
    发表于 2017-4-26 16:45:54 | 只看该作者
    虽然看不懂,但是很厉害的样子,点赞
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
  • TA的每日心情
    难过
    2017-5-26 09:55
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    9#
    发表于 2017-4-29 14:55:21 | 只看该作者
    非常好的教程,支持
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
  • TA的每日心情
    郁闷
    2017-2-6 17:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    10#
    发表于 2017-5-1 19:56:53 | 只看该作者
    我想问,为什么每个教写插件的都用Hello Wolrd来教

    点评

    因为Hello World最基础  发表于 2017-5-9 06:10
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    您需要登录后才可以回帖 登录 | 加入最MC

    本版积分规则