凉凉丶
PlayerFishEvent
这个好像是钓鱼竿钓鱼时触发的事件
有没有办法获取到钓到的东西的ItemStack?
bukkitapi中只有获取鱼的( getCaught()还是一个CraftItem的东西

ABlueCat
本帖最后由 dengyu 于 2021-6-14 12:35 编辑

getCaught
@Nullable
public Entity getCaught()
Gets the entity caught by the player.
If player has fished successfully, the result may be cast to Item.

Returns:
Entity caught by the player, Entity if fishing, and null if bobber has gotten stuck in the ground or nothing has been caught

钓鱼成功的话,返回的Entity可以转换为Item类型

鬼畜畜
dengyu 发表于 2021-6-14 12:33
getCaught
@Nullable
public Entity getCaught()

还是要instanceof一下,这个Entity可能还会是别的实体,例如动物怪物或者TNT(mcmmo操作)等等
直接cast是很危险的

凉凉丶
dengyu 发表于 2021-6-14 12:33
getCaught
@Nullable
public Entity getCaught()
  1. @EventHandler
  2.     public void te(PlayerFishEvent event){
  3.         ItemStack itemStack;
  4.         if(event.getCaught() != null){
  5.             itemStack = (ItemStack) event.getCaught();
  6.             event.getPlayer().sendMessage(itemStack.toString());
  7.         }
  8.     }
复制代码

我是这样操作的,之前也有尝试过,但是没给玩家发信息

鬼畜畜
凉凉丶 发表于 2021-6-14 13:23
我是这样操作的,之前也有尝试过,但是没给玩家发信息
@EventHandler
    public void te(PlayerFishEvent event){
  ItemStack itemStack;
  if(event.getCaught() != null && event.getCaught() instanceof Item){
   Item item = (Item)event.getCaught();
   itemStack = item.getItemStack();
   event.getPlayer().sendMessage(itemStack.toString());
  }
    }
以及 你是否注册了监听器?

凉凉丶
本帖最后由 凉凉丶 于 2021-6-14 15:11 编辑
鬼畜畜 发表于 2021-6-14 13:36
以及 你是否注册了监听器?

edit(转型错了)

第一页 上一页 下一页 最后一页