mirror of
https://github.com/songoda/EpicHoppers.git
synced 2025-02-19 05:11:33 +01:00
Hooked BlockBreakBlackList and AutoSellPrices to Settings
This commit is contained in:
parent
cd601a8b7f
commit
fab8fc5a2c
@ -26,16 +26,12 @@ public class ModuleAutoSell extends Module {
|
|||||||
|
|
||||||
private final int timeOut;
|
private final int timeOut;
|
||||||
private final int hopperTickRate;
|
private final int hopperTickRate;
|
||||||
// TODO: Cached Sell prices are not updated on plugin reload, same with any other module
|
|
||||||
private static List<String> cachedSellPrices = null;
|
|
||||||
private static final Map<Hopper, Boolean> cachedNotifications = new ConcurrentHashMap<>();
|
private static final Map<Hopper, Boolean> cachedNotifications = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public ModuleAutoSell(EpicHoppers plugin, int timeOut) {
|
public ModuleAutoSell(EpicHoppers plugin, int timeOut) {
|
||||||
super(plugin);
|
super(plugin);
|
||||||
this.timeOut = timeOut * 20;
|
this.timeOut = timeOut * 20;
|
||||||
this.hopperTickRate = Settings.HOP_TICKS.getInt();
|
this.hopperTickRate = Settings.HOP_TICKS.getInt();
|
||||||
if (cachedSellPrices == null)
|
|
||||||
cachedSellPrices = plugin.getConfig().getStringList("Main.AutoSell Prices");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -89,7 +85,7 @@ public class ModuleAutoSell extends Module {
|
|||||||
value = 0;
|
value = 0;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
value = cachedSellPrices.stream().filter(line -> Material.valueOf(line.split(",")[0]) == itemStack.getType()).findFirst()
|
value = Settings.AUTOSELL_PRICES.getStringList().stream().filter(line -> Material.valueOf(line.split(",")[0]) == itemStack.getType()).findFirst()
|
||||||
.map(s -> Double.valueOf(s.split(",")[1])).orElse(0.0);
|
.map(s -> Double.valueOf(s.split(",")[1])).orElse(0.0);
|
||||||
|
|
||||||
if (value == 0) continue;
|
if (value == 0) continue;
|
||||||
|
@ -3,6 +3,7 @@ package com.songoda.epichoppers.hopper.levels.modules;
|
|||||||
import com.songoda.core.compatibility.ServerVersion;
|
import com.songoda.core.compatibility.ServerVersion;
|
||||||
import com.songoda.epichoppers.EpicHoppers;
|
import com.songoda.epichoppers.EpicHoppers;
|
||||||
import com.songoda.epichoppers.hopper.Hopper;
|
import com.songoda.epichoppers.hopper.Hopper;
|
||||||
|
import com.songoda.epichoppers.settings.Settings;
|
||||||
import com.songoda.epichoppers.utils.Methods;
|
import com.songoda.epichoppers.utils.Methods;
|
||||||
import com.songoda.epichoppers.utils.StorageContainerCache;
|
import com.songoda.epichoppers.utils.StorageContainerCache;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -28,22 +29,10 @@ public class ModuleBlockBreak extends Module {
|
|||||||
private final int ticksPerBreak;
|
private final int ticksPerBreak;
|
||||||
private final Map<Hopper, Integer> blockTick = new HashMap<>();
|
private final Map<Hopper, Integer> blockTick = new HashMap<>();
|
||||||
private static final Map<Hopper, Boolean> cachedBlocks = new ConcurrentHashMap<>();
|
private static final Map<Hopper, Boolean> cachedBlocks = new ConcurrentHashMap<>();
|
||||||
private static Particle cachedParticleEffectType = null;
|
|
||||||
private static final List<String> cachedBlacklistTypes = new ArrayList<>();
|
|
||||||
|
|
||||||
public ModuleBlockBreak(EpicHoppers plugin, int amount) {
|
public ModuleBlockBreak(EpicHoppers plugin, int amount) {
|
||||||
super(plugin);
|
super(plugin);
|
||||||
this.ticksPerBreak = amount;
|
this.ticksPerBreak = amount;
|
||||||
if (cachedBlacklistTypes.isEmpty()) {
|
|
||||||
cachedBlacklistTypes.addAll(plugin.getConfig().getStringList("Main.BlockBreak Blacklisted Blocks"));
|
|
||||||
}
|
|
||||||
if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_9) && cachedParticleEffectType == null) {
|
|
||||||
try {
|
|
||||||
cachedParticleEffectType = Particle.valueOf(plugin.getConfig().getString("Main.BlockBreak Particle Type"));
|
|
||||||
} catch (Exception e) {
|
|
||||||
cachedParticleEffectType = Particle.LAVA;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -81,7 +70,7 @@ public class ModuleBlockBreak extends Module {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// don't break blacklisted blocks, fluids, or containers
|
// don't break blacklisted blocks, fluids, or containers
|
||||||
if (cachedBlacklistTypes.contains(above.getType().name())
|
if (Settings.BLOCKBREAK_BLACKLIST.getStringList().contains(above.getType().name())
|
||||||
|| above.getType() == Material.WATER
|
|| above.getType() == Material.WATER
|
||||||
|| above.getType() == Material.LAVA
|
|| above.getType() == Material.LAVA
|
||||||
|| above.getType() == Material.AIR
|
|| above.getType() == Material.AIR
|
||||||
@ -99,7 +88,15 @@ public class ModuleBlockBreak extends Module {
|
|||||||
float xx = (float) (0 + (Math.random() * .5));
|
float xx = (float) (0 + (Math.random() * .5));
|
||||||
float yy = (float) (0 + (Math.random() * .5));
|
float yy = (float) (0 + (Math.random() * .5));
|
||||||
float zz = (float) (0 + (Math.random() * .5));
|
float zz = (float) (0 + (Math.random() * .5));
|
||||||
above.getWorld().spawnParticle(cachedParticleEffectType, locationAbove, 15, xx, yy, zz);
|
|
||||||
|
Particle particle;
|
||||||
|
try {
|
||||||
|
particle = Particle.valueOf(Settings.BLOCKBREAK_PARTICLE.getString());
|
||||||
|
} catch (Exception e) {
|
||||||
|
particle = Particle.LAVA;
|
||||||
|
}
|
||||||
|
|
||||||
|
above.getWorld().spawnParticle(particle, locationAbove, 15, xx, yy, zz);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean waterlogged = false;
|
boolean waterlogged = false;
|
||||||
|
@ -62,7 +62,7 @@ public class Settings {
|
|||||||
public static final ConfigSetting BLOCKBREAK_PARTICLE = new ConfigSetting(config, "Main.BlockBreak Particle Type", "LAVA",
|
public static final ConfigSetting BLOCKBREAK_PARTICLE = new ConfigSetting(config, "Main.BlockBreak Particle Type", "LAVA",
|
||||||
"The particle shown when the block break module performs a block break.");
|
"The particle shown when the block break module performs a block break.");
|
||||||
|
|
||||||
public static final ConfigSetting BLACKLIST = new ConfigSetting(config, "Main.BlockBreak Blacklisted Blocks",
|
public static final ConfigSetting BLOCKBREAK_BLACKLIST = new ConfigSetting(config, "Main.BlockBreak Blacklisted Blocks",
|
||||||
Arrays.asList("BEDROCK", "END_PORTAL", "ENDER_PORTAL", "END_PORTAL_FRAME", "ENDER_PORTAL_FRAME", "PISTON_HEAD", "PISTON_EXTENSION", "RAIL", "RAILS", "ACTIVATOR_RAIL", "DETECTOR_RAIL", "POWERED_RAIL"),
|
Arrays.asList("BEDROCK", "END_PORTAL", "ENDER_PORTAL", "END_PORTAL_FRAME", "ENDER_PORTAL_FRAME", "PISTON_HEAD", "PISTON_EXTENSION", "RAIL", "RAILS", "ACTIVATOR_RAIL", "DETECTOR_RAIL", "POWERED_RAIL"),
|
||||||
"Anything listed here will not be broken by the block break module.");
|
"Anything listed here will not be broken by the block break module.");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user