nsghd
本帖最后由 nsghd 于 2016-9-28 13:57 编辑

我是刚入门的小白一枚,以前不懂看api的时候找事件找的想死=-=,整理加测试用了2个小时现在直接上代码,每个事件我都有注释是什么事件,如果注释标有*号的是我测试的时候没触发的事件。如果有什么错误请告诉我我马上修改。如果觉得有用就给我点人气让我上6级,啦啦啦啦~~
不知道为什么剩下一半代码不能用插入代码的格式






2021.12 数据,可能有更多内容我是刚入门的小白一枚,以前不懂看api的时候找事件找的想死=-=,整理加测试用了2个小时现在直接上代码,每个事件我都有注释是什么事件,如果注释标有*号的是我测试的时候没触发的事件。如果有什么错误请告诉我我马上修改。如果觉得有用就给我点人气让我上6级,啦啦啦啦~~

代码:

  1. package test;
  2. import org.bukkit.entity.Player;
  3. import org.bukkit.event.EventHandler;
  4. import org.bukkit.event.Listener;
  5. import org.bukkit.event.player.*;

  6. public final class testEventListener implements Listener{
  7.    @EventHandler
  8.    //玩家丢鸡蛋事件
  9.   public void onPlayerEggThrowEvent(PlayerEggThrowEvent event){
  10.   Player P=event.getPlayer();
  11.   P.sendMessage("我丢了一个鸡蛋");
  12.    }
  13.    @EventHandler
  14.    //异步玩家说话事件
  15.    public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent event){
  16.   Player P=event.getPlayer();
  17.   P.sendMessage("我说了一句话");
  18.    }
  19.    @EventHandler
  20.    //玩家成就获得事件
  21.    public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent event){
  22.   Player P=event.getPlayer();
  23.   P.sendMessage("我获得了一个成就");
  24.  
  25.    }
  26.    @EventHandler
  27.    //玩家活跃事件
  28.   public void PlayerAnimationEvent(PlayerAnimationEvent event){
  29.   Player P=event.getPlayer();
  30.   P.sendMessage("我是活跃的");
  31.    }
  32.    @EventHandler
  33.    //玩家盔甲架使用事件
  34.   public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent event){
  35.   Player P=event.getPlayer();
  36.   P.sendMessage("我使用了盔甲架");
  37.    }
  38.    @EventHandler
  39.    //玩家上床事件
  40.   public void PlayerBedEnterEvent(PlayerBedEnterEvent event){
  41.   Player P=event.getPlayer();
  42.   P.sendMessage("我要睡觉了,麻烦帮我关下灯");
  43.    }
  44.    @EventHandler
  45.    //*玩家离开床事件
  46.   public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent event){
  47.   Player P=event.getPlayer();
  48.   P.sendMessage("");
  49.    }
  50.    @EventHandler
  51.    //*玩家的桶变空事件
  52.   public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent event){
  53.   Player P=event.getPlayer();
  54.   P.sendMessage("");
  55.    }
  56.    @EventHandler
  57.    //*玩家桶事件
  58.   public void onPlayerBucketEvent(PlayerBucketEvent event){
  59.   Player P=event.getPlayer();
  60.   P.sendMessage("");
  61.    }
  62.    @EventHandler
  63.    //*玩家填装桶事件
  64.   public void onPlayerBucketFillEvent(PlayerBucketFillEvent event){
  65.   Player P=event.getPlayer();
  66.   P.sendMessage("");
  67.    }
  68.    @EventHandler
  69.    //玩家世界改变事件
  70.   public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent event){
  71.   Player P=event.getPlayer();
  72.   P.sendMessage("我改变了世界");
  73.    }
  74.  
