我的世界手机版1.1.0.9如何实现触发事件几率化

资料图鉴:教程速查:
当前位置:
我的世界插件制作详细图文教程 教你制作强大的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,安卓
游戏大礼包手游开测表
御剑决公测钻石礼包钢铁骑兵大礼包新雪鹰领主大礼包剑与家园光棍节脱单礼包烈焰龙城激活码魔法王座大电影上线礼包
03-08内测03-07公测01-17公测01-13公测01-11公测01-10公测01-09公测01-07公测01-05公测11-03公测
攻略推荐本月最新
手游排行网游单机资料图鉴:教程速查:
当前位置:
虚无世界进击的傀儡事件介绍 各种傀儡来袭
小编:3F时间: 10:55
  虚无世界进击的傀儡事件介绍 各种傀儡来袭。那下面游戏园小编就给大家分享一下在我的世界里面的虚无世界中的进击的傀儡事件吧!那不知道进击的傀儡事件的玩家就猛戳这里查看吧!
  游戏园我的世界官方群:& 游戏园我的世界二群:& 欢迎各路喜爱我的世界的小伙伴们加入讨论!玩服务器的小伙伴们可以加入:&&群一起联机玩游戏哦!如果你有心仪的作品或者心得分享的话,欢迎来游戏园投稿,大家可以点击&&&&&&进行投稿哦~&有奖品哦~
  我的世界虚无世界目前一共加入了6个事件,3个在晚上发生,3个在白天。由于事件的发生是一个小概率的过程,所以每当下方出现提示时,应该把握好机会。也有可能多个事件同时发生。下面小编为大家介绍进击的傀儡(Big Day)事件。
  进击的傀儡(Big Day)事件每天会有 5%的机率触发。事件发生和结束时都会有信息提示。
  一些由元素组成的巨人傀儡会在这一事件中刷出。
  杀死它们主要 是获取各种材料。在这一事件中会刷出以下怪物:木之傀儡(Wood Giant)、石之傀儡(Stone Giant)、叶之傀儡(Leafy Giant)、沙漠傀儡(Sand Giant)和冰之傀儡(Ice Giant)。
  以上就是虚无世界进击的傀儡事件介绍 各种傀儡来袭。更多精彩尽在游戏园我的世界专区。
  相关攻略推荐:
分享到:更多
类型:休闲娱乐平台:PC,iOS,安卓
游戏大礼包手游开测表
御剑决公测钻石礼包钢铁骑兵大礼包新雪鹰领主大礼包剑与家园光棍节脱单礼包烈焰龙城激活码魔法王座大电影上线礼包
03-08内测03-07公测01-17公测01-13公测01-11公测01-10公测01-09公测01-07公测01-05公测11-03公测
攻略推荐本月最新
手游排行网游单机关于我的世界生物你不知道的一些小秘密 - Minecraft中文分享站
/ 关于我的世界生物你不知道的一些小秘密
Copyright (C) 2018 | Minecraft中文分享站 |谁能告诉我我的世界HIM的事件,越详细越好,急需!_百度知道
谁能告诉我我的世界HIM的事件,越详细越好,急需!
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
18183手机游戏论坛
18183手机游戏论坛
18183是中国第一手机游戏门户网站,提供最全面手机单机游戏下载、手机网游下载、手机游戏攻略评测、新游戏账号及社区交流等全方位的手机游戏服务。
频编辑 有一段视频是Patimoose在玩游戏,然后在他家地底的熔岩池里,发现了... 他们意识到自己需要醒来的唯一方式是他们在虚幻世界中找到的一个纸条,它会告诉...
这是什么意思啊?详细点就可以采纳
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。资料图鉴:教程速查:
当前位置:
我的世界1.8新指令方块打造木牌点击事件机关教程
小编:采蘑菇时间: 19:31
  导读:今天mojang发布了我的世界1.8版本的新快照14w28b,下面小编就为各位介绍一下在我的世界1.814w28b快照中如何利用指令方块制作木牌点击事件机关方法。
  大家好,今天教大家如何在1.8的MC里使用牌子点击事件。本人的版本目前是14w28b,推荐使用这个版本。
  看到这个,本人只能说:又一个水桶服插件被代替了。以后说不定所有服务器都是原版,然后100%红石指令方块运行。
  首先发一个例子:
  大家看见,本人右键了下牌子,然后对话框出现了1234。牌子上的文字分别是:
  /say 1, /say 2, /say 3, /say 4。
  这个只是个例子。牌子上可以显示任何文字,然后可以触发任何指令。现在发下刚才牌子的例子指令:
&  /setblock ~ ~1 ~ minecraft:standing_sign 0 replace&
  {Text1:&{clickEvent:{action:run_command,value:&/say 1&},text:&/say 1&}&,
&  Text2:&{text:&/say 2&,clickEvent:{action:run_command,value:&/say 2&}}&,&
  Text3:&{text:&/say 3&,clickEvent:{action:run_command,value:&/say 3&}}&,
&  Text4:&{text:&/say 4&,clickEvent:{action:run_command,value:&/say 4&}}&}&
  大家看见,这个就是上次本人发的牌子NBT帖子。只是新加入了{clickEvent}。这条指令在指令方块上面放一个牌子,然后玩家右键后执行/say 1 - 4。这是最简单的例子。
  里面的Text1,Text2什么,就是牌子的NBT。这些NBT控制牌子的显示文字。牌子只可以打4行,所以分别是Text 1 - 4。之后,后面的{text:&...&}就是每行
   显示的文字。这些都是Json信息制作,并非NBT。然后后面的{clickEvent: {action:run_command,value:&...&}}什么,就是让牌子知道要执行什么指令。之后,由于一个牌子最多可以打4行字,所以, 可以弄成每行都执行一条指令,最后就是右键一下牌子,然后可以同时执行4条指令。
  指令是从上到下的规律执行,Text1先执行,然后再Text2,以此类推。之后来说下使用。大家注意,并不是左键牌子,而是右键牌子。左键牌子会把牌子打坏掉,右键才会运行。之后我就不多说了。玩家可以加入颜色什么,自定义调节Json。
  最后在随便发一下例子:
&  /setblock ~ ~1 ~ minecraft:standing_sign 0 replace&
  {Text1:&{clickEvent:{action:run_command,value:&/summon Zombie ~ ~ ~&},text:&Right Click&,color:red}&,
  Text2:&{text:&To&,color:green,clickEvent:{action:run_command,value:&/summon Skeleton ~ ~ ~&}}&,
  Text3:&{text:&Summon&,color:black,clickEvent:{action:run_command,value:&/summon Creeper ~ ~ ~&}}&,
  Text4:&{text:&Mobs&,color:white,clickEvent:{action:run_command,value:&/summon Slime ~ ~ ~&}}&}
  这条指令右键后刷出僵尸,骷髅,史莱姆和苦力怕。
  在1.814w28b快照之下,有一些新的指令方块可以帮助玩家完成这些操作,各位玩家可以去尝试一下。
分享到:更多
类型:休闲娱乐平台:PC,iOS,安卓
游戏大礼包手游开测表
御剑决公测钻石礼包钢铁骑兵大礼包新雪鹰领主大礼包剑与家园光棍节脱单礼包烈焰龙城激活码魔法王座大电影上线礼包
03-08内测03-07公测01-17公测01-13公测01-11公测01-10公测01-09公测01-07公测01-05公测11-03公测
攻略推荐本月最新
手游排行网游单机

我要回帖

更多关于 我的世界钓鱼几率 的文章

 

随机推荐