我的世界pm神奇宝贝插件接口怎么写

资料图鉴:教程速查:
当前位置:
我的世界插件制作详细图文教程 教你制作强大的CraftBukkit插件(5)
小编:铅笔时间: 21:27
  第 叁 章:监听器
  前言:
  在1.1以前,监听器内的事件方法是以继承方式创建的,名称都是固定的(因为要覆盖),严格而繁琐;
  1.1以后,CB作出较大改动,你仅需实现Listener接口,事件方法也变为依靠一个标记(EventHandler)来进行创建,自由且简便。
  目前,你可以随意的创建一个监听器,方法也是任意的,只不过不要忘记标记&EventHandler&。
  一、创建监听器
  0.首先让我们来理解什么是监听器:
  当一个玩家在游戏中做出各种行为时,你可能会需要对其控制,比如一名游客,你是不能让他去放置&破坏方块的。
  这时你就需要用到监听器,对其进行判断,如果是游客就撤销该行为,如果不是则允许该行为。
  1.新建一个类,名字任意(记住第壹章中只能使用英文的说明),但要求它实现&Listener&接口,它看起来应该象这样:
  package xxx.xxxxxxx.xxxxxx.
  import org.bukkit.event.L
  public class MyListener implements Listener {
  复制代码
  2.创建一个方法,名字任意,变量为一个代表某一事件的类,我们以BlockBreakEvent事件为例,它看起来应该象这样:
  public void aMethodName(BlockBreakEvent event) {
  //代码
  复制代码
  3.添加EventHandler标记,你只要在方法上一行,输入&@EventHandler&即可,更改完后的方法代码应该象这样:
  @EventHanlder
  public void aMethodName(BlockBreakEvent event) {
  //代码
  复制代码
  EventHandler 相关设置:
  以优先级举例,把标记&@EventHandler&替换为如下内容:
  @EventHandler(priority = EventPriority.LOW)
  复制代码
  另一项设置照葫芦画瓢即可,一起用则用逗号隔开。
  事件方法的优先级将按如下顺序被调用
  EventPriority.LOWEST
  EventPriority.LOW
  EventPriority.NORMAL
  EventPriority.HIGH
  EventPriority.HIGHEST
  EventPriority.MONITOR
  原理是,对于修改同一个数据,后被调用的方法 将会覆盖掉 先被调用的方法 所修改的数据,
  所以,对于一个基础性的插件,比如仅仅阻止所有玩家 放置/破坏 方块的插件,对应事件方法应该采用最低优先级,
  然后让其他功能性的插件来决定细节部分,比如让玩家可以 放置/破坏 草块和土块 的插件,只要将对应方法的优先级调高,判断是否为对应方块,再设置是否取消即可。
  其实这两个插件可以整合为一个插件,但分开可以使事件间的组合更加自由,也使其它以你插件为基准的插件兼容性更好。
  有一点需要注意,请不要使用Monitor优先级来修改结果,仅将这一优先级作为查看结果就好。
  最后你的监听器看起来应该是这个样子
  package xxx.xxxxxxx.xxxxxx.
  import org.bukkit.event.L
  public class MyListener implements Listener {
  @EventHanlder
  public void aMethodName(BlockBreakEvent event) {
  //代码
  复制代码
  除了上面新建一个类作为事件监听器,你还可以在任何类中创建一个事件方法,只要记住2点:
  (其实也就是把该类改造成一个监听器)
  让该类实现 Listener 接口
  给该事件方法添加 EventHandler 标记
  二、注册监听器
  你已经创建了一个监听器,然而现在它只能作为一个摆设而已,你需要在服务器中注册它来使它起作用,调用这个方法:
  getServer().getPluginManager().registerEvents(Listener, Plugin);
  复制代码
  其中Listener处换为你实现该接口的类的对象(需要你自己去实例化),
  Plugin则换成代表该插件的对象(在主类里的动态方法中用this关键字获得)。
  之后你可以在任何地方来注册该监听器,只要你填入正确的对象(实际操作时是对象的引用)。
  一般来说,是在插件加载时进行注册,下面是一个例子:
  package xxx.xxxxxxx.xxxxxx.
  import java.util.logging.L
  import org.bukkit.plugin.java.JavaP
  import xxx.xxxxx.xxxxx.xxxx.MyL
  public class MyPlugin extends JavaPlugin {
  public void onEnable(){
  getServer().getPluginManager().registerEvents(new MyListener(), this);
  getLogger().info(&你的插件已被加载!&);
  public void onDisable(){
  getLogger().info(&你的插件已被卸载。&);
  复制代码
  三、注销监听器
  注销监听器有2种方式,一种是从单独事件中注销,另一种是从所有事件中注销。
  无论是哪种方式,都可以指定某一监听器或插件来注销。
  以BlockBreakEvent为例,单独事件注销方法如下:
  BlockBreakEvent.getHandlerList().unregister(Listener);
  BlockBreakEvent.getHandlerList().unregister(Plugin);
  复制代码
  从上到下分别是注销监听器中的该事件和插件中的该事件,
  这样你就注销了对应对象中所有有关BlockBreakEvent的事件方法。
  所有事件注销方法:
  HandlerList.unregisterAll();
  HandlerList.unregisterAll(Listener);
  HandlerList.unregisterAll(Plugin);
  复制代码
  从上至下分别是注销所有事件,注销监听器中的所有事件,和注销插件中的所有事件。
  这样你就把对应对象的所有事件全部注销了。
  四、自制事件
  自制事件很简单,你只需要记住以下2点即可。
  1.在每个事件中都加入Handler相关内容;
  在每个自制事件中都要加入1个属性、1个动态方法和1个静态方法:
  private static final HandlerList handlers = new HandlerList();
  public HandlerList getHandlers() {
  public static HandlerList getHandlerList() {
  复制代码
  原因你可以在上一小节中找到。
  我们假设这个事件是这样的:
  import org.bukkit.event.E
  import org.bukkit.event.HandlerL
  public class CustomBlockEvent extends Event {
  private static final HandlerList handlers = new HandlerList();
  private B
  public CustomBlockEvent(Block block) {
  this.block =
  public String getBlock() {
  public HandlerList getHandlers() {
  public static HandlerList getHandlerList() {
  复制代码
  2.触发该事件的方法
  首先你要实例化一个事件对象来确定它的属性的内容;
  CustomBlockEvent event = new CustomBlockEvent(block);
  复制代码
  其中block代表某一方块的句柄。
  之后触发该事件:
  Bukkit.getServer().getPluginManager().callEvent(event);
  复制代码
  之后监听器该事件的监听器就会按优先级先后调用事件方法。
  (Bukkit代表插件系统,可以获得对应服务器,这和你直接在插件中获得的服务器是相同的,性能差别也很小)
分享到:更多
类型:休闲娱乐平台:PC,iOS,安卓
游戏大礼包手游开测表
挂机吧主公五四土豪青年礼包九阴真经3D五四大好青年礼包《皇图》五四青年节礼包HIT:我守护的一切五一限量金币礼包《口袋妖怪复刻》五一节礼包笑傲天龙五一飞速升级礼包
05-16公测05-04内测04-29内测04-28公测04-23公测04-22内测04-22封测04-14公测04-13公测04-07公测
攻略推荐本月最新
手游排行网游单机简单粗暴的PM插件入门 01&-&Minecraft(我的世界)中文论坛 -
只需一步,立刻登录
后使用快捷导航没有帐号?
查看: 166|回复: 1
简单粗暴的PM插件入门 01
您尚未登录,立即登录享受更好的浏览体验!
才可以下载或查看,没有帐号?
本帖最后由 匿名 于
15:40 编辑
学前准备:
& && && &PM1.5
& && && &Devtools
& && && &BGM
本节目标:
& && && &实现简单插件的编写
& && && &学会打包和解包
本节内容:
& && &&&01-01 插件的基本格式
& && &&&首先作为PM1.4及以上版本的插件的格式是.phar
& && &&&这是一个压缩包
& && &&&一般插件的内部结构是这样的:
& & & & & & & & & & & & & & & &
& && &让我们进一步打开看看:
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & &
然后打开那个t0001.php:
& & & & & & & & & & & & & & & &
这是我已经写好了的、
作为一个php文件,第一行必须是&?php,最后一行必须(可选)是?&
然后是namespace 作者名\插件名;
注意 在namespace和作者名\插件名之间有一个空格。
每一行写完记得写上;来把他们隔开。
在namespace之后是引用PM的事件、
只有引用之后才能使用该事件
作为最基本的插件的三个事件我已经写上了
在引用完事件之后便是使用了
第七行最后的大括号内一般来说便是你的插件核心内容
帖子永久链接:&<button type="submit" class="pn" onclick="setCopy('http://www.mcbbs.net/thread--1.html', '帖子地址已经复制到剪贴板您可以用快捷键 Ctrl + V 粘贴到 QQ、MSN 里。')">点击复制Minecraft中文论坛 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖若有内容转载自其它媒体,不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予以删除并致以最深的歉意
7、管理员和版主有权不事先通知发贴者而删除本文
好教程更建议使用phpstorm,只不过新手notepad++足矣
""以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。
版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。我的世界插件大全下载_minecraft插件下载 - Minecraft中文分享站
提供各种我的世界插件下载,Minecraft插件下载,各种管理员插件与娱乐插件,我的世界1.7.2插件,我的世界1.7.10插件,我的世界1.8插件等下载,希望大家喜欢。
PartlyFancy花式粒子特效插件 来源:
bukkit 版本:
1.8 我的世界1.8PartlyFancy花式粒子特效插件可以给予你一些粒子特效,这些效果都挺棒的!而且还有各种不同的特效 &
PartlyFancy花式粒子特效插件 来源:
bukkit 版本:
1.8.1 我的世界1.8.1PartlyFancy花式粒子特效插件可以给予你一些粒子特效,这些效果都挺棒的!而且还有各种不同的 &
PartlyFancy花式粒子特效插件 来源:
bukkit 版本:
1.9 我的世界1.9PartlyFancy花式粒子特效插件可以给予你一些粒子特效,这些效果都挺棒的!而且还有各种不同的特效 &
PartlyFancy花式粒子特效插件 来源:
bukkit 版本:
1.10 我的世界1.10PartlyFancy花式粒子特效插件可以给予你一些粒子特效,这些效果都挺棒的!而且还有各种不同的特 &
PartlyFancy花式粒子特效插件 来源:
bukkit 版本:
1.11 我的世界1.11PartlyFancy花式粒子特效插件可以给予你一些粒子特效,这些效果都挺棒的!而且还有各种不同的特 &
Buycraft自助网页购买插件 来源:
bukkit 版本:
1.6.4 我的世界1.6.4Buycraft自助网页购买插件让你的服务器的玩家能够自助在网页上购买游戏中的VIP或者权限,物品,命 &
Buycraft自助网页购买插件 来源:
bukkit 版本:
1.7.2 我的世界1.7.2Buycraft自助网页购买插件让你的服务器的玩家能够自助在网页上购买游戏中的VIP或者权限,物品,命 &
Buycraft自助网页购买插件 来源:
bukkit 版本:
1.7.4 我的世界1.7.4Buycraft自助网页购买插件让你的服务器的玩家能够自助在网页上购买游戏中的VIP或者权限,物品,命 &
Buycraft自助网页购买插件 来源:
bukkit 版本:
1.7.9 我的世界1.7.9Buycraft自助网页购买插件让你的服务器的玩家能够自助在网页上购买游戏中的VIP或者权限,物品,命 &
Buycraft自助网页购买插件 来源:
bukkit 版本:
1.8 我的世界1.8Buycraft自助网页购买插件让你的服务器的玩家能够自助在网页上购买游戏中的VIP或者权限,物品,命令等 &
Buycraft自助网页购买插件 来源:
bukkit 版本:
1.8.1 我的世界1.8.1Buycraft自助网页购买插件让你的服务器的玩家能够自助在网页上购买游戏中的VIP或者权限,物品,命 &
Buycraft自助网页购买插件 来源:
bukkit 版本:
1.9 我的世界1.9Buycraft自助网页购买插件让你的服务器的玩家能够自助在网页上购买游戏中的VIP或者权限,物品,命令等 &
Buycraft自助网页购买插件 来源:
bukkit 版本:
1.10 我的世界1.10Buycraft自助网页购买插件让你的服务器的玩家能够自助在网页上购买游戏中的VIP或者权限,物品,命令 &
Buycraft自助网页购买插件 来源:
bukkit 版本:
1.11 我的世界1.11Buycraft自助网页购买插件让你的服务器的玩家能够自助在网页上购买游戏中的VIP或者权限,物品,命令 &
AuthMe Reloaded安全登录插件 来源:
bukkit 版本:
1.6.4 我的世界1.6.4AuthMe Reloaded安全登录插件是一个经典的集登陆/注册于一体的插件。 该插件在防盗号方面 &
第1页 共 8 页1
Copyright (C) 2017 | Minecraft中文分享站 |}

我要回帖

更多关于 我的世界怎么写插件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信