mirror of
https://github.com/songoda/EpicHoppers.git
synced 2024-11-26 20:26:19 +01:00
Added module saving system.
Autocrafting and blockbreak settings will not be saved.
This commit is contained in:
parent
0f15f9dbfd
commit
6f29eea10c
@ -4,7 +4,7 @@ stages:
|
|||||||
variables:
|
variables:
|
||||||
name: "EpicHoppers"
|
name: "EpicHoppers"
|
||||||
path: "/builds/$CI_PROJECT_PATH"
|
path: "/builds/$CI_PROJECT_PATH"
|
||||||
version: "4.0.4"
|
version: "4.1"
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
|
@ -9,7 +9,6 @@ import com.songoda.epichoppers.economy.VaultEconomy;
|
|||||||
import com.songoda.epichoppers.enchantment.Enchantment;
|
import com.songoda.epichoppers.enchantment.Enchantment;
|
||||||
import com.songoda.epichoppers.handlers.TeleportHandler;
|
import com.songoda.epichoppers.handlers.TeleportHandler;
|
||||||
import com.songoda.epichoppers.hopper.Filter;
|
import com.songoda.epichoppers.hopper.Filter;
|
||||||
import com.songoda.epichoppers.hopper.Hopper;
|
|
||||||
import com.songoda.epichoppers.hopper.HopperBuilder;
|
import com.songoda.epichoppers.hopper.HopperBuilder;
|
||||||
import com.songoda.epichoppers.hopper.HopperManager;
|
import com.songoda.epichoppers.hopper.HopperManager;
|
||||||
import com.songoda.epichoppers.hopper.levels.Level;
|
import com.songoda.epichoppers.hopper.levels.Level;
|
||||||
@ -236,6 +235,10 @@ public class EpicHoppers extends JavaPlugin {
|
|||||||
private void saveToFile() {
|
private void saveToFile() {
|
||||||
checkStorage();
|
checkStorage();
|
||||||
|
|
||||||
|
for (Level level : EpicHoppers.getInstance().getLevelManager().getLevels().values())
|
||||||
|
for (Module module : level.getRegisteredModules())
|
||||||
|
module.saveDataToFile();
|
||||||
|
|
||||||
storage.doSave();
|
storage.doSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,14 +284,6 @@ public class EpicHoppers extends JavaPlugin {
|
|||||||
|
|
||||||
TeleportTrigger teleportTrigger = TeleportTrigger.valueOf(row.get("teleporttrigger").asString() == null ? "DISABLED" : row.get("teleporttrigger").asString());
|
TeleportTrigger teleportTrigger = TeleportTrigger.valueOf(row.get("teleporttrigger").asString() == null ? "DISABLED" : row.get("teleporttrigger").asString());
|
||||||
|
|
||||||
String autoCraftingStr = row.get("autocrafting").asString() == null ? "AIR" : row.get("autocrafting").asString();
|
|
||||||
String[] autoCraftingParts = autoCraftingStr.split(":");
|
|
||||||
ItemStack autoCrafting = new ItemStack(Material.valueOf(autoCraftingParts[0]), 1, Short.parseShort(autoCraftingParts.length == 2 ? autoCraftingParts[1] : "0"));
|
|
||||||
|
|
||||||
boolean autoSell = row.get("autosell").asBoolean();
|
|
||||||
|
|
||||||
boolean autoBreak = row.get("autobreak").asBoolean();
|
|
||||||
|
|
||||||
hopperManager.addHopper(new HopperBuilder(location)
|
hopperManager.addHopper(new HopperBuilder(location)
|
||||||
.setLevel(level)
|
.setLevel(level)
|
||||||
.setLastPlayerOpened(lastPlayer)
|
.setLastPlayerOpened(lastPlayer)
|
||||||
@ -296,9 +291,6 @@ public class EpicHoppers extends JavaPlugin {
|
|||||||
.addLinkedBlocks(blocks.toArray(new Location[0]))
|
.addLinkedBlocks(blocks.toArray(new Location[0]))
|
||||||
.setFilter(filter)
|
.setFilter(filter)
|
||||||
.setTeleportTrigger(teleportTrigger)
|
.setTeleportTrigger(teleportTrigger)
|
||||||
.setAutoCrafting(autoCrafting)
|
|
||||||
.setAutoSelling(autoSell)
|
|
||||||
.setAutoBreaking(autoBreak)
|
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -351,17 +343,17 @@ public class EpicHoppers extends JavaPlugin {
|
|||||||
|
|
||||||
for (String key : levels.getKeys(false)) {
|
for (String key : levels.getKeys(false)) {
|
||||||
if (key.equals("Suction") && levels.getInt("Suction") != 0) {
|
if (key.equals("Suction") && levels.getInt("Suction") != 0) {
|
||||||
modules.add(new ModuleSuction(levels.getInt("Suction")));
|
modules.add(new ModuleSuction(this, levels.getInt("Suction")));
|
||||||
} else if (key.equals("BlockBreak") && levels.getInt("BlockBreak") != 0) {
|
} else if (key.equals("BlockBreak") && levels.getInt("BlockBreak") != 0) {
|
||||||
modules.add(new ModuleBlockBreak(levels.getInt("BlockBreak")));
|
modules.add(new ModuleBlockBreak(this, levels.getInt("BlockBreak")));
|
||||||
} else if (key.equals("AutoCrafting")) {
|
} else if (key.equals("AutoCrafting")) {
|
||||||
modules.add(new ModuleAutoCrafting());
|
modules.add(new ModuleAutoCrafting(this));
|
||||||
} else if (key.equals("AutoSell")) {
|
} else if (key.equals("AutoSell")) {
|
||||||
modules.add(new ModuleAutoSell(autoSell));
|
modules.add(new ModuleAutoSell(this, autoSell));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
levelManager.addLevel(level, costExperiance, costEconomy, radius, amount, filter, teleport, linkAmount, autoSell, modules);
|
levelManager.addLevel(level, costExperiance, costEconomy, radius, amount, filter, teleport, linkAmount, modules);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package com.songoda.epichoppers.gui;
|
|||||||
|
|
||||||
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.hopper.levels.modules.ModuleAutoCrafting;
|
||||||
import com.songoda.epichoppers.utils.Methods;
|
import com.songoda.epichoppers.utils.Methods;
|
||||||
import com.songoda.epichoppers.utils.gui.AbstractGUI;
|
import com.songoda.epichoppers.utils.gui.AbstractGUI;
|
||||||
import com.songoda.epichoppers.utils.gui.Range;
|
import com.songoda.epichoppers.utils.gui.Range;
|
||||||
@ -13,11 +14,13 @@ public class GUICrafting extends AbstractGUI {
|
|||||||
|
|
||||||
private final EpicHoppers plugin;
|
private final EpicHoppers plugin;
|
||||||
private final Hopper hopper;
|
private final Hopper hopper;
|
||||||
|
private final ModuleAutoCrafting module;
|
||||||
|
|
||||||
public GUICrafting(EpicHoppers plugin, Hopper hopper, Player player) {
|
public GUICrafting(EpicHoppers plugin, ModuleAutoCrafting autoCrafting, Hopper hopper, Player player) {
|
||||||
super(player);
|
super(player);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.hopper = hopper;
|
this.hopper = hopper;
|
||||||
|
this.module = autoCrafting;
|
||||||
|
|
||||||
init(Methods.formatName(hopper.getLevel().getLevel(), false) + " &8-&f Crafting", 27);
|
init(Methods.formatName(hopper.getLevel().getLevel(), false) + " &8-&f Crafting", 27);
|
||||||
}
|
}
|
||||||
@ -48,7 +51,8 @@ public class GUICrafting extends AbstractGUI {
|
|||||||
inventory.setItem(25, Methods.getBackgroundGlass(true));
|
inventory.setItem(25, Methods.getBackgroundGlass(true));
|
||||||
inventory.setItem(26, Methods.getBackgroundGlass(true));
|
inventory.setItem(26, Methods.getBackgroundGlass(true));
|
||||||
|
|
||||||
inventory.setItem(13, hopper.getAutoCrafting() == null ? new ItemStack(Material.AIR) : hopper.getAutoCrafting());
|
inventory.setItem(13, module.getAutoCrafting(hopper) == null
|
||||||
|
? new ItemStack(Material.AIR) : module.getAutoCrafting(hopper));
|
||||||
|
|
||||||
addDraggable(new Range(13, 13, null, false), true);
|
addDraggable(new Range(13, 13, null, false), true);
|
||||||
}
|
}
|
||||||
@ -60,7 +64,6 @@ public class GUICrafting extends AbstractGUI {
|
|||||||
@Override
|
@Override
|
||||||
protected void registerOnCloses() {
|
protected void registerOnCloses() {
|
||||||
registerOnClose(((player, inventory) ->
|
registerOnClose(((player, inventory) ->
|
||||||
hopper.setAutoCrafting(player, inventory.getItem(13))));
|
module.setAutoCrafting(hopper, player, inventory.getItem(13))));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,18 +8,11 @@ import com.songoda.epichoppers.utils.CostType;
|
|||||||
import com.songoda.epichoppers.utils.Methods;
|
import com.songoda.epichoppers.utils.Methods;
|
||||||
import com.songoda.epichoppers.utils.ServerVersion;
|
import com.songoda.epichoppers.utils.ServerVersion;
|
||||||
import com.songoda.epichoppers.utils.TeleportTrigger;
|
import com.songoda.epichoppers.utils.TeleportTrigger;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.*;
|
||||||
import org.bukkit.GameMode;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by songoda on 3/14/2017.
|
* Created by songoda on 3/14/2017.
|
||||||
@ -33,11 +26,10 @@ public class Hopper {
|
|||||||
private List<Location> linkedBlocks = new ArrayList<>();
|
private List<Location> linkedBlocks = new ArrayList<>();
|
||||||
private Filter filter = new Filter();
|
private Filter filter = new Filter();
|
||||||
private TeleportTrigger teleportTrigger = TeleportTrigger.DISABLED;
|
private TeleportTrigger teleportTrigger = TeleportTrigger.DISABLED;
|
||||||
private ItemStack autoCrafting = null;
|
|
||||||
private int autoSellTimer = -9999;
|
|
||||||
private boolean autoBreaking = false;
|
|
||||||
private int transferTick = 0;
|
private int transferTick = 0;
|
||||||
|
|
||||||
|
private Map<String, Object> moduleCache = new HashMap<>();
|
||||||
|
|
||||||
public Hopper(Location location) {
|
public Hopper(Location location) {
|
||||||
this.location = location;
|
this.location = location;
|
||||||
}
|
}
|
||||||
@ -234,27 +226,6 @@ public class Hopper {
|
|||||||
lastPlayerOpened = uuid;
|
lastPlayerOpened = uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemStack getAutoCrafting() {
|
|
||||||
return autoCrafting;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAutoCrafting(ItemStack autoCrafting) {
|
|
||||||
this.autoCrafting = autoCrafting;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAutoCrafting(Player player, ItemStack autoCrafting) {
|
|
||||||
this.autoCrafting = autoCrafting;
|
|
||||||
if (autoCrafting != null) {
|
|
||||||
int excess = autoCrafting.getAmount() - 1;
|
|
||||||
autoCrafting.setAmount(1);
|
|
||||||
if (excess > 0 && player != null) {
|
|
||||||
ItemStack item = autoCrafting.clone();
|
|
||||||
item.setAmount(excess);
|
|
||||||
player.getInventory().addItem(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public TeleportTrigger getTeleportTrigger() {
|
public TeleportTrigger getTeleportTrigger() {
|
||||||
return teleportTrigger;
|
return teleportTrigger;
|
||||||
}
|
}
|
||||||
@ -264,26 +235,6 @@ public class Hopper {
|
|||||||
this.teleportTrigger = teleportTrigger;
|
this.teleportTrigger = teleportTrigger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAutoSellTimer() {
|
|
||||||
return autoSellTimer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAutoSellTimer(int autoSellTimer) {
|
|
||||||
this.autoSellTimer = autoSellTimer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isAutoBreaking() {
|
|
||||||
return autoBreaking;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAutoBreaking(boolean autoBreaking) {
|
|
||||||
this.autoBreaking = autoBreaking;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void toggleAutoBreaking() {
|
|
||||||
this.autoBreaking = !autoBreaking;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Location> getLinkedBlocks() {
|
public List<Location> getLinkedBlocks() {
|
||||||
return new ArrayList<>(linkedBlocks);
|
return new ArrayList<>(linkedBlocks);
|
||||||
}
|
}
|
||||||
@ -307,4 +258,24 @@ public class Hopper {
|
|||||||
public void setFilter(Filter filter) {
|
public void setFilter(Filter filter) {
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Object getDataFromModuleCache(String key) {
|
||||||
|
return this.moduleCache.getOrDefault(key, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addDataToModuleCache(String key, Object data) {
|
||||||
|
this.moduleCache.put(key, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDataCachedInModuleCache(String key) {
|
||||||
|
return this.moduleCache.containsKey(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeDataFromModuleCache(String key) {
|
||||||
|
this.moduleCache.remove(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearModuleCache() {
|
||||||
|
this.moduleCache.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import com.songoda.epichoppers.utils.TeleportTrigger;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -61,21 +60,6 @@ public class HopperBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HopperBuilder setAutoCrafting(ItemStack autoCrafting) {
|
|
||||||
this.hopper.setAutoCrafting(autoCrafting);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public HopperBuilder setAutoSelling(boolean autoSelling) {
|
|
||||||
this.hopper.setAutoSellTimer(autoSelling ? 0 : -9999);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public HopperBuilder setAutoBreaking(boolean autoBreaking) {
|
|
||||||
this.hopper.setAutoBreaking(autoBreaking);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Hopper build() {
|
public Hopper build() {
|
||||||
return this.hopper;
|
return this.hopper;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package com.songoda.epichoppers.hopper;
|
package com.songoda.epichoppers.hopper;
|
||||||
|
|
||||||
|
import com.songoda.epichoppers.EpicHoppers;
|
||||||
|
import com.songoda.epichoppers.hopper.levels.Level;
|
||||||
|
import com.songoda.epichoppers.hopper.levels.modules.Module;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -33,6 +36,10 @@ public class HopperManager {
|
|||||||
for (Hopper hopper : this.registeredHoppers.values())
|
for (Hopper hopper : this.registeredHoppers.values())
|
||||||
hopper.removeLinkedBlock(location);
|
hopper.removeLinkedBlock(location);
|
||||||
|
|
||||||
|
for (Level level : EpicHoppers.getInstance().getLevelManager().getLevels().values())
|
||||||
|
for (Module module : level.getRegisteredModules())
|
||||||
|
module.clearData(removed);
|
||||||
|
|
||||||
return removed;
|
return removed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,10 +10,10 @@ public class Level {
|
|||||||
|
|
||||||
private final ArrayList<Module> registeredModules;
|
private final ArrayList<Module> registeredModules;
|
||||||
private final List<String> description = new ArrayList<>();
|
private final List<String> description = new ArrayList<>();
|
||||||
private int level, costExperience, costEconomy, range, amount, linkAmount, autoSell;
|
private int level, costExperience, costEconomy, range, amount, linkAmount;
|
||||||
private boolean filter, teleport;
|
private boolean filter, teleport;
|
||||||
|
|
||||||
Level(int level, int costExperience, int costEconomy, int range, int amount, boolean filter, boolean teleport, int linkAmount, int autoSell, ArrayList<Module> registeredModules) {
|
Level(int level, int costExperience, int costEconomy, int range, int amount, boolean filter, boolean teleport, int linkAmount, ArrayList<Module> registeredModules) {
|
||||||
this.level = level;
|
this.level = level;
|
||||||
this.costExperience = costExperience;
|
this.costExperience = costExperience;
|
||||||
this.costEconomy = costEconomy;
|
this.costEconomy = costEconomy;
|
||||||
@ -22,7 +22,6 @@ public class Level {
|
|||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.teleport = teleport;
|
this.teleport = teleport;
|
||||||
this.linkAmount = linkAmount;
|
this.linkAmount = linkAmount;
|
||||||
this.autoSell = autoSell;
|
|
||||||
this.registeredModules = registeredModules;
|
this.registeredModules = registeredModules;
|
||||||
|
|
||||||
buildDescription();
|
buildDescription();
|
||||||
@ -74,11 +73,6 @@ public class Level {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public int getAutoSell() {
|
|
||||||
return autoSell;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public int getLinkAmount() {
|
public int getLinkAmount() {
|
||||||
return linkAmount;
|
return linkAmount;
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,8 @@ public class LevelManager {
|
|||||||
private final NavigableMap<Integer, Level> registeredLevels = new TreeMap<>();
|
private final NavigableMap<Integer, Level> registeredLevels = new TreeMap<>();
|
||||||
|
|
||||||
|
|
||||||
public void addLevel(int level, int costExperience, int costEconomy, int range, int amount, boolean filter, boolean teleport, int linkAmount, int autoSell, ArrayList<Module> modules) {
|
public void addLevel(int level, int costExperience, int costEconomy, int range, int amount, boolean filter, boolean teleport, int linkAmount, ArrayList<Module> modules) {
|
||||||
registeredLevels.put(level, new Level(level, costExperience, costEconomy, range, amount, filter, teleport, linkAmount, autoSell, modules));
|
registeredLevels.put(level, new Level(level, costExperience, costEconomy, range, amount, filter, teleport, linkAmount, modules));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,25 +1,70 @@
|
|||||||
package com.songoda.epichoppers.hopper.levels.modules;
|
package com.songoda.epichoppers.hopper.levels.modules;
|
||||||
|
|
||||||
|
import com.songoda.epichoppers.EpicHoppers;
|
||||||
import com.songoda.epichoppers.hopper.Hopper;
|
import com.songoda.epichoppers.hopper.Hopper;
|
||||||
|
import com.songoda.epichoppers.utils.ConfigWrapper;
|
||||||
|
import com.songoda.epichoppers.utils.Methods;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface Module {
|
public abstract class Module {
|
||||||
|
|
||||||
String getName();
|
protected final EpicHoppers plugin;
|
||||||
|
private ConfigWrapper config;
|
||||||
|
|
||||||
void run(Hopper hopper, Inventory hopperInventory);
|
public Module(EpicHoppers plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
this.config = new ConfigWrapper(plugin, File.separator + "modules", getName() + ".yml");
|
||||||
|
}
|
||||||
|
|
||||||
ItemStack getGUIButton(Hopper hopper);
|
abstract String getName();
|
||||||
|
|
||||||
void runButtonPress(Player player, Hopper hopper);
|
public abstract void run(Hopper hopper, Inventory hopperInventory);
|
||||||
|
|
||||||
List<Material> getBlockedItems(Hopper hopper);
|
public abstract ItemStack getGUIButton(Hopper hopper);
|
||||||
|
|
||||||
String getDescription();
|
public abstract void runButtonPress(Player player, Hopper hopper);
|
||||||
|
|
||||||
|
public abstract List<Material> getBlockedItems(Hopper hopper);
|
||||||
|
|
||||||
|
public abstract String getDescription();
|
||||||
|
|
||||||
|
public void saveData(Hopper hopper, String setting, Object value) {
|
||||||
|
saveData(hopper, setting, value, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveData(Hopper hopper, String setting, Object value, Object toCache) {
|
||||||
|
config.getConfig().set("data." + Methods.serializeLocation(hopper.getLocation()) + "." + setting, value);
|
||||||
|
modifyDataCache(hopper, setting, toCache);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void modifyDataCache(Hopper hopper, String setting, Object value) {
|
||||||
|
hopper.addDataToModuleCache(setting, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Object getData(Hopper hopper, String setting) {
|
||||||
|
if (hopper.isDataCachedInModuleCache(setting))
|
||||||
|
return hopper.getDataFromModuleCache(setting);
|
||||||
|
|
||||||
|
Object data = config.getConfig().get("data." + Methods.serializeLocation(hopper.getLocation()) + "." + setting);
|
||||||
|
modifyDataCache(hopper, setting, data);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearData(Hopper hopper) {
|
||||||
|
config.getConfig().set("data." + Methods.serializeLocation(hopper.getLocation()), null);
|
||||||
|
hopper.clearModuleCache();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveDataToFile() {
|
||||||
|
config.saveConfig();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,11 +8,7 @@ import com.songoda.epichoppers.utils.ServerVersion;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.*;
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.inventory.Recipe;
|
|
||||||
import org.bukkit.inventory.ShapedRecipe;
|
|
||||||
import org.bukkit.inventory.ShapelessRecipe;
|
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -20,25 +16,29 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class ModuleAutoCrafting implements Module {
|
public class ModuleAutoCrafting extends Module {
|
||||||
|
|
||||||
private final Map<ItemStack, Recipes> cachedRecipes = new HashMap<>();
|
private final Map<ItemStack, Recipes> cachedRecipes = new HashMap<>();
|
||||||
|
|
||||||
|
public ModuleAutoCrafting(EpicHoppers plugin) {
|
||||||
|
super(plugin);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return "AutoCrafting";
|
return "AutoCrafting";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run(Hopper hopper, Inventory hopperInventory) {
|
public void run(Hopper hopper, Inventory hopperInventory) {
|
||||||
if (hopper.getAutoCrafting() == null
|
if (getAutoCrafting(hopper) == null
|
||||||
|| hopperInventory == null
|
|| hopperInventory == null
|
||||||
|| hopperInventory.getSize() == 0
|
|| hopperInventory.getSize() == 0
|
||||||
|| !canMove(hopperInventory, new ItemStack(hopper.getAutoCrafting()))
|
|| !canMove(hopperInventory, new ItemStack(getAutoCrafting(hopper)))
|
||||||
|| cachedRecipes.get(hopper.getAutoCrafting()) == null)
|
|| cachedRecipes.get(getAutoCrafting(hopper)) == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
top:
|
top:
|
||||||
for (Recipe recipe : cachedRecipes.get(hopper.getAutoCrafting()).getRecipes()) {
|
for (Recipe recipe : cachedRecipes.get(getAutoCrafting(hopper)).getRecipes()) {
|
||||||
if (!(recipe instanceof ShapedRecipe) && !(recipe instanceof ShapelessRecipe))
|
if (!(recipe instanceof ShapedRecipe) && !(recipe instanceof ShapelessRecipe))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -113,14 +113,15 @@ public class ModuleAutoCrafting implements Module {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void runButtonPress(Player player, Hopper hopper) {
|
public void runButtonPress(Player player, Hopper hopper) {
|
||||||
new GUICrafting(EpicHoppers.getInstance(), hopper, player);
|
new GUICrafting(EpicHoppers.getInstance(), this, hopper, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<Material> getBlockedItems(Hopper hopper) {
|
public List<Material> getBlockedItems(Hopper hopper) {
|
||||||
List<Material> materials = new ArrayList<>();
|
List<Material> materials = new ArrayList<>();
|
||||||
if (hopper.getAutoCrafting() != null) {
|
if (getAutoCrafting(hopper) != null) {
|
||||||
|
|
||||||
ItemStack itemStack = hopper.getAutoCrafting();
|
ItemStack itemStack = getAutoCrafting(hopper);
|
||||||
|
|
||||||
if (itemStack.getType() == Material.AIR)
|
if (itemStack.getType() == Material.AIR)
|
||||||
return materials;
|
return materials;
|
||||||
@ -157,7 +158,36 @@ public class ModuleAutoCrafting implements Module {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.crafting", EpicHoppers.getInstance().getLocale().getMessage("general.word.enabled"));
|
return EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.crafting",
|
||||||
|
EpicHoppers.getInstance().getLocale().getMessage("general.word.enabled"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getAutoCrafting(Hopper hopper) {
|
||||||
|
Object autocrafting = getData(hopper, "autocrafting");
|
||||||
|
return autocrafting instanceof ItemStack ? (ItemStack) autocrafting : decode((String) autocrafting);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAutoCrafting(Hopper hopper, Player player, ItemStack autoCrafting) {
|
||||||
|
saveData(hopper, "autocrafting", encode(autoCrafting), autoCrafting);
|
||||||
|
int excess = autoCrafting.getAmount() - 1;
|
||||||
|
autoCrafting.setAmount(1);
|
||||||
|
if (excess > 0 && player != null) {
|
||||||
|
ItemStack item = autoCrafting.clone();
|
||||||
|
item.setAmount(excess);
|
||||||
|
player.getInventory().addItem(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String encode(ItemStack item) {
|
||||||
|
return item.getType() == Material.AIR ? null : item.getType().name()
|
||||||
|
+ (item.getDurability() == 0 ? "" : ":" + item.getDurability());
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack decode(String string) {
|
||||||
|
String autoCraftingStr = string == null ? "AIR" : string;
|
||||||
|
String[] autoCraftingParts = autoCraftingStr.split(":");
|
||||||
|
return new ItemStack(Material.valueOf(autoCraftingParts[0]),
|
||||||
|
1, Short.parseShort(autoCraftingParts.length == 2 ? autoCraftingParts[1] : "0"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canMove(Inventory inventory, ItemStack item) {
|
private boolean canMove(Inventory inventory, ItemStack item) {
|
||||||
|
@ -17,29 +17,33 @@ import org.bukkit.inventory.meta.ItemMeta;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ModuleAutoSell implements Module {
|
public class ModuleAutoSell extends Module {
|
||||||
|
|
||||||
private int timeOut;
|
private int timeOut;
|
||||||
private int hopperTickRate;
|
private int hopperTickRate;
|
||||||
|
|
||||||
public ModuleAutoSell(int timeOut) {
|
public ModuleAutoSell(EpicHoppers plugin, int timeOut) {
|
||||||
|
super(plugin);
|
||||||
EpicHoppers instance = EpicHoppers.getInstance();
|
EpicHoppers instance = EpicHoppers.getInstance();
|
||||||
this.timeOut = timeOut * 20;
|
this.timeOut = timeOut * 20;
|
||||||
this.hopperTickRate = (int) instance.getConfig().getLong("Main.Amount of Ticks Between Hops");
|
this.hopperTickRate = (int) instance.getConfig().getLong("Main.Amount of Ticks Between Hops");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return "AutoSell";
|
return "AutoSell";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public void run(Hopper hopper, Inventory hopperInventory) {
|
public void run(Hopper hopper, Inventory hopperInventory) {
|
||||||
if (hopperInventory == null) return;
|
if (hopperInventory == null) return;
|
||||||
|
|
||||||
if (hopper.getAutoSellTimer() == -9999) return;
|
int currentTime = getTime(hopper);
|
||||||
|
|
||||||
if (hopper.getAutoSellTimer() <= 0) {
|
if (currentTime == -9999) return;
|
||||||
|
|
||||||
|
if (currentTime <= 0) {
|
||||||
EpicHoppers instance = EpicHoppers.getInstance();
|
EpicHoppers instance = EpicHoppers.getInstance();
|
||||||
|
|
||||||
if (instance.getEconomy() == null) return;
|
if (instance.getEconomy() == null) return;
|
||||||
@ -59,7 +63,7 @@ public class ModuleAutoSell implements Module {
|
|||||||
ItemStack clone = itemStack.clone();
|
ItemStack clone = itemStack.clone();
|
||||||
clone.setAmount(1);
|
clone.setAmount(1);
|
||||||
value = net.brcdev.shopgui.ShopGuiPlusApi.getItemStackPriceSell(player.getPlayer(), clone);
|
value = net.brcdev.shopgui.ShopGuiPlusApi.getItemStackPriceSell(player.getPlayer(), clone);
|
||||||
} catch (Exception e){
|
} catch (Exception e) {
|
||||||
value = 0;
|
value = 0;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
@ -73,22 +77,22 @@ public class ModuleAutoSell implements Module {
|
|||||||
|
|
||||||
updateComparators = true;
|
updateComparators = true;
|
||||||
}
|
}
|
||||||
hopper.setAutoSellTimer(timeOut);
|
modifyDataCache(hopper, "time", timeOut);
|
||||||
|
|
||||||
if (updateComparators)
|
if (updateComparators)
|
||||||
HopTask.updateAdjacentComparators(hopper.getLocation());
|
HopTask.updateAdjacentComparators(hopper.getLocation());
|
||||||
}
|
}
|
||||||
hopper.setAutoSellTimer(hopper.getAutoSellTimer() - hopperTickRate);
|
modifyDataCache(hopper, "time", getTime(hopper) - hopperTickRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public ItemStack getGUIButton(Hopper hopper) {
|
public ItemStack getGUIButton(Hopper hopper) {
|
||||||
Hopper eHopper = hopper;
|
Hopper eHopper = hopper;
|
||||||
ItemStack sell = new ItemStack(EpicHoppers.getInstance().isServerVersionAtLeast(ServerVersion.V1_13) ? Material.SUNFLOWER : Material.valueOf("DOUBLE_PLANT"), 1);
|
ItemStack sell = new ItemStack(EpicHoppers.getInstance().isServerVersionAtLeast(ServerVersion.V1_13) ? Material.SUNFLOWER : Material.valueOf("DOUBLE_PLANT"), 1);
|
||||||
ItemMeta sellmeta = sell.getItemMeta();
|
ItemMeta sellmeta = sell.getItemMeta();
|
||||||
sellmeta.setDisplayName(EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.selltitle"));
|
sellmeta.setDisplayName(EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.selltitle"));
|
||||||
ArrayList<String> loresell = new ArrayList<>();
|
ArrayList<String> loresell = new ArrayList<>();
|
||||||
String[] parts = EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.selllore", eHopper.getAutoSellTimer() == -9999 ? "\u221E" : (int) Math.floor(eHopper.getAutoSellTimer() / 20)).split("\\|");
|
String[] parts = EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.selllore", getTime(hopper) == -9999 ? "\u221E" : (int) Math.floor(getTime(hopper) / 20)).split("\\|");
|
||||||
for (String line : parts) {
|
for (String line : parts) {
|
||||||
loresell.add(Methods.formatText(line));
|
loresell.add(Methods.formatText(line));
|
||||||
}
|
}
|
||||||
@ -97,23 +101,28 @@ public class ModuleAutoSell implements Module {
|
|||||||
return sell;
|
return sell;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void runButtonPress(Player player, Hopper hopper) {
|
public void runButtonPress(Player player, Hopper hopper) {
|
||||||
Hopper eHopper = hopper;
|
if (getTime(hopper) == -9999) {
|
||||||
if (eHopper.getAutoSellTimer() == -9999) {
|
saveData(hopper, "time", 0);
|
||||||
eHopper.setAutoSellTimer(0);
|
|
||||||
} else {
|
} else {
|
||||||
eHopper.setAutoSellTimer(-9999);
|
saveData(hopper, "time", -9999);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<Material> getBlockedItems(Hopper hopper) {
|
public List<Material> getBlockedItems(Hopper hopper) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.autosell", (int) Math.floor(timeOut / 20));
|
return EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.autosell", (int) Math.floor(timeOut / 20));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getTime(Hopper hopper) {
|
||||||
|
Object time = getData(hopper, "time");
|
||||||
|
if (time == null) return -9999;
|
||||||
|
return (int) time;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,25 +20,26 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class ModuleBlockBreak implements Module {
|
public class ModuleBlockBreak extends Module {
|
||||||
|
|
||||||
private final int amount;
|
private final int amount;
|
||||||
private Map<Block, Integer> blockTick = new HashMap<>();
|
private Map<Block, Integer> blockTick = new HashMap<>();
|
||||||
|
|
||||||
public ModuleBlockBreak(int amount) {
|
public ModuleBlockBreak(EpicHoppers plugin, int amount) {
|
||||||
|
super(plugin);
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return "BlockBreak";
|
return "BlockBreak";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void run(Hopper hopper, Inventory hopperInventory) {
|
public void run(Hopper hopper, Inventory hopperInventory) {
|
||||||
Block block = hopper.getLocation().getBlock();
|
Block block = hopper.getLocation().getBlock();
|
||||||
|
|
||||||
if (!hopper.isAutoBreaking())
|
if (!isEnabled(hopper))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!blockTick.containsKey(block)) {
|
if (!blockTick.containsKey(block)) {
|
||||||
@ -59,11 +60,11 @@ public class ModuleBlockBreak implements Module {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Don't break farm items from EpicFarming
|
// Don't break farm items from EpicFarming
|
||||||
if (EpicHoppers.getInstance().isEpicFarming() && com.songoda.epicfarming.EpicFarmingPlugin.getInstance().getFarmManager().getFarm(above) != null)
|
if (plugin.isEpicFarming() && com.songoda.epicfarming.EpicFarmingPlugin.getInstance().getFarmManager().getFarm(above) != null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!EpicHoppers.getInstance().getConfig().getStringList("Main.BlockBreak Blacklisted Blocks").contains(above.getType().name())) {
|
if (!plugin.getConfig().getStringList("Main.BlockBreak Blacklisted Blocks").contains(above.getType().name())) {
|
||||||
if (EpicHoppers.getInstance().isServerVersionAtLeast(ServerVersion.V1_9))
|
if (plugin.isServerVersionAtLeast(ServerVersion.V1_9))
|
||||||
above.getWorld().playSound(above.getLocation(), Sound.BLOCK_STONE_BREAK, 1F, 1F);
|
above.getWorld().playSound(above.getLocation(), Sound.BLOCK_STONE_BREAK, 1F, 1F);
|
||||||
Location locationAbove = above.getLocation();
|
Location locationAbove = above.getLocation();
|
||||||
locationAbove.add(.5, .5, .5);
|
locationAbove.add(.5, .5, .5);
|
||||||
@ -71,11 +72,11 @@ public class ModuleBlockBreak implements 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));
|
||||||
if (EpicHoppers.getInstance().isServerVersionAtLeast(ServerVersion.V1_9))
|
if (plugin.isServerVersionAtLeast(ServerVersion.V1_9))
|
||||||
above.getWorld().spawnParticle(Particle.valueOf(EpicHoppers.getInstance().getConfig().getString("Main.BlockBreak Particle Type")), locationAbove, 15, xx, yy, zz);
|
above.getWorld().spawnParticle(Particle.valueOf(plugin.getConfig().getString("Main.BlockBreak Particle Type")), locationAbove, 15, xx, yy, zz);
|
||||||
|
|
||||||
boolean waterlogged = false;
|
boolean waterlogged = false;
|
||||||
if (EpicHoppers.getInstance().isServerVersionAtLeast(ServerVersion.V1_13)
|
if (plugin.isServerVersionAtLeast(ServerVersion.V1_13)
|
||||||
&& above.getBlockData() instanceof org.bukkit.block.data.Waterlogged
|
&& above.getBlockData() instanceof org.bukkit.block.data.Waterlogged
|
||||||
&& ((org.bukkit.block.data.Waterlogged)above.getBlockData()).isWaterlogged()) {
|
&& ((org.bukkit.block.data.Waterlogged)above.getBlockData()).isWaterlogged()) {
|
||||||
waterlogged = true;
|
waterlogged = true;
|
||||||
@ -89,15 +90,15 @@ public class ModuleBlockBreak implements Module {
|
|||||||
blockTick.remove(block);
|
blockTick.remove(block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public ItemStack getGUIButton(Hopper hopper) {
|
public ItemStack getGUIButton(Hopper hopper) {
|
||||||
ItemStack block = new ItemStack(Material.IRON_ORE, 1);
|
ItemStack block = new ItemStack(Material.IRON_ORE, 1);
|
||||||
ItemMeta blockmeta = block.getItemMeta();
|
ItemMeta blockmeta = block.getItemMeta();
|
||||||
blockmeta.setDisplayName(EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.blocktitle"));
|
blockmeta.setDisplayName(plugin.getLocale().getMessage("interface.hopper.blocktitle"));
|
||||||
ArrayList<String> loreblock = new ArrayList<>();
|
ArrayList<String> loreblock = new ArrayList<>();
|
||||||
String[] parts = EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.blocklore",
|
String[] parts = plugin.getLocale().getMessage("interface.hopper.blocklore",
|
||||||
hopper.isAutoBreaking() ? EpicHoppers.getInstance().getLocale().getMessage("general.word.enabled")
|
isEnabled(hopper) ? plugin.getLocale().getMessage("general.word.enabled")
|
||||||
: EpicHoppers.getInstance().getLocale().getMessage("general.word.disabled")).split("\\|");
|
: plugin.getLocale().getMessage("general.word.disabled")).split("\\|");
|
||||||
for (String line : parts) {
|
for (String line : parts) {
|
||||||
loreblock.add(Methods.formatText(line));
|
loreblock.add(Methods.formatText(line));
|
||||||
}
|
}
|
||||||
@ -106,18 +107,23 @@ public class ModuleBlockBreak implements Module {
|
|||||||
return block;
|
return block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void runButtonPress(Player player, Hopper hopper) {
|
public void runButtonPress(Player player, Hopper hopper) {
|
||||||
hopper.toggleAutoBreaking();
|
saveData(hopper,"blockbreak", !isEnabled(hopper));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<Material> getBlockedItems(Hopper hopper) {
|
public List<Material> getBlockedItems(Hopper hopper) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.blockbreak", amount);
|
return plugin.getLocale().getMessage("interface.hopper.blockbreak", amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled(Hopper hopper) {
|
||||||
|
Object isBlockBreaking = getData(hopper, "blockbreak");
|
||||||
|
return isBlockBreaking != null && (boolean) isBlockBreaking;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ import java.util.Set;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class ModuleSuction implements Module {
|
public class ModuleSuction extends Module {
|
||||||
|
|
||||||
private final int amount;
|
private final int amount;
|
||||||
|
|
||||||
@ -30,16 +30,17 @@ public class ModuleSuction implements Module {
|
|||||||
private boolean wildStacker = Bukkit.getPluginManager().isPluginEnabled("WildStacker");
|
private boolean wildStacker = Bukkit.getPluginManager().isPluginEnabled("WildStacker");
|
||||||
private boolean ultimateStacker = Bukkit.getPluginManager().isPluginEnabled("UltimateStacker");
|
private boolean ultimateStacker = Bukkit.getPluginManager().isPluginEnabled("UltimateStacker");
|
||||||
|
|
||||||
public ModuleSuction(int amount) {
|
public ModuleSuction(EpicHoppers plugin, int amount) {
|
||||||
|
super(plugin);
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return "Suction";
|
return "Suction";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void run(Hopper hopper, Inventory hopperInventory) {
|
public void run(Hopper hopper, Inventory hopperInventory) {
|
||||||
double radius = amount + .5;
|
double radius = amount + .5;
|
||||||
|
|
||||||
@ -96,19 +97,20 @@ public class ModuleSuction implements Module {
|
|||||||
return blacklist.contains(uuid);
|
return blacklist.contains(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public ItemStack getGUIButton(Hopper hopper) {
|
public ItemStack getGUIButton(Hopper hopper) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void runButtonPress(Player player, Hopper hopper) {
|
@Override
|
||||||
|
public void runButtonPress(Player player, Hopper hopper) { }
|
||||||
}
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<Material> getBlockedItems(Hopper hopper) {
|
public List<Material> getBlockedItems(Hopper hopper) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.suction", amount);
|
return EpicHoppers.getInstance().getLocale().getMessage("interface.hopper.suction", amount);
|
||||||
}
|
}
|
||||||
|
@ -46,11 +46,9 @@ public abstract class Storage {
|
|||||||
new StorageItem("player", hopper.getLastPlayerOpened() == null ? null : hopper.getLastPlayerOpened().toString()),
|
new StorageItem("player", hopper.getLastPlayerOpened() == null ? null : hopper.getLastPlayerOpened().toString()),
|
||||||
new StorageItem("teleporttrigger", hopper.getTeleportTrigger().toString()),
|
new StorageItem("teleporttrigger", hopper.getTeleportTrigger().toString()),
|
||||||
|
|
||||||
new StorageItem("autocrafting", hopper.getAutoCrafting() == null || hopper.getAutoCrafting().getType() == Material.AIR ? null : hopper.getAutoCrafting().getType().name() + (hopper.getAutoCrafting().getDurability() == 0 ? "" : ":" + hopper.getAutoCrafting().getDurability())), new StorageItem("whitelist", hopper.getFilter().getWhiteList()),
|
new StorageItem("whitelist", hopper.getFilter().getWhiteList()),
|
||||||
new StorageItem("blacklist", hopper.getFilter().getBlackList()),
|
new StorageItem("blacklist", hopper.getFilter().getBlackList()),
|
||||||
new StorageItem("void", hopper.getFilter().getVoidList()),
|
new StorageItem("void", hopper.getFilter().getVoidList()),
|
||||||
new StorageItem("autobreak", hopper.isAutoBreaking()),
|
|
||||||
new StorageItem("autosell", hopper.getAutoSellTimer() != -9999),
|
|
||||||
new StorageItem("black", hopper.getFilter().getEndPoint() == null ? null : Methods.serializeLocation(hopper.getFilter().getEndPoint())));
|
new StorageItem("black", hopper.getFilter().getEndPoint() == null ? null : Methods.serializeLocation(hopper.getFilter().getEndPoint())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,13 +30,10 @@ public class MySQLDatabase {
|
|||||||
"\t`placedby` TEXT NULL,\n" +
|
"\t`placedby` TEXT NULL,\n" +
|
||||||
"\t`player` TEXT NULL,\n" +
|
"\t`player` TEXT NULL,\n" +
|
||||||
"\t`teleporttrigger` TEXT NULL,\n" +
|
"\t`teleporttrigger` TEXT NULL,\n" +
|
||||||
"\t`autocrafting` TEXT NULL,\n" +
|
|
||||||
"\t`autosell` TEXT NULL,\n" +
|
|
||||||
"\t`whitelist` TEXT NULL,\n" +
|
"\t`whitelist` TEXT NULL,\n" +
|
||||||
"\t`blacklist` TEXT NULL,\n" +
|
"\t`blacklist` TEXT NULL,\n" +
|
||||||
"\t`void` TEXT NULL,\n" +
|
"\t`void` TEXT NULL,\n" +
|
||||||
"\t`black` TEXT NULL,\n" +
|
"\t`black` TEXT NULL,\n" +
|
||||||
"\t`autobreak` TINYINT(1) NULL\n" +
|
|
||||||
")");
|
")");
|
||||||
|
|
||||||
connection.createStatement().execute("CREATE TABLE IF NOT EXISTS `" + instance.getConfig().getString("Database.Prefix") + "boosts` (\n" +
|
connection.createStatement().execute("CREATE TABLE IF NOT EXISTS `" + instance.getConfig().getString("Database.Prefix") + "boosts` (\n" +
|
||||||
|
Loading…
Reference in New Issue
Block a user