PlayerFishEvent
这个好像是钓鱼竿钓鱼时触发的事件
有没有办法获取到钓到的东西的ItemStack?
bukkitapi中只有获取鱼的( getCaught()还是一个CraftItem的东西
这个好像是钓鱼竿钓鱼时触发的事件
有没有办法获取到钓到的东西的ItemStack?
bukkitapi中只有获取鱼的( getCaught()还是一个CraftItem的东西
本帖最后由 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类型
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类型
还是要instanceof一下,这个Entity可能还会是别的实体,例如动物怪物或者TNT(mcmmo操作)等等
直接cast是很危险的
dengyu 发表于 2021-6-14 12:33
getCaught
@Nullable
public Entity getCaught()
- @EventHandler
- public void te(PlayerFishEvent event){
- ItemStack itemStack;
- if(event.getCaught() != null){
- itemStack = (ItemStack) event.getCaught();
- event.getPlayer().sendMessage(itemStack.toString());
- }
- }
我是这样操作的,之前也有尝试过,但是没给玩家发信息
凉凉丶 发表于 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());
}
}
以及 你是否注册了监听器?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());
}
}