尝试使用检测BlockFromToEvent来检测一个流体破坏物品的事件并判断放置流体的玩家
思路:
首先监听玩家放置方块事件,如果是水/岩浆->存入hashmap<Block block,String player>
监听BlockFromToEvent,获取如果getToBlock()是树苗(火把)的话,去hashmap里面查找是谁放的
作出处理,并移除hashmap
(来自空)
问题是我的代码没有成功运行啊。。。?
- public class waterplaced implements Listener {
 
 
-     Plugin config = Happytree.getProvidingPlugin(Happytree.class);
 
-     Map<Block,Player> map = new HashMap<>();
 
-     @EventHandler
 
-     public void onWaterPlace(BlockPlaceEvent evt) {
 
-         Material m = evt.getBlock().getType();
 
-         Player p = evt.getPlayer();
 
-         Block b = evt.getBlock();
 
-         if (m == Material.WATER||m == Material.LAVA) {
 
- map.put(b,p);
 
-         }
 
-     }
 
-     @EventHandler
 
-     public void onWaterBreak(BlockFromToEvent evt) {
 
-         Block b = evt.getToBlock();
 
- Block block = evt.getBlock();
 
-         Material m = b.getType();
 
-         if (m.equals(Material.ACACIA_SAPLING) || m.equals(Material.DARK_OAK_SAPLING) ||m.equals(Material.JUNGLE_SAPLING)||m.equals(Material.OAK_SAPLING)||m.equals(Material.SPRUCE_SAPLING)||m.equals(Material.BIRCH_SAPLING)) {
 
-             if(map.containsKey(block)){
 
-                 Player p = map.get(block);
 
-                 String pn = p.getName();
 
-                 int dt;
 
-                 int num;
 
-                 num = config.getConfig().getInt("des."+pn);
 
-                 dt = config.getConfig().getInt("destotal");
 
-                 config.getConfig().set("des."+pn,num+1);
 
-                 config.getConfig().set("destotal",dt+1);
 
-                 config.saveConfig();
 
- map.remove(block);
 
-             }
 
-         }
 
-     }
 
- }
 本帖最后由 拉普达 于 2022-2-17 19:08 编辑 
放置水/岩浆(水桶或岩浆桶),不会触发BlockPlaceEvent事件。具体触发什么事件我还没搞清除,暂时建议从PlayerInteractEvent入手
放置水/岩浆(水桶或岩浆桶),不会触发BlockPlaceEvent事件。具体触发什么事件我还没搞清除,暂时建议从PlayerInteractEvent入手
好专业我这个萌的不能再萌的萌新听不懂啊
拉普达 发表于 2022-2-17 19:00
放置水/岩浆(水桶或岩浆桶),不会触发BlockPlaceEvent事件。具体触发什么事件我还没搞清除,暂时建议从Play ...
那我还有一个问题:
假如我监听了交互事件,我应该怎么获取这个方块(水)呢?
 本帖最后由 拉普达 于 2022-2-18 19:27 编辑 
判断手上拿着的是不是水/岩浆桶
判断手上拿着的是不是水/岩浆桶
克鲁鲁殿下 发表于 2022-2-18 19:33
唔。。。。。。
应该是正解了