feat: replace heavy core with other item instead of fully disabling vaults
This commit is contained in:
parent
c930f30c74
commit
7b105820d7
3 changed files with 57 additions and 6 deletions
|
|
@ -0,0 +1,51 @@
|
|||
package dev.hrz0.smp4.Listeners;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockDispenseLootEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class BlockDispenseLootListener implements Listener {
|
||||
private final Logger logger;
|
||||
|
||||
public BlockDispenseLootListener(Logger logger) {
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onBlockDropItem(BlockDispenseLootEvent event) {
|
||||
logger.info(String.format("Vault: %s Heavy Core: %s", event.getBlock().getType().equals(Material.VAULT), event.getDispensedLoot().contains(ItemStack.of(Material.HEAVY_CORE))));
|
||||
if (event.getBlock().getType().equals(Material.VAULT)) {
|
||||
|
||||
List<ItemStack> loot = event.getDispensedLoot();
|
||||
|
||||
if (loot.contains(ItemStack.of(Material.HEAVY_CORE))) {
|
||||
loot.remove(ItemStack.of(Material.HEAVY_CORE));
|
||||
|
||||
if (Math.random() > 0.5) {
|
||||
logger.info("Replaced an heavy core with an enchanted golden apple.");
|
||||
loot.add(ItemStack.of(Material.ENCHANTED_GOLDEN_APPLE));
|
||||
} else {
|
||||
|
||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||
p.sendMessage("Replaced an heavy core with a wind burst book.");
|
||||
}
|
||||
ItemStack book = ItemStack.of(Material.ENCHANTED_BOOK);
|
||||
ItemMeta meta = book.getItemMeta();
|
||||
meta.addEnchant(Enchantment.WIND_BURST, (int) ((Math.random() * (3 - 1)) + 1), false); // ALWAYS ONE ?
|
||||
book.setItemMeta(meta);
|
||||
loot.add(book);
|
||||
}
|
||||
event.setDispensedLoot(loot);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@ package dev.hrz0.smp4;
|
|||
|
||||
import dev.hrz0.smp4.Listeners.DeathListener;
|
||||
import dev.hrz0.smp4.Listeners.JoinListener;
|
||||
import dev.hrz0.smp4.Listeners.VaultChangeStateListener;
|
||||
import dev.hrz0.smp4.Listeners.BlockDispenseLootListener;
|
||||
import dev.hrz0.smp4.Listeners.WorldSaveListener;
|
||||
import dev.hrz0.smp4.States.States;
|
||||
import dev.hrz0.smp4.States.StatesParser;
|
||||
|
|
@ -50,9 +50,9 @@ public final class Smp4 extends JavaPlugin {
|
|||
JoinListener joinListener = new JoinListener(states, logger);
|
||||
manager.registerEvents(joinListener, this);
|
||||
|
||||
if (config.getBoolean("disableVaultLoot")) {
|
||||
VaultChangeStateListener vaultChangeStateListener = new VaultChangeStateListener();
|
||||
manager.registerEvents(vaultChangeStateListener, this);
|
||||
if (config.getBoolean("preventMaceLoot")) {
|
||||
BlockDispenseLootListener blockDispenseLootListener = new BlockDispenseLootListener(logger);
|
||||
manager.registerEvents(blockDispenseLootListener, this);
|
||||
}
|
||||
|
||||
registerCommand(
|
||||
|
|
@ -81,7 +81,7 @@ public final class Smp4 extends JavaPlugin {
|
|||
|
||||
if (eggOwner != null) {
|
||||
List<String> commands = config.getStringList("eggOwnerCommands");
|
||||
Map<String, String> toFill = new HashMap<String, String>();
|
||||
Map<String, String> toFill = new HashMap<>();
|
||||
|
||||
toFill.put("<owner>", eggOwner.getName());
|
||||
Utilities.runCommands(commands, toFill);
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@ eloGainWhenHoldingEgg: 10
|
|||
# How much money should be given to players holding the dragon egg every eggOwnerCommandInterval
|
||||
moneyGainWhenHoldingEgg: 100
|
||||
|
||||
disableVaultLoot: true
|
||||
preventMaceLoot: true
|
||||
Loading…
Add table
Add a link
Reference in a new issue