本帖最后由 whatafcukday 于 2015-5-9 15:31 编辑

{:10_492:} 趁闲下来给大家写教程
Day's 水桶插件开发教程 第六章 一个实例
已经征得@914554688wyt 的同意 将他的插件 世界锁定 来做一个开发实例 (这一章破例 有图片) 请先看看他的插件帖子。
新建项目 配置plugin.yml  这里就直接把他插件内的plugin.yml复制一下 记得改编码 和把main栏改成自己的等下主类路径 (包名+主类名)
(然后邪恶的抹掉作者信息~ 说笑的啦)


然后新建主类 继承Listener接口 因为等下要用事件
先写启用/卸载方法

然后,在主类中创建一个HashMap类的成员变量 作用就是相互映射两个不同类型的实例HashMap<World,Boolean> banworld = new HashMap<World,Boolean>();
(具体使用方法自行百度)写onCommand
判断命令过程省略




锁定就在Hashmap中添加一个当前world和true的映射 反之。
wz.getWorld().setSpawnLocation((int)wz.getX(), (int)wz.getY(), (int)wz.getZ()); 这句的意思就是设置当前世界的出生点为那里 与ess的spawn系统不同
我靠你这是偷懒了吗!@914554688wyt 明明可以写在config里的。

然后


当玩家传送时 判断传送的终点是否为锁定了的世界 若是就取消事件 =。= (还有个cbw.vip权限需要判断)
然后特殊情况: 当玩家登陆在被锁定的世界那怎么办?


判断一下 要是是被锁定的世界的话传送到备用出生点
最后 打包 带走。 it so easy? 不给代码你们会写吗? 那好
作业:
制作一个简单插件并发布在mcbbs上 (当然太简单的,与现有插件重复的功能就不要发了)。
金币人气走起来! 不然最后一章GUI我就无限延迟!