怎么样写能取消玩家扔鸡蛋,我试过 event.setCancelled(true); 然后报错,不行啊
Called when a player throws an egg and it might hatch
也就是说这应该是扔出鸡蛋后的事件
考虑监听物品使用事件PlayerInteractEvent并进行取消
也就是说这应该是扔出鸡蛋后的事件
考虑监听物品使用事件PlayerInteractEvent并进行取消
如果想消耗但不产生蛋就getEgg然后移除掉蛋
青蛙的名单 发表于 2021-12-3 16:48
如果想消耗但不产生蛋就getEgg然后移除掉蛋
那如果是不消耗也不产生蛋呢
美味的曲奇 发表于 2021-12-3 16:47
Called when a player throws an egg and it might hatch
也就是说这应该是扔出鸡蛋后的事件
考虑监听物品 ...
PlayerInteractEvent,这个事件怎么用...我怎么在网上没找到
本帖最后由 Taboolib 于 2021-12-3 19:37 编辑
应该差不多是这样(未经测试)复制代码
应该差不多是这样(未经测试)
- //Kotlin + TabooLib代码:
- @SubscribeEvent
- fun e(e:PlayerInteractEvent){
- if (e.item!!.type == Material.EGG){
- e.isCancelled = true
- }
- }
可以试着监测是否同时满足 手上持有鸡蛋+是否右键 如果是那么取消后者事件的执行
本帖最后由 美味的曲奇 于 2021-12-4 08:12 编辑
*随手摸的,未经实际运行/**
* @author cookie
*/
public class Event implements Listener {
@EventHandler
public void onPlayerThrowEgg(PlayerInteractEvent event){
if(event.getAction().isRightClick()&&event.getMaterial().equals(Material.EGG)){
event.setCancelled(true);
}
}
}
试试这样呢
伏天咕咕咕 发表于 2021-12-3 19:14
PlayerInteractEvent,这个事件怎么用...我怎么在网上没找到
*随手摸的,未经实际运行/**
* @author cookie
*/
public class Event implements Listener {
@EventHandler
public void onPlayerThrowEgg(PlayerInteractEvent event){
if(event.getAction().isRightClick()&&event.getMaterial().equals(Material.EGG)){
event.setCancelled(true);
}
}
}
试试这样呢
美味的曲奇 发表于 2021-12-4 08:11
*随手摸的,未经实际运行/**
* @author cookie
*/
EventHandler的优先级应该是LOWEST,不然获取不到这个事件(因为nms内部会自动取消右键空气事件)