不知道为什么剩下一半代码不能用插入代码的格式
   @EventHandler
   //*不知道是什么
  public void onPlayerChannelEvent(PlayerChannelEvent event){
  Player P=event.getPlayer();
  P.sendMessage("");
   }
   @EventHandler
   //玩家聊天事件
    public void onPlayerChatEvent(PlayerChatEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我说了一句话");
  }
  @EventHandler
   //玩家按下tab补全事件
    public void PlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我按下了tab打算补全玩家名");
  }
   @EventHandler
   //玩家命令预处理事件
    public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我的命令进行预处理");
  }
   @EventHandler
   //玩家丢弃物品事件
    public void onPlayerDropItemEvent(PlayerDropItemEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我丢弃了一样物品");
  }
   @EventHandler
   //玩家编辑书事件,签名不会触发
    public void onPlayerEditBookEvent(PlayerEditBookEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我编辑了一本书");
  }
   @EventHandler
   //玩家经验改变事件
    public void onPlayerExpChangeEvent(PlayerExpChangeEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我的经验发生了改变");
  }
   @EventHandler
   //玩家钓鱼事件,或者说是甩出鱼竿
    public void onPlayerFishEvent(PlayerFishEvent event){
    Player P=event.getPlayer();
    P.sendMessage("鱼");
  }
   @EventHandler
   //玩家游戏模式切换事件
    public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我改变了模式");
  }
   @EventHandler
   //玩家对实体交互事件(被僵尸打没有触发=-=)
    public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我对一个实体发生交互了");
  }
   @EventHandler
   //玩家打开村民交易的时候
    public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我和一个村民进行了PY交易");
  }
   @EventHandler
   //玩家交互事件
    public void onPlayerInteractEvent(PlayerInteractEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我发生了交互");
  }
   @EventHandler
   //*玩家背包事件
    public void onPlayerInventoryEvent(PlayerInventoryEvent event){
    Player P=event.getPlayer();
    P.sendMessage("");
  }
   @EventHandler
   //玩家物品破坏事件
    public void PlayerItemBreakEvent(PlayerItemBreakEvent event){
    Player P=event.getPlayer();
    P.sendMessage("这是一个糟糕的事情,我的物品坏了");
  }
   @EventHandler
   //玩家物品消耗事件,比如喝药水
    public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent event){
    Player P=event.getPlayer();
    P.sendMessage("这东西用完了");
  }
  @EventHandler
   //玩家物品握住事件
    public void onPlayerItemHeldEvent(PlayerItemHeldEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我握住了这个东西");
  }
   @EventHandler
   //玩家加入游戏事件
    public void onPlayerJoinEvent(PlayerJoinEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我加入了游戏");
  }
   @EventHandler
   //玩家踢出游戏事件
    public void onPlayerKickEvent(PlayerKickEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我被踢出了游戏");
  }
   @EventHandler
   //等级变化事件
    public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我等级发生了变化");
  }
   @EventHandler
   //*玩家登录游戏事件
    public void onPlayerLoginEvent(PlayerLoginEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我登录了游戏");
  }
   @EventHandler
   //玩家移动事件
    public void onPlayerMoveEvent(PlayerMoveEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我发生了移动");
  }
   @EventHandler
   //玩家捡起物品事件
    public void onPlayerPickupItemEvent(PlayerPickupItemEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我捡起一个物品");
  }
   @EventHandler
   //玩家进入传送门事件
    public void onPlayerPortalEvent(PlayerPortalEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我进入了传送门");
  }
   @EventHandler
   //玩家退出事件
    public void onPlayerQuitEvent(PlayerQuitEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我退出了游戏");
  }
   @EventHandler
   //*玩家注册Channel事件
    public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent event){
    Player P=event.getPlayer();
    P.sendMessage("");
  }
   @EventHandler
   //玩家重生事件
    public void onPlayerRespawnEvent(PlayerRespawnEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我复活了");
  }
   @EventHandler
   //玩家剪东西事件比如剪羊毛
    public void onPlayerShearEntityEvent(PlayerShearEntityEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我正在使用剪刀");
  }
   @EventHandler
   //玩家统计数据增量事件
    public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我的统计数据增加了");
  }
   @EventHandler
   //玩家传送事件
    public void onPlayerTeleportEvent(PlayerTeleportEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我传送成功了");
  }
   @EventHandler
   //玩家切换飞行事件
    public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我切换到了飞行状态");
  }
   @EventHandler
   //玩家切换到潜行状态
    public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我正在潜行");
  }
   @EventHandler
   //玩家冲刺事件
    public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我正在冲刺");
  }
   @EventHandler
   //玩家释放实体事件
    public void onPlayerUnleashEntityEvent(PlayerUnleashEntityEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我释放了一个实体");
  }
   @EventHandler
   //玩家注销Channel事件
    public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我注销Channel");
  }
   @EventHandler
   //玩家速度事件
    public void onPlayerVelocityEvent(PlayerVelocityEvent event){
    Player P=event.getPlayer();
    P.sendMessage("我速度改变了");
  }
}



小烦

看……看不懂???
(#黑人问号

andylizi
测试辛苦了,很不容易呐..
不过现在已经有中文api了呢→_→虽然翻译的不怎么好

nsghd
小烦 发表于 2016-9-28 22:37
看……看不懂???
(#黑人问号

暂时只弄了org.bukkit.event.player的事件,其他的以后再研究

nsghd
andylizi 发表于 2016-9-28 22:53
测试辛苦了,很不容易呐..
不过现在已经有中文api了呢→_→虽然翻译的不怎么好 ...

中文api我很想吐槽=-=,实在忙不过来你们直接用有道人工翻译不就好了(手动滑稽
以及有道貌似有网页翻译直接网页翻译,然后保存下来233

xiaodobi2333
      @EventHandler
         //玩家退出事件
                public void onPlayerQuitEvent(PlayerQuitEvent event){
                         Player P=event.getPlayer();
                         P.sendMessage("我退出了游戏");
                 }



吃惊

sedjamm
好人哇,众人拾柴火焰高

qq245271830
留个名,  正在入门

___5
andylizi 发表于 2016-9-28 22:53
测试辛苦了,很不容易呐..
不过现在已经有中文api了呢→_→虽然翻译的不怎么好 ...

此网站无法访问。。。

andylizi
___5 发表于 2016-12-16 19:36
此网站无法访问。。。

备用链接http://jd.ddmcloud.com/Bukkit/

Mithey
andylizi 发表于 2016-12-16 19:57
备用链接http://jd.ddmcloud.com/Bukkit/

抓到一只梨子

___5
andylizi 发表于 2016-12-16 19:57
备用链接http://jd.ddmcloud.com/Bukkit/

还是无法访问。。是我网络问题还是需要翻墙?(最近连spigot网站访问变慢,而且logo,头像图挂了)
话说,这个怎么做到


ma0205601
谢谢,楼主的分享经验,

Csakurag
感谢分享

tdiant
引用中文BukkitAPI JavaDoc的说明
PlayerChannelEvent 当玩家注册/注销一个新的插件通道时触发本事件

这个事件一般监听他的子类:PlayerRegisterChannelEvent, PlayerUnregisterChannelEvent。我觉得很少会去监听这个玩意儿吧。