- Баллы
- 76
- Имя в Minecraft
- CUBOPHORIA
Написал код, всё работает кроме отключения выпадения дропа у блока в регионе, уже и так переписал и сяк, не пойму. Блок ломаешь, основной дроп в виде руды или в случае алмазной руды - Алмаза, не должны выпадать, а лишь только ресурс из config.yml прописанный там (это я сделал и оно выпадает), а вот основной дроп остаётся.
Код:
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
Block block = event.getBlock();
Player player = event.getPlayer();
RegionContainer regionContainer = worldGuardPlugin.getRegionContainer();
RegionQuery query = regionContainer.createQuery();
CompletableFuture.runAsync(() -> {
ProtectedRegion region = getRegion(block.getLocation());
if (region == null) {
return;
}
String regionName = region.getId();
if (!regionBlockReplacementTimes.containsKey(regionName)) {
return;
}
Material material = block.getType();
if (oreMaterials.contains(material)) {
long delay = regionBlockReplacementTimes.get(regionName).getOrDefault(material, 0L);
Material dropMaterial = regionBlockDrops.get(regionName).get(material);
Bukkit.getScheduler().runTask(this, () -> {
event.setCancelled(true);
replaceBlockWithBedrock(block);
Bukkit.getScheduler().runTaskLater(this, () -> {
restoreBlock(block, material);
}, delay * 20L);
if (dropMaterial != null) {
dropItem(block, dropMaterial);
}
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1.0f, 1.0f);
});
}
});
}