mirror of
https://github.com/songoda/EpicHoppers.git
synced 2025-02-16 20:01:42 +01:00
1.13
This commit is contained in:
parent
fa9d46bede
commit
50cf216632
@ -26,13 +26,6 @@ import java.util.*;
|
|||||||
public final class EpicHoppers extends JavaPlugin implements Listener {
|
public final class EpicHoppers extends JavaPlugin implements Listener {
|
||||||
public static CommandSender console = Bukkit.getConsoleSender();
|
public static CommandSender console = Bukkit.getConsoleSender();
|
||||||
|
|
||||||
public boolean v1_12 = Bukkit.getServer().getClass().getPackage().getName().contains("1_12");
|
|
||||||
public boolean v1_11 = Bukkit.getServer().getClass().getPackage().getName().contains("1_11");
|
|
||||||
public boolean v1_10 = Bukkit.getServer().getClass().getPackage().getName().contains("1_10");
|
|
||||||
public boolean v1_9 = Bukkit.getServer().getClass().getPackage().getName().contains("1_9");
|
|
||||||
public boolean v1_7 = Bukkit.getServer().getClass().getPackage().getName().contains("1_7");
|
|
||||||
public boolean v1_8 = Bukkit.getServer().getClass().getPackage().getName().contains("1_8");
|
|
||||||
|
|
||||||
public Map<UUID, Hopper> inShow = new HashMap<>();
|
public Map<UUID, Hopper> inShow = new HashMap<>();
|
||||||
public Map<UUID, Hopper> inFilter = new HashMap<>();
|
public Map<UUID, Hopper> inFilter = new HashMap<>();
|
||||||
|
|
||||||
@ -230,7 +223,6 @@ public final class EpicHoppers extends JavaPlugin implements Listener {
|
|||||||
getConfig().addDefault("settings.levels.Level-4.Amount", 4);
|
getConfig().addDefault("settings.levels.Level-4.Amount", 4);
|
||||||
getConfig().addDefault("settings.levels.Level-4.Suction", 2);
|
getConfig().addDefault("settings.levels.Level-4.Suction", 2);
|
||||||
|
|
||||||
if (!v1_7 && !v1_8)
|
|
||||||
getConfig().addDefault("settings.levels.Level-4.BlockBreak", 4);
|
getConfig().addDefault("settings.levels.Level-4.BlockBreak", 4);
|
||||||
getConfig().addDefault("settings.levels.Level-4.Cost-xp", 35);
|
getConfig().addDefault("settings.levels.Level-4.Cost-xp", 35);
|
||||||
getConfig().addDefault("settings.levels.Level-4.Cost-eco", 12000);
|
getConfig().addDefault("settings.levels.Level-4.Cost-eco", 12000);
|
||||||
@ -239,7 +231,6 @@ public final class EpicHoppers extends JavaPlugin implements Listener {
|
|||||||
getConfig().addDefault("settings.levels.Level-5.Amount", 5);
|
getConfig().addDefault("settings.levels.Level-5.Amount", 5);
|
||||||
getConfig().addDefault("settings.levels.Level-5.Suction", 3);
|
getConfig().addDefault("settings.levels.Level-5.Suction", 3);
|
||||||
|
|
||||||
if (!v1_7 && !v1_8)
|
|
||||||
getConfig().addDefault("settings.levels.Level-5.BlockBreak", 2);
|
getConfig().addDefault("settings.levels.Level-5.BlockBreak", 2);
|
||||||
getConfig().addDefault("settings.levels.Level-5.Cost-xp", 40);
|
getConfig().addDefault("settings.levels.Level-5.Cost-xp", 40);
|
||||||
getConfig().addDefault("settings.levels.Level-5.Cost-eco", 15000);
|
getConfig().addDefault("settings.levels.Level-5.Cost-eco", 15000);
|
||||||
|
@ -59,11 +59,8 @@ public class BlockListeners implements Listener {
|
|||||||
|
|
||||||
ItemStack item = e.getItemInHand().clone();
|
ItemStack item = e.getItemInHand().clone();
|
||||||
|
|
||||||
//not sure what this shit does
|
|
||||||
byte b = e.getBlock().getData();
|
|
||||||
e.getBlock().setType(Material.AIR);
|
e.getBlock().setType(Material.AIR);
|
||||||
e.getBlock().getLocation().getBlock().setType(Material.HOPPER);
|
e.getBlock().getLocation().getBlock().setType(Material.HOPPER);
|
||||||
e.getBlock().getLocation().getBlock().setData(b);
|
|
||||||
|
|
||||||
instance.getHopperManager().addHopper(e.getBlock().getLocation(), new Hopper(e.getBlock(), instance.getLevelManager().getLevel(instance.getApi().getILevel(item)), e.getPlayer().getUniqueId(), null, new Filter(), false));
|
instance.getHopperManager().addHopper(e.getBlock().getLocation(), new Hopper(e.getBlock(), instance.getLevelManager().getLevel(instance.getApi().getILevel(item)), e.getPlayer().getUniqueId(), null, new Filter(), false));
|
||||||
|
|
||||||
@ -153,7 +150,7 @@ public class BlockListeners implements Listener {
|
|||||||
|
|
||||||
if (location.getBlock().getType() != Material.CHEST) return;
|
if (location.getBlock().getType() != Material.CHEST) return;
|
||||||
|
|
||||||
if (e.getBlock().getType() == Material.MOB_SPAWNER || e.getBlock().getType() == Material.HOPPER || e.getBlock().getType() == Material.DISPENSER) return;
|
if (e.getBlock().getType() == Material.SPAWNER || e.getBlock().getType() == Material.HOPPER || e.getBlock().getType() == Material.DISPENSER) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (e.getBlock().getType().name().contains("SHULKER") && e.getBlock().getType() != Material.SHULKER_SHELL) return;
|
if (e.getBlock().getType().name().contains("SHULKER") && e.getBlock().getType() != Material.SHULKER_SHELL) return;
|
||||||
@ -168,18 +165,7 @@ public class BlockListeners implements Listener {
|
|||||||
for (ItemStack is : e.getBlock().getDrops())
|
for (ItemStack is : e.getBlock().getDrops())
|
||||||
ih.getInventory().addItem(is);
|
ih.getInventory().addItem(is);
|
||||||
}
|
}
|
||||||
if (instance.v1_12) {
|
|
||||||
e.setDropItems(false);
|
e.setDropItems(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
e.isCancelled();
|
|
||||||
e.getPlayer().getItemInHand().setDurability((short) (e.getPlayer().getItemInHand().getDurability() + 1));
|
|
||||||
if (e.getPlayer().getItemInHand().getDurability() >= e.getPlayer().getItemInHand().getType().getMaxDurability()) {
|
|
||||||
e.getPlayer().getItemInHand().setType(null);
|
|
||||||
}
|
|
||||||
if (e.getExpToDrop() > 0)
|
|
||||||
e.getPlayer().getWorld().spawn(e.getBlock().getLocation(), ExperienceOrb.class).setExperience(e.getExpToDrop());
|
|
||||||
e.getBlock().setType(Material.AIR);
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -40,8 +40,6 @@ public class HopperListeners implements Listener {
|
|||||||
try {
|
try {
|
||||||
Inventory source = e.getSource();
|
Inventory source = e.getSource();
|
||||||
|
|
||||||
if (instance.v1_7 || instance.v1_8) return;
|
|
||||||
|
|
||||||
|
|
||||||
if (!instance.getHopperManager().isHopper(e.getSource().getLocation())) return;
|
if (!instance.getHopperManager().isHopper(e.getSource().getLocation())) return;
|
||||||
|
|
||||||
@ -50,27 +48,6 @@ public class HopperListeners implements Listener {
|
|||||||
if (source.getHolder() instanceof Hopper && hopper.getSyncedBlock() != null) {
|
if (source.getHolder() instanceof Hopper && hopper.getSyncedBlock() != null) {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
//if amt is not 1
|
|
||||||
int amt = hopper.getLevel().getAmount();
|
|
||||||
|
|
||||||
if (amt <= 1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
e.setCancelled(true);
|
|
||||||
|
|
||||||
// Set amount of items per hopper transfer
|
|
||||||
ItemStack item = e.getItem();
|
|
||||||
int transferAmount = Math.min(amt, getItemCount(source, item));
|
|
||||||
item.setAmount(transferAmount);
|
|
||||||
|
|
||||||
e.getDestination().addItem(item); //hacky as shit
|
|
||||||
|
|
||||||
source.removeItem(item);
|
|
||||||
//Please work.
|
|
||||||
*/
|
|
||||||
} catch (Exception ee) {
|
} catch (Exception ee) {
|
||||||
Debugger.runReport(ee);
|
Debugger.runReport(ee);
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ public class InteractListeners implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (e.getClickedBlock().getType() == Material.CHEST && Methods.isSync(player)) {
|
if (e.getClickedBlock().getType() == Material.CHEST && Methods.isSync(player)) {
|
||||||
ItemStack item = e.getPlayer().getItemInHand();
|
ItemStack item = e.getPlayer().getInventory().getItemInMainHand();
|
||||||
if (item.getItemMeta().getLore().size() == 2) {
|
if (item.getItemMeta().getLore().size() == 2) {
|
||||||
player.sendMessage(instance.getLocale().getMessage("event.hopper.desyncchest", item.getType().toString()));
|
player.sendMessage(instance.getLocale().getMessage("event.hopper.desyncchest", item.getType().toString()));
|
||||||
instance.enchant.createSyncTouch(item, null);
|
instance.enchant.createSyncTouch(item, null);
|
||||||
@ -56,8 +56,7 @@ public class InteractListeners implements Listener {
|
|||||||
instance.lastBlock.put(player, e.getClickedBlock());
|
instance.lastBlock.put(player, e.getClickedBlock());
|
||||||
Hopper hopper = instance.getHopperManager().getHopper(e.getClickedBlock());
|
Hopper hopper = instance.getHopperManager().getHopper(e.getClickedBlock());
|
||||||
if (instance.getConfig().getBoolean("Main.Allow Hopper Upgrading")) {
|
if (instance.getConfig().getBoolean("Main.Allow Hopper Upgrading")) {
|
||||||
if (player.getItemInHand().getType() != Material.WOOD_PICKAXE && player.getItemInHand().getType() != Material.STONE_PICKAXE &&
|
if (!player.getInventory().getItemInMainHand().getType().name().contains("PICKAXE")) {
|
||||||
player.getItemInHand().getType() != Material.IRON_PICKAXE && player.getItemInHand().getType() != Material.DIAMOND_PICKAXE) {
|
|
||||||
hopper.overview(player);
|
hopper.overview(player);
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
@ -117,9 +117,7 @@ public class HopHandler {
|
|||||||
int suck = hopper.getLevel().getSuction();
|
int suck = hopper.getLevel().getSuction();
|
||||||
double radius = suck + .5;
|
double radius = suck + .5;
|
||||||
|
|
||||||
Collection<Entity> nearbyEntite = instance.v1_7
|
Collection<Entity> nearbyEntite = block.getLocation().getWorld().getNearbyEntities(block.getLocation().add(0.5, 0.5, 0.5), radius, radius, radius);
|
||||||
? Methods.getNearbyEntities(block.getLocation().add(0.5, 0.5, 0.5), radius, radius, radius)
|
|
||||||
: block.getLocation().getWorld().getNearbyEntities(block.getLocation().add(0.5, 0.5, 0.5), radius, radius, radius);
|
|
||||||
|
|
||||||
for (Entity e : nearbyEntite) {
|
for (Entity e : nearbyEntite) {
|
||||||
if (!(e instanceof Item) || e.getTicksLived() < 10 || e.getLocation().getBlock().getType() == Material.HOPPER) {
|
if (!(e instanceof Item) || e.getTicksLived() < 10 || e.getLocation().getBlock().getType() == Material.HOPPER) {
|
||||||
@ -280,7 +278,7 @@ public class HopHandler {
|
|||||||
if (!canHop(ih.getInventory(), newItem, amt) || b2.getType() == Material.BREWING_STAND) {
|
if (!canHop(ih.getInventory(), newItem, amt) || b2.getType() == Material.BREWING_STAND) {
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
if (b2.getType() == Material.FURNACE || b2.getType() == Material.BURNING_FURNACE) {
|
if (b2.getType() == Material.FURNACE) {
|
||||||
FurnaceInventory fi = (FurnaceInventory) ih.getInventory();
|
FurnaceInventory fi = (FurnaceInventory) ih.getInventory();
|
||||||
int amtt = 0;
|
int amtt = 0;
|
||||||
boolean dont = false;
|
boolean dont = false;
|
||||||
|
@ -65,7 +65,7 @@ public class Hopper {
|
|||||||
perlmeta.setLore(loreperl);
|
perlmeta.setLore(loreperl);
|
||||||
perl.setItemMeta(perlmeta);
|
perl.setItemMeta(perlmeta);
|
||||||
|
|
||||||
ItemStack filter = new ItemStack(Material.REDSTONE_COMPARATOR, 1);
|
ItemStack filter = new ItemStack(Material.COMPARATOR, 1);
|
||||||
ItemMeta filtermeta = filter.getItemMeta();
|
ItemMeta filtermeta = filter.getItemMeta();
|
||||||
filtermeta.setDisplayName(instance.getLocale().getMessage("interface.hopper.filtertitle"));
|
filtermeta.setDisplayName(instance.getLocale().getMessage("interface.hopper.filtertitle"));
|
||||||
ArrayList<String> lorefilter = new ArrayList<>();
|
ArrayList<String> lorefilter = new ArrayList<>();
|
||||||
@ -217,7 +217,7 @@ public class Hopper {
|
|||||||
i.setItem(39, Methods.getGlass());
|
i.setItem(39, Methods.getGlass());
|
||||||
i.setItem(41, Methods.getGlass());
|
i.setItem(41, Methods.getGlass());
|
||||||
|
|
||||||
ItemStack it = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 0);
|
ItemStack it = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
|
||||||
ItemMeta itm = it.getItemMeta();
|
ItemMeta itm = it.getItemMeta();
|
||||||
itm.setDisplayName(instance.getLocale().getMessage("interface.filter.whitelist"));
|
itm.setDisplayName(instance.getLocale().getMessage("interface.filter.whitelist"));
|
||||||
it.setItemMeta(itm);
|
it.setItemMeta(itm);
|
||||||
@ -234,7 +234,7 @@ public class Hopper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
it = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
|
it = new ItemStack(Material.BLACK_STAINED_GLASS_PANE, 1);
|
||||||
itm = it.getItemMeta();
|
itm = it.getItemMeta();
|
||||||
itm.setDisplayName(instance.getLocale().getMessage("interface.filter.blacklist"));
|
itm.setDisplayName(instance.getLocale().getMessage("interface.filter.blacklist"));
|
||||||
it.setItemMeta(itm);
|
it.setItemMeta(itm);
|
||||||
@ -318,13 +318,13 @@ public class Hopper {
|
|||||||
for (ItemStack item : items2) {
|
for (ItemStack item : items2) {
|
||||||
for (int aa : awhite) {
|
for (int aa : awhite) {
|
||||||
if (aa == num) {
|
if (aa == num) {
|
||||||
if (items2[num] != null && !items2[num].getType().equals(Material.STAINED_GLASS_PANE))
|
if (items2[num] != null && !items2[num].getType().name().contains("STAINED_GLASS"))
|
||||||
owhite.add(items2[num]);
|
owhite.add(items2[num]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int aa : ablack) {
|
for (int aa : ablack) {
|
||||||
if (aa == num) {
|
if (aa == num) {
|
||||||
if (items2[num] != null && !items2[num].getType().equals(Material.STAINED_GLASS_PANE))
|
if (items2[num] != null && !items2[num].getType().name().contains("STAINED_GLASS"))
|
||||||
oblack.add(items2[num]);
|
oblack.add(items2[num]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -396,30 +396,17 @@ public class Hopper {
|
|||||||
player.sendMessage(instance.getLocale().getMessage("event.upgrade.maxed", level.getLevel()));
|
player.sendMessage(instance.getLocale().getMessage("event.upgrade.maxed", level.getLevel()));
|
||||||
}
|
}
|
||||||
Location loc = location.clone().add(.5, .5, .5);
|
Location loc = location.clone().add(.5, .5, .5);
|
||||||
if (!instance.v1_8 && !instance.v1_7) {
|
|
||||||
player.getWorld().spawnParticle(org.bukkit.Particle.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), loc, 200, .5, .5, .5);
|
player.getWorld().spawnParticle(org.bukkit.Particle.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), loc, 200, .5, .5, .5);
|
||||||
} else {
|
|
||||||
player.getWorld().playEffect(loc, org.bukkit.Effect.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), 1, 0);
|
|
||||||
//Doesn't resolve --Nova
|
|
||||||
//player.getWorld().spigot().playEffect(loc, org.bukkit.Effect.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), 1, 0, (float) 1, (float) 1, (float) 1, 1, 200, 10);
|
|
||||||
}
|
|
||||||
if (instance.getConfig().getBoolean("Main.Sounds Enabled")) {
|
if (instance.getConfig().getBoolean("Main.Sounds Enabled")) {
|
||||||
if (instance.getLevelManager().getHighestLevel() != level) {
|
if (instance.getLevelManager().getHighestLevel() != level) {
|
||||||
if (!instance.v1_8 && !instance.v1_7) {
|
|
||||||
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 0.6F, 15.0F);
|
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 0.6F, 15.0F);
|
||||||
} else {
|
} else {
|
||||||
player.playSound(player.getLocation(), Sound.valueOf("LEVEL_UP"), 2F, 15.0F);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!instance.v1_11 && !instance.v1_10 && !instance.v1_9 && !instance.v1_8 && !instance.v1_7) {
|
|
||||||
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 2F, 25.0F);
|
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 2F, 25.0F);
|
||||||
|
|
||||||
player.playSound(player.getLocation(), Sound.BLOCK_NOTE_CHIME, 2F, 25.0F);
|
player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_CHIME, 2F, 25.0F);
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, () -> player.playSound(player.getLocation(), Sound.BLOCK_NOTE_CHIME, 1.2F, 35.0F), 5L);
|
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, () -> player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_CHIME, 1.2F, 35.0F), 5L);
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, () -> player.playSound(player.getLocation(), Sound.BLOCK_NOTE_CHIME, 1.8F, 35.0F), 10L);
|
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, () -> player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_CHIME, 1.8F, 35.0F), 10L);
|
||||||
} else {
|
|
||||||
player.playSound(player.getLocation(), org.bukkit.Sound.valueOf("LEVEL_UP"), 2F, 25.0F);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
|
@ -3,12 +3,10 @@ package com.songoda.epichoppers.Utils;
|
|||||||
import com.songoda.arconix.plugin.Arconix;
|
import com.songoda.arconix.plugin.Arconix;
|
||||||
import com.songoda.epichoppers.EpicHoppers;
|
import com.songoda.epichoppers.EpicHoppers;
|
||||||
import com.songoda.epichoppers.Hopper.Hopper;
|
import com.songoda.epichoppers.Hopper.Hopper;
|
||||||
import net.minecraft.server.v1_7_R4.AxisAlignedBB;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.craftbukkit.v1_7_R4.CraftWorld;
|
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
@ -86,33 +84,9 @@ public class Methods {
|
|||||||
location.setX(location.getX() + .5);
|
location.setX(location.getX() + .5);
|
||||||
location.setY(location.getY() + .5);
|
location.setY(location.getY() + .5);
|
||||||
location.setZ(location.getZ() + .5);
|
location.setZ(location.getZ() + .5);
|
||||||
if (!instance.v1_8 && !instance.v1_7) {
|
|
||||||
p.getWorld().spawnParticle(org.bukkit.Particle.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), location, 200, .5, .5, .5);
|
p.getWorld().spawnParticle(org.bukkit.Particle.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), location, 200, .5, .5, .5);
|
||||||
} else {
|
|
||||||
p.getWorld().playEffect(location, org.bukkit.Effect.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), 1, 0);
|
|
||||||
//Does not resolve --Nova
|
|
||||||
//p.getWorld().spigot().playEffect(location, org.bukkit.Effect.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), 1, 0, (float) 1, (float) 1, (float) 1, 1, 200, 10);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Debugger.runReport(e);
|
Debugger.runReport(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public static Collection<Entity> getNearbyEntities(Location location, double x, double y, double z) {
|
|
||||||
if (location == null) return Collections.emptyList();
|
|
||||||
|
|
||||||
World world = location.getWorld();
|
|
||||||
AxisAlignedBB aabb = AxisAlignedBB.a(location.getX() - x, location.getY() - y, location.getZ() - z, location.getX() + x, location.getY() + y, location.getZ() + z);
|
|
||||||
List<net.minecraft.server.v1_7_R4.Entity> entityList = ((CraftWorld) world).getHandle().getEntities(null, aabb, null);
|
|
||||||
List<Entity> bukkitEntityList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (Object entity : entityList) {
|
|
||||||
bukkitEntityList.add(((net.minecraft.server.v1_7_R4.Entity) entity).getBukkitEntity());
|
|
||||||
}
|
|
||||||
|
|
||||||
return bukkitEntityList;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
package com.songoda.epichoppers.Utils;
|
package com.songoda.epichoppers.Utils;
|
||||||
|
|
||||||
|
import com.songoda.arconix.api.methods.formatting.TextComponent;
|
||||||
import com.songoda.arconix.api.utils.ConfigWrapper;
|
import com.songoda.arconix.api.utils.ConfigWrapper;
|
||||||
import com.songoda.arconix.plugin.Arconix;
|
import com.songoda.arconix.plugin.Arconix;
|
||||||
import com.songoda.epichoppers.EpicHoppers;
|
import com.songoda.epichoppers.EpicHoppers;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -25,199 +27,179 @@ import java.util.regex.Pattern;
|
|||||||
public class SettingsManager implements Listener {
|
public class SettingsManager implements Listener {
|
||||||
|
|
||||||
private String pluginName = "EpicHoppers";
|
private String pluginName = "EpicHoppers";
|
||||||
private final EpicHoppers instance;
|
|
||||||
|
private static final Pattern SETTINGS_PATTERN = Pattern.compile("(.{1,28}(?:\\s|$))|(.{0,28})", Pattern.DOTALL);
|
||||||
|
|
||||||
private static ConfigWrapper defs;
|
private static ConfigWrapper defs;
|
||||||
|
|
||||||
private Map<Player, String> cat = new HashMap<>();
|
private Map<Player, String> cat = new HashMap<>();
|
||||||
|
|
||||||
public SettingsManager(EpicHoppers instance) {
|
private final EpicHoppers instance;
|
||||||
this.instance = instance;
|
|
||||||
instance.saveResource("SettingDefinitions.yml", true);
|
public SettingsManager(EpicHoppers plugin) {
|
||||||
defs = new ConfigWrapper(instance, "", "SettingDefinitions.yml");
|
this.instance = plugin;
|
||||||
defs.createNewFile("Loading data file", "EpicHoppers SettingDefinitions file");
|
|
||||||
instance.getServer().getPluginManager().registerEvents(this, instance);
|
plugin.saveResource("SettingDefinitions.yml", true);
|
||||||
|
defs = new ConfigWrapper(plugin, "", "SettingDefinitions.yml");
|
||||||
|
defs.createNewFile("Loading data file", pluginName + " SettingDefinitions file");
|
||||||
|
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<Player, String> current = new HashMap<>();
|
private Map<Player, String> current = new HashMap<>();
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onInventoryClick(InventoryClickEvent e) {
|
public void onInventoryClick(InventoryClickEvent event) {
|
||||||
if (e.getInventory() == null
|
ItemStack clickedItem = event.getCurrentItem();
|
||||||
|| e.getCurrentItem() == null
|
|
||||||
|| !e.getCurrentItem().hasItemMeta()
|
|
||||||
|| !e.getCurrentItem().getItemMeta().hasDisplayName()
|
|
||||||
|| e.getWhoClicked().getOpenInventory().getTopInventory() != e.getInventory()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (e.getInventory().getTitle().equals(pluginName + " Settings Manager")) {
|
|
||||||
|
|
||||||
if (e.getCurrentItem().getType().equals(Material.STAINED_GLASS_PANE)) {
|
if (event.getInventory() != event.getWhoClicked().getOpenInventory().getTopInventory()
|
||||||
e.setCancelled(true);
|
|| clickedItem == null || !clickedItem.hasItemMeta()
|
||||||
|
|| !clickedItem.getItemMeta().hasDisplayName()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String type = ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName());
|
if (event.getInventory().getTitle().equals(pluginName + " Settings Manager")) {
|
||||||
cat.put((Player) e.getWhoClicked(), type);
|
event.setCancelled(true);
|
||||||
openEditor((Player) e.getWhoClicked());
|
if (clickedItem.getType().name().contains("STAINED_GLASS")) return;
|
||||||
e.setCancelled(true);
|
|
||||||
} else if (e.getInventory().getTitle().equals(pluginName + " Settings Editor")) {
|
|
||||||
|
|
||||||
if (e.getCurrentItem().getType().equals(Material.STAINED_GLASS_PANE)) {
|
String type = ChatColor.stripColor(clickedItem.getItemMeta().getDisplayName());
|
||||||
e.setCancelled(true);
|
this.cat.put((Player) event.getWhoClicked(), type);
|
||||||
return;
|
this.openEditor((Player) event.getWhoClicked());
|
||||||
}
|
} else if (event.getInventory().getTitle().equals(pluginName + " Settings Editor")) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
if (clickedItem.getType().name().contains("STAINED_GLASS")) return;
|
||||||
|
|
||||||
Player p = (Player) e.getWhoClicked();
|
Player player = (Player) event.getWhoClicked();
|
||||||
e.setCancelled(true);
|
|
||||||
|
|
||||||
String key = cat.get(p) + "." + ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName());
|
String key = cat.get(player) + "." + ChatColor.stripColor(clickedItem.getItemMeta().getDisplayName());
|
||||||
|
|
||||||
if (instance.getConfig().get(key).getClass().getName().equals("java.lang.Boolean")) {
|
if (instance.getConfig().get(key).getClass().getName().equals("java.lang.Boolean")) {
|
||||||
boolean bool = (Boolean) instance.getConfig().get(key);
|
this.instance.getConfig().set(key, !instance.getConfig().getBoolean(key));
|
||||||
if (!bool)
|
this.finishEditing(player);
|
||||||
instance.getConfig().set(key, true);
|
|
||||||
else
|
|
||||||
instance.getConfig().set(key, false);
|
|
||||||
finishEditing(p);
|
|
||||||
} else {
|
} else {
|
||||||
editObject(p, key);
|
this.editObject(player, key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onChat(AsyncPlayerChatEvent e) {
|
public void onChat(AsyncPlayerChatEvent event) {
|
||||||
final Player p = e.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (!current.containsKey(p)) {
|
if (!current.containsKey(player)) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
switch (instance.getConfig().get(current.get(p)).getClass().getName()) {
|
|
||||||
case "java.lang.Integer":
|
|
||||||
instance.getConfig().set(current.get(p), Integer.parseInt(e.getMessage()));
|
|
||||||
break;
|
|
||||||
case "java.lang.Double":
|
|
||||||
instance.getConfig().set(current.get(p), Double.parseDouble(e.getMessage()));
|
|
||||||
break;
|
|
||||||
case "java.lang.String":
|
|
||||||
instance.getConfig().set(current.get(p), e.getMessage());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
finishEditing(p);
|
|
||||||
e.setCancelled(true);
|
|
||||||
|
|
||||||
|
String value = current.get(player);
|
||||||
|
FileConfiguration config = instance.getConfig();
|
||||||
|
if (config.isInt(value)) {
|
||||||
|
config.set(value, Integer.parseInt(event.getMessage()));
|
||||||
|
} else if (config.isDouble(value)) {
|
||||||
|
config.set(value, Double.parseDouble(event.getMessage()));
|
||||||
|
} else if (config.isString(value)) {
|
||||||
|
config.set(value, event.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void finishEditing(Player p) {
|
this.finishEditing(player);
|
||||||
current.remove(p);
|
event.setCancelled(true);
|
||||||
instance.saveConfig();
|
}
|
||||||
openEditor(p);
|
|
||||||
|
public void finishEditing(Player player) {
|
||||||
|
this.current.remove(player);
|
||||||
|
this.instance.saveConfig();
|
||||||
|
this.openEditor(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void editObject(Player p, String current) {
|
public void editObject(Player player, String current) {
|
||||||
this.current.put(p, ChatColor.stripColor(current));
|
this.current.put(player, ChatColor.stripColor(current));
|
||||||
p.closeInventory();
|
|
||||||
p.sendMessage("");
|
player.closeInventory();
|
||||||
p.sendMessage(Arconix.pl().getApi().format().formatText("&7Please enter a value for &6" + current + "&7."));
|
player.sendMessage("");
|
||||||
if (instance.getConfig().get(current).getClass().getName().equals("java.lang.Integer")) {
|
player.sendMessage(TextComponent.formatText("&7Please enter a value for &6" + current + "&7."));
|
||||||
p.sendMessage(Arconix.pl().getApi().format().formatText("&cUse only numbers."));
|
if (instance.getConfig().isInt(current) || instance.getConfig().isDouble(current)) {
|
||||||
|
player.sendMessage(TextComponent.formatText("&cUse only numbers."));
|
||||||
}
|
}
|
||||||
p.sendMessage("");
|
player.sendMessage("");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openSettingsManager(Player p) {
|
public void openSettingsManager(Player player) {
|
||||||
Inventory i = Bukkit.createInventory(null, 27, pluginName + " Settings Manager");
|
Inventory inventory = Bukkit.createInventory(null, 27, pluginName + " Settings Manager");
|
||||||
int nu = 0;
|
ItemStack glass = Methods.getGlass();
|
||||||
while (nu != 27) {
|
for (int i = 0; i < inventory.getSize(); i++) {
|
||||||
i.setItem(nu, Methods.getGlass());
|
inventory.setItem(i, glass);
|
||||||
nu++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int spot = 10;
|
int slot = 10;
|
||||||
for (String key : instance.getConfig().getConfigurationSection("").getKeys(false)) {
|
for (String key : instance.getConfig().getDefaultSection().getKeys(false)) {
|
||||||
ItemStack item = new ItemStack(Material.WOOL, 1, (byte) (spot - 9));
|
ItemStack item = new ItemStack(Material.WHITE_WOOL, 1, (byte) (slot - 9)); //ToDo: Make this function as it was meant to.
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
meta.setLore(Collections.singletonList(Arconix.pl().getApi().format().formatText("&6Click To Edit This Category.")));
|
meta.setLore(Collections.singletonList(TextComponent.formatText("&6Click To Edit This Category.")));
|
||||||
meta.setDisplayName(Arconix.pl().getApi().format().formatText("&f&l" + key));
|
meta.setDisplayName(TextComponent.formatText("&f&l" + key));
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
i.setItem(spot, item);
|
inventory.setItem(slot, item);
|
||||||
spot++;
|
slot++;
|
||||||
}
|
|
||||||
p.openInventory(i);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openEditor(Player p) {
|
player.openInventory(inventory);
|
||||||
Inventory i = Bukkit.createInventory(null, 54, pluginName + " Settings Editor");
|
}
|
||||||
|
|
||||||
int num = 0;
|
public void openEditor(Player player) {
|
||||||
for (String key : instance.getConfig().getConfigurationSection(cat.get(p)).getKeys(true)) {
|
Inventory inventory = Bukkit.createInventory(null, 54, pluginName + " Settings Editor");
|
||||||
String fKey = cat.get(p) + "." + key;
|
FileConfiguration config = instance.getConfig();
|
||||||
|
|
||||||
|
int slot = 0;
|
||||||
|
for (String key : config.getConfigurationSection(cat.get(player)).getKeys(true)) {
|
||||||
|
String fKey = cat.get(player) + "." + key;
|
||||||
ItemStack item = new ItemStack(Material.DIAMOND_HELMET);
|
ItemStack item = new ItemStack(Material.DIAMOND_HELMET);
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
meta.setDisplayName(Arconix.pl().getApi().format().formatText("&6" + key));
|
meta.setDisplayName(TextComponent.formatText("&6" + key));
|
||||||
ArrayList<String> lore = new ArrayList<>();
|
|
||||||
switch (instance.getConfig().get(fKey).getClass().getName()) {
|
|
||||||
case "java.lang.Boolean":
|
|
||||||
|
|
||||||
|
List<String> lore = new ArrayList<>();
|
||||||
|
if (config.isBoolean(fKey)) {
|
||||||
item.setType(Material.LEVER);
|
item.setType(Material.LEVER);
|
||||||
boolean bool = (Boolean) instance.getConfig().get(fKey);
|
lore.add(TextComponent.formatText(config.getBoolean(fKey) ? "&atrue" : "&cfalse"));
|
||||||
|
} else if (config.isString(fKey)) {
|
||||||
if (!bool)
|
|
||||||
lore.add(Arconix.pl().getApi().format().formatText("&c" + false));
|
|
||||||
else
|
|
||||||
lore.add(Arconix.pl().getApi().format().formatText("&a" + true));
|
|
||||||
|
|
||||||
break;
|
|
||||||
case "java.lang.String":
|
|
||||||
item.setType(Material.PAPER);
|
item.setType(Material.PAPER);
|
||||||
String str = (String) instance.getConfig().get(fKey);
|
lore.add(TextComponent.formatText("&9" + config.getString(fKey)));
|
||||||
lore.add(Arconix.pl().getApi().format().formatText("&9" + str));
|
} else if (config.isInt(fKey)) {
|
||||||
break;
|
item.setType(Material.CLOCK);
|
||||||
case "java.lang.Integer":
|
lore.add(TextComponent.formatText("&5" + config.getInt(fKey)));
|
||||||
item.setType(Material.WATCH);
|
|
||||||
|
|
||||||
int in = (Integer) instance.getConfig().get(fKey);
|
|
||||||
lore.add(Arconix.pl().getApi().format().formatText("&5" + in));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defs.getConfig().contains(fKey)) {
|
if (defs.getConfig().contains(fKey)) {
|
||||||
String text = defs.getConfig().getString(key);
|
String text = defs.getConfig().getString(key);
|
||||||
|
|
||||||
Pattern regex = Pattern.compile("(.{1,28}(?:\\s|$))|(.{0,28})", Pattern.DOTALL);
|
Matcher m = SETTINGS_PATTERN.matcher(text);
|
||||||
Matcher m = regex.matcher(text);
|
|
||||||
while (m.find()) {
|
while (m.find()) {
|
||||||
if (m.end() != text.length() || m.group().length() != 0)
|
if (m.end() != text.length() || m.group().length() != 0)
|
||||||
lore.add(Arconix.pl().getApi().format().formatText("&7" + m.group()));
|
lore.add(TextComponent.formatText("&7" + m.group()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
meta.setLore(lore);
|
meta.setLore(lore);
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
|
||||||
i.setItem(num, item);
|
inventory.setItem(slot, item);
|
||||||
num++;
|
slot++;
|
||||||
}
|
}
|
||||||
p.openInventory(i);
|
|
||||||
|
player.openInventory(inventory);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateSettings() {
|
public void updateSettings() {
|
||||||
for (settings s : settings.values()) {
|
FileConfiguration config = instance.getConfig();
|
||||||
if (instance.getConfig().contains("settings." + s.oldSetting)) {
|
|
||||||
instance.getConfig().addDefault(s.setting, instance.getConfig().get("settings." + s.oldSetting));
|
for (Setting setting : Setting.values()) {
|
||||||
instance.getConfig().set("settings." + s.oldSetting, null);
|
if (config.contains("settings." + setting.oldSetting)) {
|
||||||
} else if (s.setting.equals("Main.Upgrade Particle Type")) {
|
config.addDefault(setting.setting, instance.getConfig().get("settings." + setting.oldSetting));
|
||||||
if (instance.v1_7 || instance.v1_8)
|
config.set("settings." + setting.oldSetting, null);
|
||||||
instance.getConfig().addDefault(s.setting, "WITCH_MAGIC");
|
} else if (setting.setting.equals("Main.Upgrade Particle Type")) {
|
||||||
else
|
config.addDefault(setting.setting, setting.option);
|
||||||
instance.getConfig().addDefault(s.setting, s.option);
|
} else {
|
||||||
} else
|
config.addDefault(setting.setting, setting.option);
|
||||||
instance.getConfig().addDefault(s.setting, s.option);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum settings {
|
config.set("settings", null);
|
||||||
|
}
|
||||||
|
public enum Setting {
|
||||||
o1("Upgrading-enabled", "Main.Allow Hopper Upgrading", true),
|
o1("Upgrading-enabled", "Main.Allow Hopper Upgrading", true),
|
||||||
o2("Upgrade-with-eco", "Main.Upgrade With Economy", true),
|
o2("Upgrade-with-eco", "Main.Upgrade With Economy", true),
|
||||||
o3("Upgrade-with-xp", "Main.Upgrade With XP", true),
|
o3("Upgrade-with-xp", "Main.Upgrade With XP", true),
|
||||||
@ -235,8 +217,8 @@ public class SettingsManager implements Listener {
|
|||||||
o15("BlockBreak-Blacklist", "Main.BlockBreak Blacklisted Blocks", Arrays.asList("BEDROCK")),
|
o15("BlockBreak-Blacklist", "Main.BlockBreak Blacklisted Blocks", Arrays.asList("BEDROCK")),
|
||||||
|
|
||||||
o16("Rainbow-Glass", "Interfaces.Replace Glass Type 1 With Rainbow Glass", false),
|
o16("Rainbow-Glass", "Interfaces.Replace Glass Type 1 With Rainbow Glass", false),
|
||||||
o17("ECO-Icon", "Interfaces.Economy Icon", "DOUBLE_PLANT"),
|
o17("ECO-Icon", "Interfaces.Economy Icon", "SUNFLOWER"),
|
||||||
o18("XP-Icon", "Interfaces.XP Icon", "EXP_BOTTLE"),
|
o18("XP-Icon", "Interfaces.XP Icon", "EXPERIENCE_BOTTLE"),
|
||||||
o19("Glass-Type-1", "Interfaces.Glass Type 1", 7),
|
o19("Glass-Type-1", "Interfaces.Glass Type 1", 7),
|
||||||
o20("Glass-Type-2", "Interfaces.Glass Type 2", 11),
|
o20("Glass-Type-2", "Interfaces.Glass Type 2", 11),
|
||||||
o21("Glass-Type-3", "Interfaces.Glass Type 3", 3),
|
o21("Glass-Type-3", "Interfaces.Glass Type 3", 3),
|
||||||
@ -247,7 +229,7 @@ public class SettingsManager implements Listener {
|
|||||||
private String oldSetting;
|
private String oldSetting;
|
||||||
private Object option;
|
private Object option;
|
||||||
|
|
||||||
settings(String oldSetting, String setting, Object option) {
|
Setting(String oldSetting, String setting, Object option) {
|
||||||
this.oldSetting = oldSetting;
|
this.oldSetting = oldSetting;
|
||||||
this.setting = setting;
|
this.setting = setting;
|
||||||
this.option = option;
|
this.option = option;
|
||||||
|
@ -5,6 +5,7 @@ depend: [Arconix]
|
|||||||
softdepend: [Towny, RedProtect, Kingdoms, PlotsSquared, GriefPrevention, USkyBlock, ASkyBlock, WorldGuard, Factions, Vault]
|
softdepend: [Towny, RedProtect, Kingdoms, PlotsSquared, GriefPrevention, USkyBlock, ASkyBlock, WorldGuard, Factions, Vault]
|
||||||
version: 2.3.2
|
version: 2.3.2
|
||||||
author: Songoda
|
author: Songoda
|
||||||
|
api-version: 1.13
|
||||||
commands:
|
commands:
|
||||||
epichoppers:
|
epichoppers:
|
||||||
description: View information on this plugin.
|
description: View information on this plugin.
|
||||||
|
Loading…
Reference in New Issue
Block a user