!Removed unused deprecated methods

This commit is contained in:
Indyuce 2021-01-01 23:58:38 +01:00
parent e2bf9ff034
commit 4472198da3
3 changed files with 42 additions and 37 deletions

View File

@ -1,12 +1,11 @@
package net.Indyuce.mmocore.api.block; package net.Indyuce.mmocore.api.block;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import net.mmogroup.mmolib.api.condition.type.BlockCondition;
import net.mmogroup.mmolib.api.condition.type.MMOCondition;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@ -17,24 +16,19 @@ import org.bukkit.inventory.ItemStack;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.droptable.DropTable; import net.Indyuce.mmocore.api.droptable.DropTable;
import net.Indyuce.mmocore.api.loot.LootBuilder; import net.Indyuce.mmocore.api.loot.LootBuilder;
import net.Indyuce.mmocore.api.quest.trigger.ExperienceTrigger;
import net.Indyuce.mmocore.api.quest.trigger.Trigger; import net.Indyuce.mmocore.api.quest.trigger.Trigger;
import net.mmogroup.mmolib.UtilityMethods; import net.mmogroup.mmolib.UtilityMethods;
import net.mmogroup.mmolib.api.MMOLineConfig; import net.mmogroup.mmolib.api.MMOLineConfig;
import net.mmogroup.mmolib.api.condition.type.BlockCondition;
import net.mmogroup.mmolib.api.condition.type.MMOCondition;
public class BlockInfo { public class BlockInfo {
private final BlockType block; private final BlockType block;
private final DropTable table; private final DropTable table;
private final boolean vanillaDrops;
private final RegenInfo regen; private final RegenInfo regen;
private final List<Trigger> triggers = new ArrayList<>(); private final List<Trigger> triggers = new ArrayList<>();
private final List<BlockCondition> conditions = new ArrayList<>(); private final List<BlockCondition> conditions = new ArrayList<>();
private final Map<BlockInfoOption, Boolean> options = new HashMap<>();
/*
* saved separately because MMOCore needs to display the experience gained,
* since it requires a steam call it is better to cache right off the start
*/
private final ExperienceTrigger experience;
public BlockInfo(ConfigurationSection config) { public BlockInfo(ConfigurationSection config) {
Validate.notNull(config, "Could not load config"); Validate.notNull(config, "Could not load config");
@ -42,10 +36,19 @@ public class BlockInfo {
block = MMOCore.plugin.loadManager.loadBlockType(new MMOLineConfig(config.getString("material"))); block = MMOCore.plugin.loadManager.loadBlockType(new MMOLineConfig(config.getString("material")));
table = config.contains("drop-table") ? MMOCore.plugin.dropTableManager.loadDropTable(config.get("drop-table")) : null; table = config.contains("drop-table") ? MMOCore.plugin.dropTableManager.loadDropTable(config.get("drop-table")) : null;
vanillaDrops = config.getBoolean("vanilla-drops", true);
regen = config.contains("regen") ? new RegenInfo(config.getConfigurationSection("regen")) : null; regen = config.contains("regen") ? new RegenInfo(config.getConfigurationSection("regen")) : null;
if (config.contains("options"))
for (String key : config.getConfigurationSection("options").getKeys(false))
try {
BlockInfoOption option = BlockInfoOption.valueOf(key.toUpperCase().replace("-", "_").replace(" ", "_"));
options.put(option, config.getBoolean("options." + key));
} catch (IllegalArgumentException exception) {
MMOCore.plugin.getLogger().log(Level.WARNING,
"Could not load option '" + key + "' from block info '" + block.generateKey() + "': " + exception.getMessage());
}
if (config.contains("triggers")) { if (config.contains("triggers")) {
List<String> list = config.getStringList("triggers"); List<String> list = config.getStringList("triggers");
Validate.notNull(list, "Could not load triggers"); Validate.notNull(list, "Could not load triggers");
@ -59,9 +62,6 @@ public class BlockInfo {
} }
} }
Optional<Trigger> opt = triggers.stream().filter(trigger -> (trigger instanceof ExperienceTrigger)).findFirst();
experience = (ExperienceTrigger) opt.orElse(null);
if (config.isList("conditions")) if (config.isList("conditions"))
for (String key : config.getStringList("conditions")) { for (String key : config.getStringList("conditions")) {
MMOCondition condition = UtilityMethods.getCondition(key); MMOCondition condition = UtilityMethods.getCondition(key);
@ -71,8 +71,8 @@ public class BlockInfo {
} }
public boolean hasVanillaDrops() { public boolean getOption(BlockInfoOption option) {
return vanillaDrops; return options.getOrDefault(option, option.getDefault());
} }
public BlockType getBlock() { public BlockType getBlock() {
@ -107,14 +107,6 @@ public class BlockInfo {
return new RegeneratingBlock(data, loc, this); return new RegeneratingBlock(data, loc, this);
} }
public boolean hasExperience() {
return experience != null;
}
public ExperienceTrigger getExperience() {
return experience;
}
public boolean hasTriggers() { public boolean hasTriggers() {
return !triggers.isEmpty(); return !triggers.isEmpty();
} }
@ -130,6 +122,29 @@ public class BlockInfo {
return true; return true;
} }
public static enum BlockInfoOption {
/**
* When disabled, removes the vanilla drops when a block is mined
*/
VANILLA_DROPS(true),
/**
* When disabled, removes exp holograms when mined
*/
EXP_HOLOGRAMS(true);
private final boolean def;
private BlockInfoOption(boolean def) {
this.def = def;
}
public boolean getDefault() {
return def;
}
}
public static class RegeneratingBlock { public static class RegeneratingBlock {
private final BlockData data; private final BlockData data;
private final Location loc; private final Location loc;

View File

@ -10,7 +10,6 @@ import org.bukkit.inventory.ItemStack;
import net.Indyuce.mmocore.api.block.BlockInfo; import net.Indyuce.mmocore.api.block.BlockInfo;
import net.Indyuce.mmocore.api.droptable.condition.ConditionInstance; import net.Indyuce.mmocore.api.droptable.condition.ConditionInstance;
import net.Indyuce.mmocore.api.experience.ExperienceInfo;
import net.Indyuce.mmocore.api.loot.LootBuilder; import net.Indyuce.mmocore.api.loot.LootBuilder;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
@ -20,7 +19,6 @@ public class CustomBlockMineEvent extends PlayerDataEvent implements Cancellable
private final Block block; private final Block block;
private final BlockInfo info; private final BlockInfo info;
private final List<ItemStack> drops; private final List<ItemStack> drops;
private final ExperienceInfo experience;
@Deprecated @Deprecated
private boolean canBreak; private boolean canBreak;
@ -34,7 +32,6 @@ public class CustomBlockMineEvent extends PlayerDataEvent implements Cancellable
this.drops = (info.hasDropTable() && player.isOnline() && info.getDropTable().areConditionsMet(new ConditionInstance(player.getPlayer()))) this.drops = (info.hasDropTable() && player.isOnline() && info.getDropTable().areConditionsMet(new ConditionInstance(player.getPlayer())))
? info.collectDrops(new LootBuilder(player, 0)) ? info.collectDrops(new LootBuilder(player, 0))
: new ArrayList<>(); : new ArrayList<>();
this.experience = info.hasExperience() ? info.getExperience().newInfo() : null;
this.canBreak = canBreak; this.canBreak = canBreak;
} }
@ -50,14 +47,6 @@ public class CustomBlockMineEvent extends PlayerDataEvent implements Cancellable
return info; return info;
} }
public boolean hasGainedExperience() {
return experience != null;
}
public ExperienceInfo getGainedExperience() {
return experience;
}
@Deprecated @Deprecated
public boolean canBreak() { public boolean canBreak() {
return canBreak; return canBreak;

View File

@ -23,6 +23,7 @@ import org.bukkit.metadata.FixedMetadataValue;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.block.BlockInfo; import net.Indyuce.mmocore.api.block.BlockInfo;
import net.Indyuce.mmocore.api.block.VanillaBlockType; import net.Indyuce.mmocore.api.block.VanillaBlockType;
import net.Indyuce.mmocore.api.block.BlockInfo.BlockInfoOption;
import net.Indyuce.mmocore.api.event.CustomBlockMineEvent; import net.Indyuce.mmocore.api.event.CustomBlockMineEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.MMOCoreUtils; import net.Indyuce.mmocore.api.util.MMOCoreUtils;
@ -104,7 +105,7 @@ public class BlockListener implements Listener {
* MMOItems durability. It does not apply specific durability loss based * MMOItems durability. It does not apply specific durability loss based
* on block/tool broken yet simple compatibility stuff * on block/tool broken yet simple compatibility stuff
*/ */
if (!info.hasVanillaDrops()) { if (!info.getOption(BlockInfoOption.VANILLA_DROPS)) {
event.setCancelled(true); event.setCancelled(true);
event.getBlock().setType(Material.AIR); event.getBlock().setType(Material.AIR);
MMOCoreUtils.decreaseDurability(player, EquipmentSlot.HAND, 1); MMOCoreUtils.decreaseDurability(player, EquipmentSlot.HAND, 1);