mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
commit
c661d09f9a
46
pom.xml
46
pom.xml
@ -55,44 +55,76 @@
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
<version>1.12-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sk89q.worldedit</groupId>
|
||||
<artifactId>worldedit-bukkit</artifactId>
|
||||
<version>6.1.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.TheBusyBiscuit</groupId>
|
||||
<artifactId>CS-CoreLib</artifactId>
|
||||
<version>v1.5.18</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.minebuilders</groupId>
|
||||
<artifactId>clearlag-core</artifactId>
|
||||
<version>2.9.7</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/Clearlag.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.coreprotect</groupId>
|
||||
<artifactId>CoreProtect</artifactId>
|
||||
<version>2.14.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.mrCookieSlime</groupId>
|
||||
<artifactId>EmeraldEnchants</artifactId>
|
||||
<version>2.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/EmeraldEnchants v2.0.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.mrCookieSlime</groupId>
|
||||
<artifactId>ExoticGarden</artifactId>
|
||||
<version>1.2.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/ExoticGarden v1.2.0.jar</systemPath>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
<version>1.12-R0.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sk89q.worldedit</groupId>
|
||||
<artifactId>worldedit-bukkit</artifactId>
|
||||
<version>6.1.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.TheBusyBiscuit</groupId>
|
||||
<artifactId>CS-CoreLib</artifactId>
|
||||
<version>v1.5.18</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.minebuilders</groupId>
|
||||
<artifactId>clearlag-core</artifactId>
|
||||
<version>2.9.7</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.coreprotect</groupId>
|
||||
<artifactId>CoreProtect</artifactId>
|
||||
<version>2.14.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.mrCookieSlime</groupId>
|
||||
<artifactId>EmeraldEnchants</artifactId>
|
||||
<version>2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.mrCookieSlime</groupId>
|
||||
<artifactId>ExoticGarden</artifactId>
|
||||
<version>1.2.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
</project>
|
||||
|
@ -1,7 +1,6 @@
|
||||
package me.mrCookieSlime.Slimefun.AncientAltar;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Particles.MC_1_8.ParticleEffect;
|
||||
|
@ -131,7 +131,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean canOpen(Block b, Player p) {
|
||||
boolean open = BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.android.bypass");
|
||||
boolean open = BlockStorage.getLocationInfo(b.getLocation(), "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.android.bypass");
|
||||
if (!open) {
|
||||
Messages.local.sendTranslation(p, "inventory.no-access", true);
|
||||
}
|
||||
@ -208,7 +208,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) {
|
||||
boolean allow = reason.equals(UnregisterReason.PLAYER_BREAK) && (BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.android.bypass"));
|
||||
boolean allow = reason.equals(UnregisterReason.PLAYER_BREAK) && (BlockStorage.getLocationInfo(b.getLocation(), "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.android.bypass"));
|
||||
|
||||
if (allow) {
|
||||
BlockMenu inv = BlockStorage.getInventory(b);
|
||||
@ -238,12 +238,12 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
if (!(b.getState() instanceof Skull)) {
|
||||
return;
|
||||
}
|
||||
} catch(NullPointerException x) {
|
||||
} catch (NullPointerException x) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (BlockStorage.getBlockInfo(b, "paused").equals("false")) {
|
||||
float fuel = Float.parseFloat(BlockStorage.getBlockInfo(b, "fuel"));
|
||||
if (BlockStorage.getLocationInfo(b.getLocation(), "paused").equals("false")) {
|
||||
float fuel = Float.parseFloat(BlockStorage.getLocationInfo(b.getLocation(), "fuel"));
|
||||
if (fuel == 0) {
|
||||
ItemStack item = BlockStorage.getInventory(b).getItemInSlot(43);
|
||||
if (item != null) {
|
||||
@ -260,8 +260,8 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
}
|
||||
}
|
||||
else {
|
||||
String[] script = BlockStorage.getBlockInfo(b, "script").split("-");
|
||||
int index = Integer.parseInt(BlockStorage.getBlockInfo(b, "index")) + 1;
|
||||
String[] script = BlockStorage.getLocationInfo(b.getLocation(), "script").split("-");
|
||||
int index = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "index")) + 1;
|
||||
if (index >= script.length) index = 0;
|
||||
boolean refresh = true;
|
||||
BlockStorage.addBlockInfo(b, "fuel", String.valueOf(fuel - 1));
|
||||
@ -271,7 +271,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
switch(part) {
|
||||
case GO_DOWN: {
|
||||
try {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(BlockFace.DOWN);
|
||||
move(b, face, block);
|
||||
} catch (Exception e) {
|
||||
@ -281,7 +281,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
}
|
||||
case GO_FORWARD: {
|
||||
try {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(face);
|
||||
move(b, face, block);
|
||||
} catch (Exception e) {
|
||||
@ -291,7 +291,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
}
|
||||
case GO_UP: {
|
||||
try {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(BlockFace.UP);
|
||||
move(b, face, block);
|
||||
} catch (Exception e) {
|
||||
@ -304,7 +304,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
break;
|
||||
}
|
||||
case TURN_LEFT: {
|
||||
int rotIndex = directions.indexOf(BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"))) - 1;
|
||||
int rotIndex = directions.indexOf(BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) - 1;
|
||||
if (rotIndex < 0) rotIndex = directions.size() - 1;
|
||||
BlockFace dir = directions.get(rotIndex);
|
||||
Skull skull = (Skull) b.getState();
|
||||
@ -314,7 +314,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
break;
|
||||
}
|
||||
case TURN_RIGHT: {
|
||||
int rotIndex = directions.indexOf(BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"))) + 1;
|
||||
int rotIndex = directions.indexOf(BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) + 1;
|
||||
if (rotIndex == directions.size()) rotIndex = 0;
|
||||
BlockFace dir = directions.get(rotIndex);
|
||||
Skull skull = (Skull) b.getState();
|
||||
@ -324,7 +324,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
break;
|
||||
}
|
||||
case DIG_FORWARD: {
|
||||
Block block = b.getRelative(BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation")));
|
||||
Block block = b.getRelative(BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation")));
|
||||
mine(b, block);
|
||||
break;
|
||||
}
|
||||
@ -351,25 +351,25 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
break;
|
||||
}
|
||||
case MOVE_AND_DIG_FORWARD: {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(face);
|
||||
movedig(b, face, block);
|
||||
break;
|
||||
}
|
||||
case MOVE_AND_DIG_UP: {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(BlockFace.UP);
|
||||
movedig(b, face, block);
|
||||
break;
|
||||
}
|
||||
case MOVE_AND_DIG_DOWN: {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(BlockFace.DOWN);
|
||||
movedig(b, face, block);
|
||||
break;
|
||||
}
|
||||
case INTERFACE_ITEMS: {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(face);
|
||||
if (BlockStorage.check(block, "ANDROID_INTERFACE_ITEMS") && block.getState() instanceof Dispenser) {
|
||||
Dispenser d = (Dispenser) block.getState();
|
||||
@ -390,7 +390,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
break;
|
||||
}
|
||||
case INTERFACE_FUEL: {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(face);
|
||||
if (BlockStorage.check(block, "ANDROID_INTERFACE_FUEL") && block.getState() instanceof Dispenser) {
|
||||
Dispenser d = (Dispenser) block.getState();
|
||||
@ -417,7 +417,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
break;
|
||||
}
|
||||
case FARM_FORWARD: {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(face);
|
||||
farm(b, block);
|
||||
break;
|
||||
@ -428,7 +428,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
break;
|
||||
}
|
||||
case FARM_EXOTIC_FORWARD: {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(face);
|
||||
exoticFarm(b, block);
|
||||
break;
|
||||
@ -439,7 +439,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
break;
|
||||
}
|
||||
case CHOP_TREE: {
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"));
|
||||
BlockFace face = BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"));
|
||||
Block block = b.getRelative(face);
|
||||
if (block.getType().equals(Material.LOG) || block.getType().equals(Material.LOG_2)) {
|
||||
List<Location> list = new ArrayList<Location>();
|
||||
@ -450,7 +450,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
Block log = list.get(list.size() - 1).getBlock();
|
||||
Collection<ItemStack> drops = log.getDrops();
|
||||
log.getWorld().playEffect(log.getLocation(), Effect.STEP_SOUND, log.getType());
|
||||
if (!drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), log)) {
|
||||
if (!drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), log)) {
|
||||
ItemStack[] items = drops.toArray(new ItemStack[drops.size()]);
|
||||
if (fits(b, items)) {
|
||||
pushItems(b, items);
|
||||
@ -474,7 +474,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
|
||||
entities:
|
||||
for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) {
|
||||
switch (BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"))) {
|
||||
switch (BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) {
|
||||
case NORTH: {
|
||||
if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) {
|
||||
if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance);
|
||||
@ -527,7 +527,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
entities:
|
||||
for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) {
|
||||
if (n instanceof Animals) continue;
|
||||
switch (BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"))) {
|
||||
switch (BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) {
|
||||
case NORTH: {
|
||||
if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) {
|
||||
if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance);
|
||||
@ -581,7 +581,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
entities:
|
||||
for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) {
|
||||
if (n instanceof Monster) continue;
|
||||
switch (BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"))) {
|
||||
switch (BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) {
|
||||
case NORTH: {
|
||||
if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) {
|
||||
if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance);
|
||||
@ -636,7 +636,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) {
|
||||
if (n instanceof Monster) continue;
|
||||
if (n instanceof Ageable && !((Ageable) n).isAdult()) continue;
|
||||
switch (BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"))) {
|
||||
switch (BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) {
|
||||
case NORTH: {
|
||||
if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) {
|
||||
if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance);
|
||||
@ -705,26 +705,27 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
skull.update(true, false);
|
||||
CustomSkull.setSkull(block, CustomSkull.getTexture(getItem()));
|
||||
b.setType(Material.AIR);
|
||||
BlockStorage.moveBlockInfo(b, block);
|
||||
BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation());
|
||||
}
|
||||
}
|
||||
|
||||
private void mine(Block b, Block block) {
|
||||
Collection<ItemStack> drops = block.getDrops();
|
||||
if (!blockblacklist.contains(block.getType()) && !drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), block)) {
|
||||
if (!blockblacklist.contains(block.getType()) && !drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), block)) {
|
||||
SlimefunItem item = BlockStorage.check(block);
|
||||
if(item != null) {
|
||||
if(fits(b, item.getItem())) {
|
||||
if(SlimefunItem.blockhandler.containsKey(item.getID())) {
|
||||
if (item != null) {
|
||||
if (fits(b, item.getItem())) {
|
||||
if (SlimefunItem.blockhandler.containsKey(item.getID())) {
|
||||
if (SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG)) {
|
||||
pushItems(b, BlockStorage.retrieve(block));
|
||||
if(SlimefunItem.blockhandler.containsKey(item.getID())) SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG);
|
||||
if (SlimefunItem.blockhandler.containsKey(item.getID())) SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG);
|
||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||
block.setType(Material.AIR);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else {
|
||||
}
|
||||
else {
|
||||
ItemStack[] items = drops.toArray(new ItemStack[drops.size()]);
|
||||
if (fits(b, items)) {
|
||||
pushItems(b, items);
|
||||
@ -738,12 +739,12 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
@SuppressWarnings("deprecation")
|
||||
private void movedig(Block b, BlockFace face, Block block) {
|
||||
Collection<ItemStack> drops = block.getDrops();
|
||||
if (!blockblacklist.contains(block.getType()) && !drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), block)) {
|
||||
if (!blockblacklist.contains(block.getType()) && !drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), block)) {
|
||||
try {
|
||||
SlimefunItem item = BlockStorage.check(block);
|
||||
if(item != null) {
|
||||
if(fits(b, item.getItem())) {
|
||||
if(SlimefunItem.blockhandler.containsKey(item.getID())) {
|
||||
if (item != null) {
|
||||
if (fits(b, item.getItem())) {
|
||||
if (SlimefunItem.blockhandler.containsKey(item.getID())) {
|
||||
if (SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG)) {
|
||||
pushItems(b, BlockStorage.retrieve(block));
|
||||
|
||||
@ -757,7 +758,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
skull.update(true, false);
|
||||
CustomSkull.setSkull(block, CustomSkull.getTexture(getItem()));
|
||||
b.setType(Material.AIR);
|
||||
BlockStorage.moveBlockInfo(b, block);
|
||||
BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -775,10 +776,10 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
skull.update(true, false);
|
||||
CustomSkull.setSkull(block, CustomSkull.getTexture(getItem()));
|
||||
b.setType(Material.AIR);
|
||||
BlockStorage.moveBlockInfo(b, block);
|
||||
BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation());
|
||||
}
|
||||
}
|
||||
} catch(Exception x) {
|
||||
} catch (Exception x) {
|
||||
x.printStackTrace();
|
||||
}
|
||||
}
|
||||
@ -957,7 +958,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
@Override
|
||||
public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) {
|
||||
try {
|
||||
openScript(p, b, BlockStorage.getBlockInfo(b, "script"));
|
||||
openScript(p, b, BlockStorage.getLocationInfo(b.getLocation(), "script"));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -1152,7 +1153,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
final String code = BlockStorage.getBlockInfo(b, "script");
|
||||
final String code = BlockStorage.getLocationInfo(b.getLocation(), "script");
|
||||
int num = 1;
|
||||
|
||||
for (Config script: getUploadedScripts()) {
|
||||
@ -1564,4 +1565,5 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -107,14 +107,14 @@ public class SlimefunCommand implements CommandExecutor, Listener {
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("guide")) {
|
||||
if (sender instanceof Player) {
|
||||
if(sender.hasPermission("slimefun.command.guide"))((Player) sender).getInventory().addItem(SlimefunGuide.getItem(SlimefunStartup.getCfg().getBoolean("guide.default-view-book")));
|
||||
if (sender.hasPermission("slimefun.command.guide"))((Player) sender).getInventory().addItem(SlimefunGuide.getItem(SlimefunStartup.getCfg().getBoolean("guide.default-view-book")));
|
||||
else Messages.local.sendTranslation(sender, "messages.no-permission", true);
|
||||
}
|
||||
else Messages.local.sendTranslation(sender, "messages.only-players", true);
|
||||
}
|
||||
else if(args[0].equalsIgnoreCase("open_guide")) {
|
||||
else if (args[0].equalsIgnoreCase("open_guide")) {
|
||||
if (sender instanceof Player) {
|
||||
if(sender.hasPermission("slimefun.command.open_guide")) SlimefunGuide.openGuide((Player) sender, SlimefunStartup.getCfg().getBoolean("guide.default-view-book"));
|
||||
if (sender.hasPermission("slimefun.command.open_guide")) SlimefunGuide.openGuide((Player) sender, SlimefunStartup.getCfg().getBoolean("guide.default-view-book"));
|
||||
else Messages.local.sendTranslation(sender, "messages.no-permission", true);
|
||||
}
|
||||
else Messages.local.sendTranslation(sender, "messages.only-players", true);
|
||||
@ -142,18 +142,18 @@ public class SlimefunCommand implements CommandExecutor, Listener {
|
||||
double y = Integer.parseInt(args[2]) + 0.4D;
|
||||
double z = Integer.parseInt(args[3]) + 0.5D;
|
||||
|
||||
if (BlockStorage.getBlockInfo(((Player) sender).getWorld().getBlockAt(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])), "floor") != null) {
|
||||
if (BlockStorage.getLocationInfo(((Player) sender).getWorld().getBlockAt(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])).getLocation(), "floor") != null) {
|
||||
Elevator.ignored.add(((Player) sender).getUniqueId());
|
||||
float yaw = ((Player) sender).getEyeLocation().getYaw() + 180;
|
||||
if (yaw > 180) yaw = -180 + (yaw - 180);
|
||||
((Player) sender).teleport(new Location(((Player) sender).getWorld(), x, y, z, yaw, ((Player) sender).getEyeLocation().getPitch()));
|
||||
try {
|
||||
TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(((Player) sender).getWorld().getBlockAt(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])), "floor")));
|
||||
TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getLocationInfo(((Player) sender).getWorld().getBlockAt(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])).getLocation(), "floor")));
|
||||
TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(20, 60, 20).addText(" ");
|
||||
|
||||
title.send(TitleType.TITLE, ((Player) sender));
|
||||
subtitle.send(TitleType.SUBTITLE, ((Player) sender));
|
||||
} catch(Exception x1) {
|
||||
} catch (Exception x1) {
|
||||
x1.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ public class Elevator {
|
||||
public static void openEditor(Player p, final Block b) {
|
||||
ChestMenu menu = new ChestMenu("Elevator Settings");
|
||||
|
||||
menu.addItem(4, new CustomItem(new MaterialData(Material.NAME_TAG), "&7Floor Name &e(Click to edit)", "", "&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(b, "floor"))));
|
||||
menu.addItem(4, new CustomItem(new MaterialData(Material.NAME_TAG), "&7Floor Name &e(Click to edit)", "", "&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getLocationInfo(b.getLocation(), "floor"))));
|
||||
menu.addMenuClickHandler(4, new MenuClickHandler() {
|
||||
|
||||
@Override
|
||||
@ -75,7 +75,7 @@ public class Elevator {
|
||||
for (int y = b.getWorld().getMaxHeight(); y > 0; y--) {
|
||||
Block block = b.getWorld().getBlockAt(b.getX(), y, b.getZ());
|
||||
if (BlockStorage.check(block, "ELEVATOR_PLATE")) {
|
||||
String floor = ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(block, "floor"));
|
||||
String floor = ChatColor.translateAlternateColorCodes('&', BlockStorage.getLocationInfo(block.getLocation(), "floor"));
|
||||
if (block.getY() == b.getY()) {
|
||||
tellraw.addText("&7> " + index + ". &r" + floor + "\n");
|
||||
tellraw.addHoverEvent(HoverAction.SHOW_TEXT, "\n&eThis is the Floor you are currently on:\n&r" + floor + "\n");
|
||||
|
@ -38,7 +38,7 @@ public class ItemHash {
|
||||
StringBuilder builder = new StringBuilder(LENGTH * 2);
|
||||
|
||||
for (char c: item.getHash().toCharArray()) {
|
||||
builder.append('§');
|
||||
builder.append('§');
|
||||
builder.append(c);
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ public class ItemHash {
|
||||
public static SlimefunItem fromString(String input) {
|
||||
if (input == null || input.length() != LENGTH * 2) return null;
|
||||
|
||||
String hex = input.replaceAll("§", "");
|
||||
String hex = input.replaceAll("§", "");
|
||||
|
||||
if (hex.length() != LENGTH || !map.containsKey(hex)) return null;
|
||||
|
||||
|
@ -288,7 +288,7 @@ public class SlimefunItems {
|
||||
/* Alloy (Iron + Silicon) */
|
||||
public static ItemStack FERROSILICON = new CustomItem(Material.IRON_INGOT, "&bFerrosilicon" , 0);
|
||||
/* Alloy (Iron + Gold) */
|
||||
public static ItemStack GILDED_IRON = new CustomItem(Material.GOLD_INGOT, "&6&lGilded Iron", 0);
|
||||
public static ItemStack GILDED_IRON = new CustomItem(Material.GOLD_INGOT, "&6&lGilded Iron", 0);
|
||||
/* Alloy (Redston + Ferrosilicon) */
|
||||
public static ItemStack REDSTONE_ALLOY = new CustomItem(Material.CLAY_BRICK, "&cRedstone Alloy Ingot", 0);
|
||||
/* Alloy (Iron + Copper) */
|
||||
|
@ -5,8 +5,6 @@ import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.MenuItem;
|
||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.URID.URID;
|
||||
|
@ -48,16 +48,16 @@ public abstract class AReactor extends SlimefunItem {
|
||||
public static Map<Location, Integer> progress = new HashMap<Location, Integer>();
|
||||
|
||||
private static final BlockFace[] cooling =
|
||||
{
|
||||
BlockFace.NORTH,
|
||||
BlockFace.NORTH_EAST,
|
||||
BlockFace.EAST,
|
||||
BlockFace.SOUTH_EAST,
|
||||
BlockFace.SOUTH,
|
||||
BlockFace.SOUTH_WEST,
|
||||
BlockFace.WEST,
|
||||
BlockFace.NORTH_WEST
|
||||
};
|
||||
{
|
||||
BlockFace.NORTH,
|
||||
BlockFace.NORTH_EAST,
|
||||
BlockFace.EAST,
|
||||
BlockFace.SOUTH_EAST,
|
||||
BlockFace.SOUTH,
|
||||
BlockFace.SOUTH_WEST,
|
||||
BlockFace.WEST,
|
||||
BlockFace.NORTH_WEST
|
||||
};
|
||||
|
||||
private Set<MachineFuel> recipes = new HashSet<MachineFuel>();
|
||||
|
||||
@ -65,7 +65,7 @@ public abstract class AReactor extends SlimefunItem {
|
||||
private static final int[] border_1 = {9, 10, 11, 18, 20, 27, 29, 36, 38, 45, 46, 47};
|
||||
private static final int[] border_2 = {15, 16, 17, 24, 26, 33, 35, 42, 44, 51, 52, 53};
|
||||
private static final int[] border_3 = {30, 31, 32, 39, 41, 48, 49, 50};
|
||||
private static final int[] border_4 = {25, 34, 43}; //No coolant border
|
||||
private static final int[] border_4 = {25, 34, 43}; // No coolant border
|
||||
|
||||
public AReactor(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) {
|
||||
super(category, item, id, recipeType, recipe);
|
||||
@ -80,10 +80,10 @@ public abstract class AReactor extends SlimefunItem {
|
||||
@Override
|
||||
public void newInstance(final BlockMenu menu, final Block b) {
|
||||
try {
|
||||
if (BlockStorage.getBlockInfo(b, "reactor-mode") == null){
|
||||
if (BlockStorage.getLocationInfo(b.getLocation(), "reactor-mode") == null){
|
||||
BlockStorage.addBlockInfo(b, "reactor-mode", "generator");
|
||||
}
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "reactor-mode").equals("generator")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "reactor-mode").equals("generator")) {
|
||||
menu.replaceExistingItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&7Focus: &eElectricity", "", "&6Your Reactor will focus on Power Generation", "&6If your Energy Network doesn't need Power", "&6it will not produce any either", "", "&7> Click to change the Focus to &eProduction"));
|
||||
menu.addMenuClickHandler(4, new MenuClickHandler() {
|
||||
|
||||
@ -220,7 +220,7 @@ public abstract class AReactor extends SlimefunItem {
|
||||
|
||||
});
|
||||
|
||||
for (int i : border_2) {
|
||||
for (int i : border_2) {
|
||||
preset.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 9), " "),
|
||||
new MenuClickHandler() {
|
||||
|
||||
@ -236,19 +236,19 @@ public abstract class AReactor extends SlimefunItem {
|
||||
preset.addItem(7, new CustomItem(this.getCoolant(), "&bCoolant Slot", "", "&rThis Slot accepts Coolant Cells", "&4Without any Coolant Cells, your Reactor", "&4will explode"));
|
||||
}
|
||||
else {
|
||||
preset.addItem(7, new CustomItem(new MaterialData(Material.BARRIER), "&bCoolant Slot", "", "&rThis Slot accepts Coolant Cells"));
|
||||
preset.addItem(7, new CustomItem(new MaterialData(Material.BARRIER), "&bCoolant Slot", "", "&rThis Slot accepts Coolant Cells"));
|
||||
|
||||
for (int i : border_4) {
|
||||
preset.addItem(i, new CustomItem(new ItemStack(Material.BARRIER), "&cNo Coolant Required"),
|
||||
new MenuClickHandler() {
|
||||
for (int i : border_4) {
|
||||
preset.addItem(i, new CustomItem(new ItemStack(Material.BARRIER), "&cNo Coolant Required"),
|
||||
new MenuClickHandler() {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player player, int i, ItemStack itemStack, ClickAction clickAction) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean onClick(Player player, int i, ItemStack itemStack, ClickAction clickAction) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public abstract String getInventoryTitle();
|
||||
@ -326,18 +326,18 @@ public abstract class AReactor extends SlimefunItem {
|
||||
});
|
||||
|
||||
|
||||
ItemStack item = getProgressBar().clone();
|
||||
ItemMeta im = item.getItemMeta();
|
||||
im.setDisplayName(" ");
|
||||
List<String> lore = new ArrayList<String>();
|
||||
lore.add(MachineHelper.getProgress(timeleft, processing.get(l).getTicks()));
|
||||
lore.add(MachineHelper.getCoolant(timeleft, processing.get(l).getTicks()));
|
||||
lore.add("");
|
||||
lore.add(MachineHelper.getTimeLeft(timeleft / 2));
|
||||
im.setLore(lore);
|
||||
item.setItemMeta(im);
|
||||
ItemStack item = getProgressBar().clone();
|
||||
ItemMeta im = item.getItemMeta();
|
||||
im.setDisplayName(" ");
|
||||
List<String> lore = new ArrayList<String>();
|
||||
lore.add(MachineHelper.getProgress(timeleft, processing.get(l).getTicks()));
|
||||
lore.add(MachineHelper.getCoolant(timeleft, processing.get(l).getTicks()));
|
||||
lore.add("");
|
||||
lore.add(MachineHelper.getTimeLeft(timeleft / 2));
|
||||
im.setLore(lore);
|
||||
item.setItemMeta(im);
|
||||
|
||||
BlockStorage.getInventory(l).replaceExistingItem(22, item);
|
||||
BlockStorage.getInventory(l).replaceExistingItem(22, item);
|
||||
|
||||
if (needsCooling()) {
|
||||
boolean coolant = (processing.get(l).getTicks() - timeleft) % 25 == 0;
|
||||
|
@ -42,7 +42,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem {
|
||||
@Override
|
||||
public void newInstance(final BlockMenu menu, final Block b) {
|
||||
try {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-type") == null || BlockStorage.getBlockInfo(b, "filter-type").equals("whitelist")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "filter-type") == null || BlockStorage.getLocationInfo(b.getLocation(), "filter-type").equals("whitelist")) {
|
||||
menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "&7Type: &rWhitelist", "", "&e> Click to change it to Blacklist"));
|
||||
menu.addMenuClickHandler(15, new MenuClickHandler() {
|
||||
|
||||
@ -67,7 +67,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem {
|
||||
});
|
||||
}
|
||||
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-durability") == null || BlockStorage.getBlockInfo(b, "filter-durability").equals("false")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "filter-durability") == null || BlockStorage.getLocationInfo(b.getLocation(), "filter-durability").equals("false")) {
|
||||
menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "&7Include Sub-IDs/Durability: &4\u2718", "", "&e> Click to toggle whether the Durability has to match"));
|
||||
menu.addMenuClickHandler(16, new MenuClickHandler() {
|
||||
|
||||
@ -92,7 +92,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem {
|
||||
});
|
||||
}
|
||||
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-lore") == null || BlockStorage.getBlockInfo(b, "filter-lore").equals("true")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "filter-lore") == null || BlockStorage.getLocationInfo(b.getLocation(), "filter-lore").equals("true")) {
|
||||
menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "&7Include Lore: &2\u2714", "", "&e> Click to toggle whether the Lore has to match"));
|
||||
menu.addMenuClickHandler(25, new MenuClickHandler() {
|
||||
|
||||
@ -122,7 +122,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
int channel = Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")) - 1;
|
||||
int channel = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency")) - 1;
|
||||
if (channel < 0) {
|
||||
if (CargoNet.EXTRA_CHANNELS) channel = 16;
|
||||
else channel = 15;
|
||||
@ -133,7 +133,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem {
|
||||
}
|
||||
});
|
||||
|
||||
int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency"))));
|
||||
int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency"))));
|
||||
|
||||
if (channel == 16) {
|
||||
menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "&bChannel ID: &3" + (channel + 1)));
|
||||
@ -161,7 +161,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
int channel = Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")) + 1;
|
||||
int channel = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency")) + 1;
|
||||
|
||||
if (CargoNet.EXTRA_CHANNELS) {
|
||||
if (channel > 16) channel = 0;
|
||||
|
@ -58,7 +58,7 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public void newInstance(final BlockMenu menu, final Block b) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "enabled") == null || BlockStorage.getBlockInfo(b, "enabled").equals("false")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "enabled") == null || BlockStorage.getLocationInfo(b.getLocation(), "enabled").equals("false")) {
|
||||
menu.replaceExistingItem(6, new CustomItem(new MaterialData(Material.SULPHUR), "&7Enabled: &4\u2718", "", "&e> Click to enable this Machine"));
|
||||
menu.addMenuClickHandler(6, new MenuClickHandler() {
|
||||
|
||||
@ -256,7 +256,7 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem {
|
||||
}
|
||||
|
||||
protected void tick(Block b) {
|
||||
if (BlockStorage.getBlockInfo(b, "enabled").equals("false")) return;
|
||||
if (BlockStorage.getLocationInfo(b.getLocation(), "enabled").equals("false")) return;
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
|
||||
BlockMenu menu = BlockStorage.getInventory(b);
|
||||
|
@ -45,7 +45,7 @@ public class CargoCraftingNode extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
int channel = Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")) - 1;
|
||||
int channel = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency")) - 1;
|
||||
if (channel < 0) channel = 15;
|
||||
BlockStorage.addBlockInfo(b, "frequency", String.valueOf(channel));
|
||||
newInstance(menu, b);
|
||||
@ -53,7 +53,7 @@ public class CargoCraftingNode extends SlimefunItem {
|
||||
}
|
||||
});
|
||||
|
||||
menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency"))))), "&bChannel ID: &3" + (((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))) + 1)));
|
||||
menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency"))))), "&bChannel ID: &3" + (((!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency")))) + 1)));
|
||||
menu.addMenuClickHandler(42, new MenuClickHandler() {
|
||||
|
||||
@Override
|
||||
@ -67,7 +67,7 @@ public class CargoCraftingNode extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
int channel = Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")) + 1;
|
||||
int channel = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency")) + 1;
|
||||
if (channel > 15) channel = 0;
|
||||
BlockStorage.addBlockInfo(b, "frequency", String.valueOf(channel));
|
||||
newInstance(menu, b);
|
||||
|
@ -42,7 +42,7 @@ public class CargoInputNode extends SlimefunItem {
|
||||
@Override
|
||||
public void newInstance(final BlockMenu menu, final Block b) {
|
||||
try {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-type") == null || BlockStorage.getBlockInfo(b, "filter-type").equals("whitelist")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "filter-type") == null || BlockStorage.getLocationInfo(b.getLocation(), "filter-type").equals("whitelist")) {
|
||||
menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "&7Type: &rWhitelist", "", "&e> Click to change it to Blacklist"));
|
||||
menu.addMenuClickHandler(15, new MenuClickHandler() {
|
||||
|
||||
@ -67,7 +67,7 @@ public class CargoInputNode extends SlimefunItem {
|
||||
});
|
||||
}
|
||||
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-durability") == null || BlockStorage.getBlockInfo(b, "filter-durability").equals("false")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "filter-durability") == null || BlockStorage.getLocationInfo(b.getLocation(), "filter-durability").equals("false")) {
|
||||
menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "&7Include Sub-IDs/Durability: &4\u2718", "", "&e> Click to toggle whether the Durability has to match"));
|
||||
menu.addMenuClickHandler(16, new MenuClickHandler() {
|
||||
|
||||
@ -92,7 +92,7 @@ public class CargoInputNode extends SlimefunItem {
|
||||
});
|
||||
}
|
||||
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "round-robin") == null || BlockStorage.getBlockInfo(b, "round-robin").equals("false")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "round-robin") == null || BlockStorage.getLocationInfo(b.getLocation(), "round-robin").equals("false")) {
|
||||
menu.replaceExistingItem(24, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "&7Round-Robin Mode: &4\u2718", "", "&e> Click to enable Round Robin Mode", "&e(Items will be equally distributed on the Channel)"));
|
||||
menu.addMenuClickHandler(24, new MenuClickHandler() {
|
||||
|
||||
@ -117,7 +117,7 @@ public class CargoInputNode extends SlimefunItem {
|
||||
});
|
||||
}
|
||||
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-lore") == null || BlockStorage.getBlockInfo(b, "filter-lore").equals("true")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "filter-lore") == null || BlockStorage.getLocationInfo(b.getLocation(), "filter-lore").equals("true")) {
|
||||
menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "&7Include Lore: &2\u2714", "", "&e> Click to toggle whether the Lore has to match"));
|
||||
menu.addMenuClickHandler(25, new MenuClickHandler() {
|
||||
|
||||
@ -147,7 +147,7 @@ public class CargoInputNode extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
int channel = Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")) - 1;
|
||||
int channel = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency")) - 1;
|
||||
if (channel < 0) {
|
||||
if (CargoNet.EXTRA_CHANNELS) channel = 16;
|
||||
else channel = 15;
|
||||
@ -158,7 +158,7 @@ public class CargoInputNode extends SlimefunItem {
|
||||
}
|
||||
});
|
||||
|
||||
int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency"))));
|
||||
int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency"))));
|
||||
|
||||
if (channel == 16) {
|
||||
menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "&bChannel ID: &3" + (channel + 1)));
|
||||
@ -186,7 +186,7 @@ public class CargoInputNode extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
int channel = Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")) + 1;
|
||||
int channel = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency")) + 1;
|
||||
|
||||
if (CargoNet.EXTRA_CHANNELS) {
|
||||
if (channel > 16) channel = 0;
|
||||
|
@ -48,7 +48,7 @@ public class CargoOutputNode extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
int channel = Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")) - 1;
|
||||
int channel = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency")) - 1;
|
||||
if (channel < 0) {
|
||||
if (CargoNet.EXTRA_CHANNELS) channel = 16;
|
||||
else channel = 15;
|
||||
@ -59,7 +59,7 @@ public class CargoOutputNode extends SlimefunItem {
|
||||
}
|
||||
});
|
||||
|
||||
int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency"))));
|
||||
int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency"))));
|
||||
|
||||
if (channel == 16) {
|
||||
menu.replaceExistingItem(13, new CustomItem(SlimefunItems.CHEST_TERMINAL, "&bChannel ID: &3" + (channel + 1)));
|
||||
@ -87,7 +87,7 @@ public class CargoOutputNode extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
int channel = Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")) + 1;
|
||||
int channel = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), "frequency")) + 1;
|
||||
|
||||
if (CargoNet.EXTRA_CHANNELS) {
|
||||
if (channel > 16) channel = 0;
|
||||
|
@ -52,7 +52,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
@Override
|
||||
public void newInstance(final BlockMenu menu, final Block b) {
|
||||
try {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "enabled") == null || BlockStorage.getBlockInfo(b, "enabled").equals("false")) {
|
||||
if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "enabled") == null || BlockStorage.getLocationInfo(b.getLocation(), "enabled").equals("false")) {
|
||||
menu.replaceExistingItem(22, new CustomItem(new MaterialData(Material.SULPHUR), "&7Enabled: &4\u2718", "", "&e> Click to enable this Machine"));
|
||||
menu.addMenuClickHandler(22, new MenuClickHandler() {
|
||||
|
||||
@ -77,14 +77,14 @@ public class WitherAssembler extends SlimefunItem {
|
||||
});
|
||||
}
|
||||
|
||||
double offset = (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "offset") == null) ? 3.0F: Double.valueOf(BlockStorage.getBlockInfo(b, "offset"));
|
||||
double offset = (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "offset") == null) ? 3.0F: Double.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "offset"));
|
||||
|
||||
menu.replaceExistingItem(31, new CustomItem(new MaterialData(Material.PISTON_BASE), "&7Offset: &3" + offset + " Block(s)", "", "&rLeft Click: &7+0.1", "&rRight Click: &7-0.1"));
|
||||
menu.addMenuClickHandler(31, new MenuClickHandler() {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
double offset = DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getBlockInfo(b, "offset")) + (arg3.isRightClicked() ? -0.1F: 0.1F));
|
||||
double offset = DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "offset")) + (arg3.isRightClicked() ? -0.1F: 0.1F));
|
||||
BlockStorage.addBlockInfo(b, "offset", String.valueOf(offset));
|
||||
newInstance(menu, b);
|
||||
return false;
|
||||
@ -239,7 +239,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public void tick(final Block b, SlimefunItem sf, Config data) {
|
||||
if (BlockStorage.getBlockInfo(b, "enabled").equals("false")) return;
|
||||
if (BlockStorage.getLocationInfo(b.getLocation(), "enabled").equals("false")) return;
|
||||
if (lifetime % 60 == 0) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
|
||||
@ -297,7 +297,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
|
||||
ChargableBlock.addCharge(b, -getEnergyConsumption());
|
||||
|
||||
final double offset = Double.parseDouble(BlockStorage.getBlockInfo(b, "offset"));
|
||||
final double offset = Double.parseDouble(BlockStorage.getLocationInfo(b.getLocation(), "offset"));
|
||||
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
|
||||
|
||||
|
@ -186,7 +186,7 @@ public class XPCollector extends SlimefunItem {
|
||||
}
|
||||
|
||||
private int getEXP(Block b) {
|
||||
Config cfg = BlockStorage.getBlockInfo(b);
|
||||
Config cfg = BlockStorage.getLocationInfo(b.getLocation());
|
||||
if (cfg.contains("stored-exp")) return Integer.parseInt(cfg.getString("stored-exp"));
|
||||
else {
|
||||
BlockStorage.addBlockInfo(b, "stored-exp", "0");
|
||||
|
@ -164,10 +164,18 @@ public class SlimefunSetup {
|
||||
new ItemStack[] {null, new ItemStack(Material.LOG), null, null, new ItemStack(Material.LOG), null, null, new ItemStack(Material.LOG), null})
|
||||
.register(true);
|
||||
|
||||
new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDMAS_WALKING_STICK, "GRANDMAS_WALKING_STICK2", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||
new ItemStack[] {null, new ItemStack(Material.LOG_2), null, null, new ItemStack(Material.LOG_2), null, null, new ItemStack(Material.LOG_2), null}, true)
|
||||
.register(true);
|
||||
|
||||
new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDPAS_WALKING_STICK, "GRANDPAS_WALKING_STICK", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||
new ItemStack[] {new ItemStack(Material.LEATHER), new ItemStack(Material.LOG), new ItemStack(Material.LEATHER), null, new ItemStack(Material.LOG), null, null, new ItemStack(Material.LOG), null})
|
||||
.register(true);
|
||||
|
||||
new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDPAS_WALKING_STICK, "GRANDPAS_WALKING_STICK2", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||
new ItemStack[] {new ItemStack(Material.LEATHER), new ItemStack(Material.LOG_2), new ItemStack(Material.LEATHER), null, new ItemStack(Material.LOG_2), null, null, new ItemStack(Material.LOG_2), null}, true)
|
||||
.register(true);
|
||||
|
||||
new SlimefunItem(Categories.PORTABLE, SlimefunItems.PORTABLE_CRAFTER, "PORTABLE_CRAFTER", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||
new ItemStack[] {new ItemStack(Material.BOOK), new ItemStack(Material.WORKBENCH), null, null, null, null, null, null, null})
|
||||
.register(true, new ItemInteractionHandler() {
|
||||
@ -198,7 +206,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ENHANCED_CRAFTING_TABLE");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
|
||||
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
|
||||
|
||||
@ -346,7 +354,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("GRIND_STONE");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
|
||||
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
|
||||
Inventory inv = disp.getInventory();
|
||||
@ -387,7 +395,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ARMOR_FORGE");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
|
||||
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
|
||||
final Inventory inv = disp.getInventory();
|
||||
@ -459,7 +467,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ORE_CRUSHER");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
|
||||
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
|
||||
Inventory inv = disp.getInventory();
|
||||
@ -500,7 +508,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("COMPRESSOR");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
|
||||
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
|
||||
final Inventory inv = disp.getInventory();
|
||||
@ -613,8 +621,6 @@ public class SlimefunSetup {
|
||||
@Override
|
||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.MAGIC_EYE_OF_ENDER, true)) {
|
||||
//It don't works
|
||||
//e.setCanceled(true);
|
||||
e.getParentEvent().setCancelled(true);
|
||||
PlayerInventory.update(p);
|
||||
if (p.getInventory().getHelmet() != null && p.getInventory().getChestplate() != null && p.getInventory().getLeggings() != null && p.getInventory().getBoots() != null) {
|
||||
@ -731,7 +737,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("SMELTERY");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
|
||||
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
|
||||
Inventory inv = disp.getInventory();
|
||||
@ -763,7 +769,7 @@ public class SlimefunSetup {
|
||||
p.getWorld().playEffect(b.getLocation(), Effect.MOBSPAWNER_FLAMES, 1);
|
||||
Block raw_disp = b.getRelative(BlockFace.DOWN);
|
||||
Hopper chamber = null;
|
||||
if(BlockStorage.check(raw_disp.getRelative(BlockFace.EAST).getState().getBlock(), "IGNITION_CHAMBER")) {
|
||||
if (BlockStorage.check(raw_disp.getRelative(BlockFace.EAST).getState().getBlock(), "IGNITION_CHAMBER")) {
|
||||
chamber = (Hopper) raw_disp.getRelative(BlockFace.EAST).getState();
|
||||
} else if (BlockStorage.check(raw_disp.getRelative(BlockFace.WEST).getState().getBlock(), "IGNITION_CHAMBER")) {
|
||||
chamber = (Hopper) raw_disp.getRelative(BlockFace.WEST).getState();
|
||||
@ -774,11 +780,11 @@ public class SlimefunSetup {
|
||||
}
|
||||
|
||||
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("SMELTERY", "chance.fireBreak"))) {
|
||||
if(chamber != null) {
|
||||
if (chamber != null) {
|
||||
if (chamber.getInventory().contains(Material.FLINT_AND_STEEL)) {
|
||||
ItemStack item = chamber.getInventory().getItem(chamber.getInventory().first(Material.FLINT_AND_STEEL));
|
||||
item.setDurability((short) (item.getDurability() + 1));
|
||||
if(item.getDurability() >= item.getType().getMaxDurability()) {
|
||||
if (item.getDurability() >= item.getType().getMaxDurability()) {
|
||||
item.setAmount(0);
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ITEM_BREAK, 1, 1);
|
||||
}
|
||||
@ -830,7 +836,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("PRESSURE_CHAMBER");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
|
||||
Dispenser disp = (Dispenser) b.getRelative(BlockFace.UP).getRelative(BlockFace.UP).getState();
|
||||
final Inventory inv = disp.getInventory();
|
||||
@ -1166,7 +1172,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("MAGIC_WORKBENCH");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
|
||||
Dispenser disp = null;
|
||||
|
||||
@ -1406,7 +1412,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ORE_WASHER");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
|
||||
Dispenser disp = (Dispenser) b.getRelative(BlockFace.UP).getState();
|
||||
Inventory inv = disp.getInventory();
|
||||
@ -1895,11 +1901,11 @@ public class SlimefunSetup {
|
||||
@Override
|
||||
public boolean onInteract(Player p, MultiBlock mb, Block b) {
|
||||
if (mb.isMultiBlock(SlimefunItem.getByID("SAW_MILL"))) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canBuild(p.getUniqueId(), b.getRelative(BlockFace.UP), true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canBuild(p.getUniqueId(), b.getRelative(BlockFace.UP), true)) {
|
||||
if (Slimefun.hasUnlocked(p, SlimefunItems.SAW_MILL, true)) {
|
||||
if (b.getRelative(BlockFace.UP).getType() == Material.LOG || b.getRelative(BlockFace.UP).getType() == Material.LOG_2) {
|
||||
Block log = b.getRelative(BlockFace.UP);
|
||||
if(!BlockStorage.hasBlockInfo(log)) {
|
||||
if (!BlockStorage.hasBlockInfo(log)) {
|
||||
ItemStack item = log.getType() == Material.LOG ? new CustomItem(Material.WOOD, log.getData() % 4, 8) : new CustomItem(Material.WOOD, (log.getData() % 2) + 4, 8);
|
||||
log.getWorld().dropItemNaturally(log.getLocation(), item);
|
||||
log.getWorld().playEffect(log.getLocation(), Effect.STEP_SOUND, log.getType());
|
||||
@ -1959,9 +1965,16 @@ public class SlimefunSetup {
|
||||
@Override
|
||||
public boolean onInteract(final Player p, MultiBlock mb, final Block b) {
|
||||
if (mb.isMultiBlock(SlimefunItem.getByID("DIGITAL_MINER"))) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, SlimefunItems.DIGITAL_MINER, true)) {
|
||||
Chest chest = (Chest) b.getRelative(BlockFace.UP).getState();
|
||||
Block chestBlock = b.getRelative(BlockFace.UP);
|
||||
|
||||
if(!(BlockStorage.check(chestBlock.getRelative(BlockFace.WEST), "SOLAR_PANEL") && BlockStorage.check(chestBlock.getRelative(BlockFace.EAST), "SOLAR_PANEL")) &&
|
||||
!(BlockStorage.check(chestBlock.getRelative(BlockFace.NORTH), "SOLAR_PANEL") && BlockStorage.check(chestBlock.getRelative(BlockFace.SOUTH), "SOLAR_PANEL"))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Chest chest = (Chest) chestBlock.getState();
|
||||
final Inventory inv = chest.getInventory();
|
||||
List<Location> ores = new ArrayList<Location>();
|
||||
for (int x = b.getX() - 4; x < b.getX() + 4; x++) {
|
||||
@ -2037,9 +2050,16 @@ public class SlimefunSetup {
|
||||
@Override
|
||||
public boolean onInteract(final Player p, MultiBlock mb, final Block b) {
|
||||
if (mb.isMultiBlock(SlimefunItem.getByID("ADVANCED_DIGITAL_MINER"))) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, SlimefunItems.ADVANCED_DIGITAL_MINER, true)) {
|
||||
Chest chest = (Chest) b.getRelative(BlockFace.UP).getState();
|
||||
Block chestBlock = b.getRelative(BlockFace.UP);
|
||||
|
||||
if(!(BlockStorage.check(chestBlock.getRelative(BlockFace.WEST), "SOLAR_PANEL") && BlockStorage.check(chestBlock.getRelative(BlockFace.EAST), "SOLAR_PANEL")) &&
|
||||
!(BlockStorage.check(chestBlock.getRelative(BlockFace.NORTH), "SOLAR_PANEL") && BlockStorage.check(chestBlock.getRelative(BlockFace.SOUTH), "SOLAR_PANEL"))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Chest chest = (Chest) chestBlock.getState();
|
||||
final Inventory inv = chest.getInventory();
|
||||
List<Location> ores = new ArrayList<Location>();
|
||||
for (int x = b.getX() - 6; x < b.getX() + 6; x++) {
|
||||
@ -2126,7 +2146,7 @@ public class SlimefunSetup {
|
||||
if (e.getClickedBlock() != null) {
|
||||
SlimefunItem machine = BlockStorage.check(e.getClickedBlock());
|
||||
if (machine != null && machine.getID().equals("COMPOSTER")) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
|
||||
final ItemStack input = p.getInventory().getItemInMainHand();
|
||||
final Block b = e.getClickedBlock();
|
||||
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
|
||||
@ -2305,7 +2325,7 @@ public class SlimefunSetup {
|
||||
@Override
|
||||
public boolean onInteract(final Player p, MultiBlock mb, final Block b) {
|
||||
if (mb.isMultiBlock(SlimefunItem.getByID("AUTOMATED_PANNING_MACHINE"))) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
final ItemStack input = p.getInventory().getItemInMainHand();
|
||||
ItemStack output = null;
|
||||
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.SIFTED_ORE"))) output = SlimefunItems.SIFTED_ORE;
|
||||
@ -2448,7 +2468,7 @@ public class SlimefunSetup {
|
||||
if (e.getClickedBlock() != null) {
|
||||
SlimefunItem machine = BlockStorage.check(e.getClickedBlock());
|
||||
if (machine != null && machine.getID().equals("CRUCIBLE")) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
|
||||
final ItemStack input = p.getInventory().getItemInMainHand();
|
||||
final Block block = e.getClickedBlock().getRelative(BlockFace.UP);
|
||||
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
|
||||
@ -2809,7 +2829,7 @@ public class SlimefunSetup {
|
||||
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("JUICER");
|
||||
|
||||
if (mb.isMultiBlock(machine)) {
|
||||
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
|
||||
if (Slimefun.hasUnlocked(p, SlimefunItems.JUICER, true)) {
|
||||
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
|
||||
Inventory inv = disp.getInventory();
|
||||
@ -3998,10 +4018,10 @@ public class SlimefunSetup {
|
||||
public void tick(Block b, SlimefunItem item, Config data) {
|
||||
int charge = ChargableBlock.getCharge(b);
|
||||
if (charge > 0) {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(b, UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.ONLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(b, UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.ONLINE);
|
||||
ChargableBlock.setCharge(b, charge - 1);
|
||||
}
|
||||
else Slimefun.getGPSNetwork().updateTransmitter(b, UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE);
|
||||
else Slimefun.getGPSNetwork().updateTransmitter(b, UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -4023,7 +4043,7 @@ public class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(b, UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(b, UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
@ -4036,11 +4056,11 @@ public class SlimefunSetup {
|
||||
public void tick(Block b, SlimefunItem item, Config data) {
|
||||
int charge = ChargableBlock.getCharge(b);
|
||||
if (charge > 2) {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4 + 100, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.ONLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4 + 100, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.ONLINE);
|
||||
ChargableBlock.setCharge(b, charge - 3);
|
||||
}
|
||||
else {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4 + 100, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4 + 100, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4063,7 +4083,7 @@ public class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4 + 100, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4 + 100, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
@ -4076,11 +4096,11 @@ public class SlimefunSetup {
|
||||
public void tick(Block b, SlimefunItem item, Config data) {
|
||||
int charge = ChargableBlock.getCharge(b);
|
||||
if (charge > 10) {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16 + 500, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.ONLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16 + 500, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.ONLINE);
|
||||
ChargableBlock.setCharge(b, charge - 11);
|
||||
}
|
||||
else {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16 + 500, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16 + 500, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4103,7 +4123,7 @@ public class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16 + 500, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16 + 500, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
@ -4116,11 +4136,11 @@ public class SlimefunSetup {
|
||||
public void tick(Block b, SlimefunItem item, Config data) {
|
||||
int charge = ChargableBlock.getCharge(b);
|
||||
if (charge > 45) {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64 + 800, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.ONLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64 + 800, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.ONLINE);
|
||||
ChargableBlock.setCharge(b, charge - 46);
|
||||
}
|
||||
else {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64 + 800, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64 + 800, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4143,7 +4163,7 @@ public class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) {
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64 + 800, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE);
|
||||
Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64 + 800, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
@ -4717,7 +4737,7 @@ public class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public void onInteract(final Player p, final Block b) throws Exception {
|
||||
GPSNetwork.openTeleporterGUI(p, UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), b, Slimefun.getGPSNetwork().getNetworkComplexity(UUID.fromString(BlockStorage.getBlockInfo(b, "owner"))));
|
||||
GPSNetwork.openTeleporterGUI(p, UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), b, Slimefun.getGPSNetwork().getNetworkComplexity(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner"))));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -399,25 +399,25 @@ public class SlimefunGuide {
|
||||
actions.add(null);
|
||||
}
|
||||
}
|
||||
texts.add("&8\u21E8 &6Tier " + tier);
|
||||
texts.add(ChatColor.translateAlternateColorCodes('&', "&8\u21E8 &6Tier " + tier));
|
||||
tooltips.add(null);
|
||||
actions.add(null);
|
||||
}
|
||||
if (category instanceof LockedCategory && !((LockedCategory) category).hasUnlocked(p)) {
|
||||
StringBuilder parents = new StringBuilder("&4&lLOCKED\n\n&7In order to unlock this Category,\n&7you need to unlock all Items from\n&7the following Categories first:\n");
|
||||
StringBuilder parents = new StringBuilder(ChatColor.translateAlternateColorCodes('&', "&4&lLOCKED\n\n&7In order to unlock this Category,\n&7you need to unlock all Items from\n&7the following Categories first:\n"));
|
||||
|
||||
for (Category parent: ((LockedCategory) category).getParents()) {
|
||||
parents.append("\n&c" + StringUtils.formatItemName(parent.getItem(), false));
|
||||
parents.append(ChatColor.translateAlternateColorCodes('&', "\n&c" + StringUtils.formatItemName(parent.getItem(), false)));
|
||||
}
|
||||
|
||||
texts.add(shorten("&c" , StringUtils.formatItemName(category.getItem(), false)));
|
||||
texts.add(ChatColor.translateAlternateColorCodes('&', shorten("&c" , StringUtils.formatItemName(category.getItem(), false))));
|
||||
tooltips.add(parents.toString());
|
||||
actions.add(null);
|
||||
}
|
||||
else if (category instanceof SeasonCategory) {
|
||||
if (((SeasonCategory) category).isUnlocked()) {
|
||||
texts.add(shorten("&a", StringUtils.formatItemName(category.getItem(), false)));
|
||||
tooltips.add("&eClick to open the following Category:\n" + StringUtils.formatItemName(category.getItem(), false));
|
||||
texts.add(ChatColor.translateAlternateColorCodes('&', shorten("&a", StringUtils.formatItemName(category.getItem(), false))));
|
||||
tooltips.add(ChatColor.translateAlternateColorCodes('&', "&eClick to open the following Category:\n" + StringUtils.formatItemName(category.getItem(), false)));
|
||||
actions.add(new PlayerRunnable(1) {
|
||||
|
||||
@Override
|
||||
@ -434,8 +434,8 @@ public class SlimefunGuide {
|
||||
}
|
||||
}
|
||||
else {
|
||||
texts.add(shorten("&a", StringUtils.formatItemName(category.getItem(), false)));
|
||||
tooltips.add("&eClick to open the following Category:\n" + StringUtils.formatItemName(category.getItem(), false));
|
||||
texts.add(ChatColor.translateAlternateColorCodes('&', shorten("&a", StringUtils.formatItemName(category.getItem(), false))));
|
||||
tooltips.add(ChatColor.translateAlternateColorCodes('&', "&eClick to open the following Category:\n" + StringUtils.formatItemName(category.getItem(), false)));
|
||||
actions.add(new PlayerRunnable(1) {
|
||||
|
||||
@Override
|
||||
@ -468,7 +468,7 @@ public class SlimefunGuide {
|
||||
|
||||
for (int i = 0; i < texts.size(); i = i + 10) {
|
||||
TellRawMessage page = new TellRawMessage();
|
||||
page.addText("&b&l- Slimefun Guide -\n\n");
|
||||
page.addText(ChatColor.translateAlternateColorCodes('&', "&b&l- Slimefun Guide -\n\n"));
|
||||
for (int j = i; j < texts.size() && j < i + 10; j++) {
|
||||
page.addText(texts.get(j) + "\n");
|
||||
if (tooltips.get(j) != null) page.addHoverEvent(HoverAction.SHOW_TEXT, tooltips.get(j));
|
||||
@ -476,15 +476,15 @@ public class SlimefunGuide {
|
||||
}
|
||||
// page.addText("\n");
|
||||
// if (i > 0) {
|
||||
// page.addText("&c<- Prev");
|
||||
// page.addHoverEvent(HoverAction.SHOW_TEXT, "&eGo to Page " + (i));
|
||||
// page.addText(ChatColor.translateAlternateColorCodes('&', "&c<- Prev"));
|
||||
// page.addHoverEvent(HoverAction.SHOW_TEXT, ChatColor.translateAlternateColorCodes('&', "&eGo to Page " + (i)));
|
||||
// page.addClickEvent(me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.ClickAction.CHANGE_PAGE, String.valueOf(i));
|
||||
// page.addText(" ");
|
||||
// }
|
||||
// if (texts.size() > i * 10) {
|
||||
// page.addText(" ");
|
||||
// page.addText("&cNext ->");
|
||||
// page.addHoverEvent(HoverAction.SHOW_TEXT, "&eGo to Page " + (i + 2));
|
||||
// page.addText(ChatColor.translateAlternateColorCodes('&', "&cNext ->"));
|
||||
// page.addHoverEvent(HoverAction.SHOW_TEXT, ChatColor.translateAlternateColorCodes('&', "&eGo to Page " + (i + 2)));
|
||||
// page.addClickEvent(me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.ClickAction.CHANGE_PAGE, String.valueOf(i + 2));
|
||||
// }
|
||||
pages.add(page);
|
||||
@ -604,8 +604,8 @@ public class SlimefunGuide {
|
||||
else {
|
||||
List<String> parents = new ArrayList<String>();
|
||||
parents.add("");
|
||||
parents.add("&rYou need to unlock all Items");
|
||||
parents.add("&rfrom the following Categories first:");
|
||||
parents.add(ChatColor.translateAlternateColorCodes('&', "&rYou need to unlock all Items"));
|
||||
parents.add(ChatColor.translateAlternateColorCodes('&', "&rfrom the following Categories first:"));
|
||||
parents.add("");
|
||||
for (Category parent: ((LockedCategory) category).getParents()) {
|
||||
parents.add(parent.getItem().getItemMeta().getDisplayName());
|
||||
@ -674,8 +674,8 @@ public class SlimefunGuide {
|
||||
if (survival && !Slimefun.hasUnlocked(p, item, false) && item.getResearch() != null) {
|
||||
final Research research = item.getResearch();
|
||||
|
||||
texts.add(shorten("&7", StringUtils.formatItemName(item.getItem(), false)));
|
||||
tooltips.add(StringUtils.formatItemName(item.getItem(), false) + "\n&c&lLOCKED\n\n&7Cost: " + (p.getLevel() >= research.getCost() ? "&b": "&4") + research.getCost() + " Levels\n\n&a> Click to unlock");
|
||||
texts.add(ChatColor.translateAlternateColorCodes('&', shorten("&7", StringUtils.formatItemName(item.getItem(), false))));
|
||||
tooltips.add(ChatColor.translateAlternateColorCodes('&', StringUtils.formatItemName(item.getItem(), false) + "\n&c&lLOCKED\n\n&7Cost: " + (p.getLevel() >= research.getCost() ? "&b": "&4") + research.getCost() + " Levels\n\n&a> Click to unlock"));
|
||||
actions.add(new PlayerRunnable(2) {
|
||||
|
||||
@Override
|
||||
@ -715,7 +715,7 @@ public class SlimefunGuide {
|
||||
});
|
||||
}
|
||||
else {
|
||||
texts.add(shorten("&a", StringUtils.formatItemName(item.getItem(), false)));
|
||||
texts.add(ChatColor.translateAlternateColorCodes('&', shorten("&a", StringUtils.formatItemName(item.getItem(), false))));
|
||||
|
||||
StringBuilder tooltip = new StringBuilder();
|
||||
|
||||
@ -727,7 +727,7 @@ public class SlimefunGuide {
|
||||
}
|
||||
}
|
||||
|
||||
tooltip.append("\n\n&e&oClick for more Info");
|
||||
tooltip.append(ChatColor.translateAlternateColorCodes('&', "\n\n&e&oClick for more Info"));
|
||||
|
||||
tooltips.add(tooltip.toString());
|
||||
actions.add(new PlayerRunnable(2) {
|
||||
@ -741,23 +741,23 @@ public class SlimefunGuide {
|
||||
}
|
||||
}
|
||||
else {
|
||||
texts.add(shorten("&4", StringUtils.formatItemName(item.getItem(), false)));
|
||||
tooltips.add("&cNo Permission!");
|
||||
texts.add(ChatColor.translateAlternateColorCodes('&', shorten("&4", StringUtils.formatItemName(item.getItem(), false))));
|
||||
tooltips.add(ChatColor.translateAlternateColorCodes('&', "&cNo Permission!"));
|
||||
actions.add(null);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < texts.size(); i = i + 10) {
|
||||
TellRawMessage page = new TellRawMessage();
|
||||
page.addText("&b&l- Slimefun Guide -\n\n");
|
||||
page.addText(ChatColor.translateAlternateColorCodes('&', "&b&l- Slimefun Guide -\n\n"));
|
||||
for (int j = i; j < texts.size() && j < i + 10; j++) {
|
||||
page.addText(texts.get(j) + "\n");
|
||||
if (tooltips.get(j) != null) page.addHoverEvent(HoverAction.SHOW_TEXT, tooltips.get(j));
|
||||
if (actions.get(j) != null) page.addClickEvent(actions.get(j));
|
||||
}
|
||||
page.addText("\n");
|
||||
page.addText("&6\u21E6 &lBack");
|
||||
page.addHoverEvent(HoverAction.SHOW_TEXT, "&eClick to go back to the Category Overview");
|
||||
page.addText(ChatColor.translateAlternateColorCodes('&', "&6\u21E6 &lBack"));
|
||||
page.addHoverEvent(HoverAction.SHOW_TEXT, ChatColor.translateAlternateColorCodes('&', "&eClick to go back to the Category Overview"));
|
||||
page.addClickEvent(new PlayerRunnable(2) {
|
||||
|
||||
@Override
|
||||
@ -984,7 +984,7 @@ public class SlimefunGuide {
|
||||
if (sfItem != null) {
|
||||
recipe = sfItem.getRecipe();
|
||||
recipeType = sfItem.getRecipeType().toItem();
|
||||
recipeOutput = sfItem.getCustomOutput() != null ? sfItem.getCustomOutput(): sfItem.getItem();
|
||||
recipeOutput = sfItem.getRecipeOutput() != null ? sfItem.getRecipeOutput(): sfItem.getItem();
|
||||
}
|
||||
else {
|
||||
List<Recipe> recipes = new ArrayList<Recipe>();
|
||||
@ -1118,7 +1118,7 @@ public class SlimefunGuide {
|
||||
});
|
||||
|
||||
if (sfItem != null) {
|
||||
if (Slimefun.getItemConfig().contains(sfItem.getName() + ".wiki")) {
|
||||
if (Slimefun.getItemConfig().contains(sfItem.getID() + ".wiki")) {
|
||||
try {
|
||||
menu.addItem(8, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzY2OTJmOTljYzZkNzgyNDIzMDQxMTA1NTM1ODk0ODQyOThiMmU0YTAyMzNiNzY3NTNmODg4ZTIwN2VmNSJ9fX0="), "&rView this Item in our Wiki &7(Slimefun Wiki)", "", "&7\u21E8 Click to open"));
|
||||
menu.addMenuClickHandler(8, new MenuClickHandler() {
|
||||
@ -1127,7 +1127,7 @@ public class SlimefunGuide {
|
||||
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
|
||||
p.closeInventory();
|
||||
p.sendMessage("");
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7&o" + Slimefun.getItemConfig().getString(sfItem.getName() + ".wiki")));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7&o" + Slimefun.getItemConfig().getString(sfItem.getID() + ".wiki")));
|
||||
p.sendMessage("");
|
||||
return false;
|
||||
}
|
||||
@ -1136,7 +1136,7 @@ public class SlimefunGuide {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (Slimefun.getItemConfig().contains(sfItem.getName() + ".youtube")) {
|
||||
if (Slimefun.getItemConfig().contains(sfItem.getID() + ".youtube")) {
|
||||
try {
|
||||
menu.addItem(7, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzNTNmZDBmODYzMTQzNTM4NzY1ODYwNzViOWJkZjBjNDg0YWFiMDMzMWI4NzJkZjExYmQ1NjRmY2IwMjllZCJ9fX0="), "&rDemonstration Video &7(Youtube)", "", "&7\u21E8 Click to watch"));
|
||||
menu.addMenuClickHandler(7, new MenuClickHandler() {
|
||||
@ -1145,7 +1145,7 @@ public class SlimefunGuide {
|
||||
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
|
||||
p.closeInventory();
|
||||
p.sendMessage("");
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7&o" + Slimefun.getItemConfig().getString(sfItem.getName() + ".youtube")));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7&o" + Slimefun.getItemConfig().getString(sfItem.getID() + ".youtube")));
|
||||
p.sendMessage("");
|
||||
return false;
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ import me.mrCookieSlime.Slimefun.GitHub.GitHubConnector;
|
||||
import me.mrCookieSlime.Slimefun.GitHub.GitHubSetup;
|
||||
import me.mrCookieSlime.Slimefun.Hashing.ItemHash;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Misc.BookDesign;
|
||||
import me.mrCookieSlime.Slimefun.Objects.MultiBlock;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Research;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunArmorPiece;
|
||||
@ -223,7 +224,9 @@ public class SlimefunStartup extends JavaPlugin {
|
||||
Player p = e.getPlayer();
|
||||
if (!getWhitelist().getBoolean(p.getWorld().getName() + ".enabled")) return;
|
||||
if (!getWhitelist().getBoolean(p.getWorld().getName() + ".enabled-items.SLIMEFUN_GUIDE")) return;
|
||||
p.getInventory().addItem(SlimefunGuide.getItem(config.getBoolean("guide.default-view-book")));
|
||||
|
||||
if (config.getBoolean("guide.default-view-book")) p.getInventory().addItem(SlimefunGuide.getItem(BookDesign.BOOK));
|
||||
else p.getInventory().addItem(SlimefunGuide.getItem(BookDesign.CHEST));
|
||||
}
|
||||
}
|
||||
|
||||
@ -285,7 +288,7 @@ public class SlimefunStartup extends JavaPlugin {
|
||||
Class.forName("com.sk89q.worldedit.extent.Extent");
|
||||
new WESlimefunManager();
|
||||
System.out.println("[Slimefun] Successfully hooked into WorldEdit!");
|
||||
} catch(Exception x) {
|
||||
} catch (Exception x) {
|
||||
System.err.println("[Slimefun] Failed to hook into WorldEdit!");
|
||||
System.err.println("[Slimefun] Maybe consider updating WorldEdit or Slimefun?");
|
||||
}
|
||||
@ -376,7 +379,7 @@ public class SlimefunStartup extends JavaPlugin {
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
exoticGarden = getServer().getPluginManager().isPluginEnabled("ExoticGarden"); //Had to do it this way, otherwise it seems disabled.
|
||||
exoticGarden = getServer().getPluginManager().isPluginEnabled("ExoticGarden"); // Had to do it this way, otherwise it seems disabled.
|
||||
}
|
||||
}, 0);
|
||||
|
||||
@ -416,8 +419,7 @@ public class SlimefunStartup extends JavaPlugin {
|
||||
}
|
||||
|
||||
SlimefunBackup.start();
|
||||
} catch(Exception x) {
|
||||
}
|
||||
} catch (Exception x) {}
|
||||
|
||||
// Prevent Memory Leaks
|
||||
config = null;
|
||||
|
132
src/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.java
Normal file
132
src/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.java
Normal file
@ -0,0 +1,132 @@
|
||||
package me.mrCookieSlime.Slimefun.api;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||
|
||||
public class BlockInfoConfig extends Config {
|
||||
private Map<String, String> data;
|
||||
public BlockInfoConfig() {
|
||||
this(new HashMap<>());
|
||||
}
|
||||
public BlockInfoConfig(Map<String, String> data) {
|
||||
super((File)null,(FileConfiguration)null);
|
||||
this.data=data;
|
||||
}
|
||||
public Map<String, String> getMap(){
|
||||
return data;
|
||||
}
|
||||
@Override
|
||||
protected void store(String path, Object value) {
|
||||
if (value != null && !(value instanceof String)) {
|
||||
throw new UnsupportedOperationException("Can't set \""+path+"\" to \""+value+"\" (type: "+value.getClass().getSimpleName()+") because BlockInfoConfig only supports Strings");
|
||||
}
|
||||
checkPath(path);
|
||||
if (value == null) {
|
||||
data.remove(path);
|
||||
} else {
|
||||
data.put(path, (String) value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void checkPath(String path) {
|
||||
if (path.contains(".")) {
|
||||
throw new UnsupportedOperationException("BlockInfoConfig only supports Map<String,String> (path: " + path+")");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean contains(String path) {
|
||||
checkPath(path);
|
||||
return data.containsKey(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getValue(String path) {
|
||||
checkPath(path);
|
||||
return data.get(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getString(String path) {
|
||||
checkPath(path);
|
||||
return data.get(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getKeys() {
|
||||
return data.keySet();
|
||||
}
|
||||
|
||||
private UnsupportedOperationException invalidType(String path) {
|
||||
return new UnsupportedOperationException("Can't get \""+path+"\" because BlockInfoConfig only supports String values");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInt(String path) {
|
||||
throw invalidType(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getBoolean(String path) {
|
||||
throw invalidType(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getStringList(String path) {
|
||||
throw invalidType(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Integer> getIntList(String path) {
|
||||
throw invalidType(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getDouble(String path) {
|
||||
throw invalidType(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getKeys(String path) {
|
||||
throw invalidType(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getFile() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileConfiguration getConfiguration() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(File file) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createFile() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reload() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
}
|
@ -39,7 +39,7 @@ public class BlockStorage {
|
||||
|
||||
private World world;
|
||||
|
||||
private Map<Location, String> storage = new HashMap<Location, String>();
|
||||
private Map<Location, Config> storage = new HashMap<>();
|
||||
private static Map<String, String> map_chunks = new HashMap<String, String>();
|
||||
|
||||
private Map<Location, BlockMenu> inventories = new HashMap<Location, BlockMenu>();
|
||||
@ -73,7 +73,7 @@ public class BlockStorage {
|
||||
try {
|
||||
World w = Bukkit.getWorld(l.split(";")[0]);
|
||||
if (w != null) return new Location(w, Integer.parseInt(l.split(";")[1]), Integer.parseInt(l.split(";")[2]), Integer.parseInt(l.split(";")[3]));
|
||||
} catch(NumberFormatException x) {
|
||||
} catch (NumberFormatException x) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -103,7 +103,10 @@ public class BlockStorage {
|
||||
String chunk_string = locationToChunkString(l);
|
||||
try {
|
||||
totalBlocks++;
|
||||
storage.put(l, cfg.getString(key));
|
||||
String json = cfg.getString(key);
|
||||
Config blockInfo = parseBlockInfo(l, json);
|
||||
if (blockInfo == null) continue;
|
||||
storage.put(l, blockInfo);
|
||||
|
||||
if (SlimefunItem.isTicking(file.getName().replace(".sfb", ""))) {
|
||||
Set<Location> locations = ticking_chunks.containsKey(chunk_string) ? ticking_chunks.get(chunk_string): new HashSet<Location>();
|
||||
@ -111,7 +114,7 @@ public class BlockStorage {
|
||||
ticking_chunks.put(chunk_string, locations);
|
||||
if (!loaded_tickers.contains(chunk_string)) loaded_tickers.add(chunk_string);
|
||||
}
|
||||
} catch(Exception x) {
|
||||
} catch (Exception x) {
|
||||
System.err.println("[Slimefun] Failed to load " + file.getName() + "(ERR: " + key + ")");
|
||||
x.printStackTrace();
|
||||
}
|
||||
@ -134,7 +137,7 @@ public class BlockStorage {
|
||||
for (String key: cfg.getKeys(false)) {
|
||||
try {
|
||||
if (world.getName().equals(key.split(";")[0])) map_chunks.put(key, cfg.getString(key));
|
||||
} catch(Exception x) {
|
||||
} catch (Exception x) {
|
||||
System.err.println("[Slimefun] Failed to load " + chunks.getName() + " for World \"" + world.getName() + "\" (ERR: " + key + ")");
|
||||
x.printStackTrace();
|
||||
}
|
||||
@ -157,7 +160,7 @@ public class BlockStorage {
|
||||
inventories.put(l, new BlockMenu(preset, l, cfg));
|
||||
}
|
||||
}
|
||||
catch(Exception x) {
|
||||
catch (Exception x) {
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -264,7 +267,7 @@ public class BlockStorage {
|
||||
public static ItemStack retrieve(Block block) {
|
||||
if (!hasBlockInfo(block)) return null;
|
||||
else {
|
||||
final SlimefunItem item = SlimefunItem.getByID(getBlockInfo(block, "id"));
|
||||
final SlimefunItem item = SlimefunItem.getByID(getLocationInfo(block.getLocation(), "id"));
|
||||
clearBlockInfo(block);
|
||||
if (item == null) return null;
|
||||
else return item.getItem();
|
||||
@ -282,30 +285,9 @@ public class BlockStorage {
|
||||
}
|
||||
|
||||
public static Config getLocationInfo(Location l) {
|
||||
try {
|
||||
BlockStorage storage = getStorage(l.getWorld());
|
||||
Config cfg = new Config("data-storage/Slimefun/temp.yml");
|
||||
if (!storage.storage.containsKey(l)) return cfg;
|
||||
|
||||
for (Map.Entry<String, String> entry: parseJSON(getJSONData(l)).entrySet()) {
|
||||
cfg.setValue(entry.getKey(), entry.getValue());
|
||||
}
|
||||
|
||||
return cfg;
|
||||
} catch(Exception x) {
|
||||
System.err.println(x.getClass().getName());
|
||||
System.err.println("[Slimefun] Failed to parse BlockInfo for Block @ " + l.getBlockX() + ", " + l.getBlockY() + ", " + l.getBlockZ());
|
||||
try {
|
||||
System.err.println(getJSONData(l));
|
||||
} catch (Exception x2) {
|
||||
System.err.println("No Metadata found!");
|
||||
}
|
||||
System.err.println("[Slimefun] ");
|
||||
System.err.println("[Slimefun] IGNORE THIS ERROR UNLESS IT IS SPAMMING");
|
||||
System.err.println("[Slimefun] ");
|
||||
x.printStackTrace();
|
||||
return new Config("data-storage/Slimefun/temp.yml");
|
||||
}
|
||||
Config cfg = storage.storage.get(l);
|
||||
return cfg == null ? new BlockInfoConfig() : cfg;
|
||||
}
|
||||
|
||||
private static Map<String, String> parseJSON(String json) {
|
||||
@ -328,18 +310,36 @@ public class BlockStorage {
|
||||
return map;
|
||||
}
|
||||
|
||||
private static String getJSONData(Location l) {
|
||||
BlockStorage storage = getStorage(l.getWorld());
|
||||
return storage.storage.get(l);
|
||||
private static BlockInfoConfig parseBlockInfo(Location l, String json){
|
||||
try {
|
||||
return new BlockInfoConfig(parseJSON(json));
|
||||
} catch(Exception x) {
|
||||
System.err.println(x.getClass().getName());
|
||||
System.err.println("[Slimefun] Failed to parse BlockInfo for Block @ " + l.getBlockX() + ", " + l.getBlockY() + ", " + l.getBlockZ());
|
||||
System.err.println(json);
|
||||
System.err.println("[Slimefun] ");
|
||||
System.err.println("[Slimefun] IGNORE THIS ERROR UNLESS IT IS SPAMMING");
|
||||
System.err.println("[Slimefun] ");
|
||||
x.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static String serializeBlockInfo(Config cfg) {
|
||||
JSONObject json = new JSONObject();
|
||||
for (String key: cfg.getKeys()) {
|
||||
json.put(key, cfg.getString(key));
|
||||
}
|
||||
return json.toJSONString();
|
||||
}
|
||||
|
||||
private static String getJSONData(Chunk chunk) {
|
||||
return map_chunks.get(serializeChunk(chunk));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static String getBlockInfo(Block block, String key) {
|
||||
return getBlockInfo(block.getLocation(), key);
|
||||
return getLocationInfo(block.getLocation(), key);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@ -348,7 +348,7 @@ public class BlockStorage {
|
||||
}
|
||||
|
||||
public static String getLocationInfo(Location l, String key) {
|
||||
return parseJSON(getJSONData(l)).get(key);
|
||||
return getBlockInfo(l).getString(key);
|
||||
}
|
||||
|
||||
public static void addBlockInfo(Location l, String key, String value) {
|
||||
@ -364,8 +364,7 @@ public class BlockStorage {
|
||||
}
|
||||
|
||||
public static void addBlockInfo(Location l, String key, String value, boolean updateTicker) {
|
||||
Config cfg = new Config("data-storage/Slimefun/temp.yml");
|
||||
if (hasBlockInfo(l)) cfg = getBlockInfo(l);
|
||||
Config cfg = hasBlockInfo(l) ? getLocationInfo(l) : new BlockInfoConfig();
|
||||
cfg.setValue(key, value);
|
||||
setBlockInfo(l, cfg, updateTicker);
|
||||
}
|
||||
@ -376,45 +375,36 @@ public class BlockStorage {
|
||||
|
||||
public static boolean hasBlockInfo(Location l) {
|
||||
BlockStorage storage = getStorage(l.getWorld());
|
||||
return storage != null && storage.storage.containsKey(l) && getBlockInfo(l, "id") != null;
|
||||
return storage != null && storage.storage.containsKey(l) && getLocationInfo(l, "id") != null;
|
||||
}
|
||||
|
||||
|
||||
public static void setBlockInfo(Block block, Config cfg, boolean updateTicker) {
|
||||
setBlockInfo(block.getLocation(), cfg, updateTicker);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
||||
public static void setBlockInfo(Location l, Config cfg, boolean updateTicker) {
|
||||
_integrated_removeBlockInfo(l, false);
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
for (String key: cfg.getKeys()) {
|
||||
json.put(key, cfg.getString(key));
|
||||
}
|
||||
|
||||
setBlockInfo(l, json.toJSONString(), updateTicker);
|
||||
}
|
||||
|
||||
public static void setBlockInfo(Block b, String json, boolean updateTicker) {
|
||||
setBlockInfo(b.getLocation(), json, updateTicker);
|
||||
}
|
||||
|
||||
public static void setBlockInfo(Location l, String json, boolean updateTicker) {
|
||||
BlockStorage storage = getStorage(l.getWorld());
|
||||
storage.storage.put(l, json);
|
||||
Map<String, String> parsed = parseJSON(json);
|
||||
if (BlockMenuPreset.isInventory(parsed.get("id"))) {
|
||||
if (BlockMenuPreset.isUniversalInventory(parsed.get("id"))) {
|
||||
if (!universal_inventories.containsKey(parsed.get("id"))) storage.loadUniversalInventory(BlockMenuPreset.getPreset(parsed.get("id")));
|
||||
storage.storage.put(l, cfg);
|
||||
if (BlockMenuPreset.isInventory(cfg.getString("id"))) {
|
||||
if (BlockMenuPreset.isUniversalInventory(cfg.getString("id"))) {
|
||||
if (!universal_inventories.containsKey(cfg.getString("id"))) storage.loadUniversalInventory(BlockMenuPreset.getPreset(cfg.getString("id")));
|
||||
}
|
||||
else if (!storage.hasInventory(l)) {
|
||||
File file = new File("data-storage/Slimefun/stored-inventories/" + serializeLocation(l) + ".sfi");
|
||||
|
||||
if (file.exists()) storage.inventories.put(l, new BlockMenu(BlockMenuPreset.getPreset(parsed.get("id")), l, new Config(file)));
|
||||
else storage.loadInventory(l, BlockMenuPreset.getPreset(parsed.get("id")));
|
||||
if (file.exists()) storage.inventories.put(l, new BlockMenu(BlockMenuPreset.getPreset(cfg.getString("id")), l, new Config(file)));
|
||||
else storage.loadInventory(l, BlockMenuPreset.getPreset(cfg.getString("id")));
|
||||
}
|
||||
}
|
||||
refreshCache(getStorage(l.getWorld()), l, parsed.get("id"), json, updateTicker);
|
||||
refreshCache(getStorage(l.getWorld()), l, cfg.getString("id"), serializeBlockInfo(cfg), updateTicker);
|
||||
}
|
||||
public static void setBlockInfo(Block b, String json, boolean updateTicker) {
|
||||
setBlockInfo(b.getLocation(), json, updateTicker);
|
||||
}
|
||||
public static void setBlockInfo(Location l, String json, boolean updateTicker) {
|
||||
Config blockInfo = json == null ? new BlockInfoConfig() : parseBlockInfo(l, json);
|
||||
if (blockInfo == null) return;
|
||||
setBlockInfo(l, blockInfo, updateTicker);
|
||||
}
|
||||
|
||||
public static void clearBlockInfo(Block block) {
|
||||
@ -436,7 +426,7 @@ public class BlockStorage {
|
||||
public static void _integrated_removeBlockInfo(Location l, boolean destroy) {
|
||||
BlockStorage storage = getStorage(l.getWorld());
|
||||
if (hasBlockInfo(l)) {
|
||||
refreshCache(storage, l, getBlockInfo(l).getString("id"), null, destroy);
|
||||
refreshCache(storage, l, getLocationInfo(l).getString("id"), null, destroy);
|
||||
storage.storage.remove(l);
|
||||
}
|
||||
|
||||
@ -477,7 +467,7 @@ public class BlockStorage {
|
||||
if (!hasBlockInfo(from)) return;
|
||||
BlockStorage storage = getStorage(from.getWorld());
|
||||
|
||||
setBlockInfo(to, getBlockInfo(from), true);
|
||||
setBlockInfo(to, getLocationInfo(from), true);
|
||||
if (storage.inventories.containsKey(from)) {
|
||||
BlockMenu menu = storage.inventories.get(from);
|
||||
storage.inventories.put(to, menu);
|
||||
@ -485,7 +475,7 @@ public class BlockStorage {
|
||||
menu.move(to);
|
||||
}
|
||||
|
||||
refreshCache(storage, from, getBlockInfo(from).getString("id"), null, true);
|
||||
refreshCache(storage, from, getLocationInfo(from).getString("id"), null, true);
|
||||
storage.storage.remove(from);
|
||||
|
||||
String chunk_string = locationToChunkString(from);
|
||||
@ -500,11 +490,6 @@ public class BlockStorage {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
private static void refreshCache(BlockStorage storage, Block b, String key, String value, boolean updateTicker) {
|
||||
refreshCache(storage, b.getLocation(), key, value, updateTicker);
|
||||
}
|
||||
|
||||
private static void refreshCache(BlockStorage storage, Location l, String key, String value, boolean updateTicker) {
|
||||
Config cfg = storage.cache_blocks.containsKey(key) ? storage.cache_blocks.get(key): new Config(path_blocks + l.getWorld().getName() + "/" + key + ".sfb");
|
||||
cfg.setValue(serializeLocation(l), value);
|
||||
@ -530,7 +515,7 @@ public class BlockStorage {
|
||||
|
||||
public static SlimefunItem check(Location l) {
|
||||
if (!hasBlockInfo(l)) return null;
|
||||
return SlimefunItem.getByID(getBlockInfo(l, "id"));
|
||||
return SlimefunItem.getByID(getLocationInfo(l, "id"));
|
||||
}
|
||||
|
||||
public static String checkID(Block block) {
|
||||
@ -543,16 +528,16 @@ public class BlockStorage {
|
||||
|
||||
public static String checkID(Location l) {
|
||||
if (!hasBlockInfo(l)) return null;
|
||||
return getBlockInfo(l, "id");
|
||||
return getLocationInfo(l, "id");
|
||||
}
|
||||
|
||||
public static boolean check(Location l, String slimefunItem) {
|
||||
if (!hasBlockInfo(l)) return false;
|
||||
try {
|
||||
String id = getBlockInfo(l, "id");
|
||||
String id = getLocationInfo(l, "id");
|
||||
return id != null && id.equalsIgnoreCase(slimefunItem);
|
||||
}
|
||||
catch(NullPointerException x) {
|
||||
catch (NullPointerException x) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -577,7 +562,7 @@ public class BlockStorage {
|
||||
@Deprecated
|
||||
public static Set<Block> getTickingBlocks(String chunk) {
|
||||
Set<Block> ret = new HashSet<Block>();
|
||||
for(Location l: getTickingLocations(chunk)) {
|
||||
for (Location l: getTickingLocations(chunk)) {
|
||||
ret.add(l.getBlock());
|
||||
}
|
||||
return ret;
|
||||
@ -600,7 +585,7 @@ public class BlockStorage {
|
||||
public void clearInventory(Location l) {
|
||||
BlockMenu menu = getInventory(l);
|
||||
|
||||
for(HumanEntity human: new ArrayList<>(menu.toInventory().getViewers())) {
|
||||
for (HumanEntity human: new ArrayList<>(menu.toInventory().getViewers())) {
|
||||
human.closeInventory();
|
||||
}
|
||||
|
||||
@ -654,7 +639,7 @@ public class BlockStorage {
|
||||
}
|
||||
|
||||
return cfg;
|
||||
} catch(Exception x) {
|
||||
} catch (Exception x) {
|
||||
System.err.println(x.getClass().getName());
|
||||
System.err.println("[Slimefun] Failed to parse ChunkInfo for Chunk @ " + chunk.getX() + ", " + chunk.getZ());
|
||||
try {
|
||||
@ -704,7 +689,7 @@ public class BlockStorage {
|
||||
}
|
||||
|
||||
public static String getBlockInfoAsJson(Location l) {
|
||||
return getJSONData(l);
|
||||
return serializeBlockInfo(getLocationInfo(l));
|
||||
}
|
||||
|
||||
public boolean hasUniversalInventory(Block block) {
|
||||
|
@ -79,21 +79,21 @@ public class TickerTask implements Runnable {
|
||||
if (item != null) {
|
||||
machines++;
|
||||
try {
|
||||
item.getTicker().update();
|
||||
if (item.getTicker().isSynchronized()) {
|
||||
item.getBlockTicker().update();
|
||||
if (item.getBlockTicker().isSynchronized()) {
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
long timestamp3 = System.currentTimeMillis();
|
||||
item.getTicker().tick(b, item, BlockStorage.getBlockInfo(l));
|
||||
item.getBlockTicker().tick(b, item, BlockStorage.getLocationInfo(l));
|
||||
|
||||
map_machinetime.put(item.getID(), (map_machinetime.containsKey(item.getID()) ? map_machinetime.get(item.getID()): 0) + (System.currentTimeMillis() - timestamp3));
|
||||
map_chunk.put(c, (map_chunk.containsKey(c) ? map_chunk.get(c): 0) + 1);
|
||||
map_machine.put(item.getID(), (map_machine.containsKey(item.getID()) ? map_machine.get(item.getID()): 0) + 1);
|
||||
block_timings.put(l, System.currentTimeMillis() - timestamp3);
|
||||
} catch(Exception x) {
|
||||
} catch (Exception x) {
|
||||
int errors = 0;
|
||||
if (bugged.containsKey(l)) errors = bugged.get(l);
|
||||
errors++;
|
||||
@ -197,15 +197,15 @@ public class TickerTask implements Runnable {
|
||||
}
|
||||
else {
|
||||
long timestamp3 = System.currentTimeMillis();
|
||||
item.getTicker().tick(b, item, BlockStorage.getBlockInfo(l));
|
||||
item.getBlockTicker().tick(b, item, BlockStorage.getLocationInfo(l));
|
||||
|
||||
map_machinetime.put(item.getID(), (map_machinetime.containsKey(item.getID()) ? map_machinetime.get(item.getID()): 0) + (System.currentTimeMillis() - timestamp3));
|
||||
map_chunk.put(c, (map_chunk.containsKey(c) ? map_chunk.get(c): 0) + 1);
|
||||
map_machine.put(item.getID(), (map_machine.containsKey(item.getID()) ? map_machine.get(item.getID()): 0) + 1);
|
||||
block_timings.put(l, System.currentTimeMillis() - timestamp3);
|
||||
}
|
||||
tickers.add(item.getTicker());
|
||||
} catch(Exception x) {
|
||||
tickers.add(item.getBlockTicker());
|
||||
} catch (Exception x) {
|
||||
|
||||
int errors = 0;
|
||||
if (bugged.containsKey(l)) errors = bugged.get(l);
|
||||
|
@ -71,7 +71,7 @@ public class ChargableBlock {
|
||||
}
|
||||
|
||||
public static int getCharge(Location l) {
|
||||
String charge = BlockStorage.getBlockInfo(l, "energy-charge");
|
||||
String charge = BlockStorage.getLocationInfo(l, "energy-charge");
|
||||
if (charge != null) return Integer.parseInt(charge);
|
||||
else {
|
||||
BlockStorage.addBlockInfo(l, "energy-charge", "0", false);
|
||||
@ -173,7 +173,7 @@ public class ChargableBlock {
|
||||
}
|
||||
|
||||
public static int getMaxCharge(Location l) {
|
||||
Config cfg = BlockStorage.getBlockInfo(l);
|
||||
Config cfg = BlockStorage.getLocationInfo(l);
|
||||
if (!cfg.contains("id")) {
|
||||
BlockStorage.clearBlockInfo(l);
|
||||
return 0;
|
||||
|
@ -11,7 +11,6 @@ import me.mrCookieSlime.Slimefun.SlimefunStartup;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.TickerTask;
|
||||
import me.mrCookieSlime.Slimefun.api.network.Network;
|
||||
import me.mrCookieSlime.Slimefun.holograms.EnergyHologram;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
@ -77,7 +76,7 @@ public class EnergyNet extends Network {
|
||||
|
||||
public static EnergyNet getNetworkFromLocationOrCreate(Location l) {
|
||||
EnergyNet energy_network = getNetworkFromLocation(l);
|
||||
if(energy_network == null) {
|
||||
if (energy_network == null) {
|
||||
energy_network = new EnergyNet(l);
|
||||
registerNetwork(energy_network);
|
||||
}
|
||||
@ -97,8 +96,8 @@ public class EnergyNet extends Network {
|
||||
}
|
||||
|
||||
public Network.Component classifyLocation(Location l) {
|
||||
if(regulator.equals(l)) return Network.Component.REGULATOR;
|
||||
switch(getComponent(l)) {
|
||||
if (regulator.equals(l)) return Network.Component.REGULATOR;
|
||||
switch (getComponent(l)) {
|
||||
case DISTRIBUTOR:
|
||||
return Network.Component.CONNECTOR;
|
||||
case CONSUMER:
|
||||
@ -110,11 +109,11 @@ public class EnergyNet extends Network {
|
||||
}
|
||||
|
||||
public void locationClassificationChange(Location l, Network.Component from, Network.Component to) {
|
||||
if(from == Network.Component.TERMINUS) {
|
||||
if (from == Network.Component.TERMINUS) {
|
||||
input.remove(l);
|
||||
output.remove(l);
|
||||
}
|
||||
switch(getComponent(l)) {
|
||||
switch (getComponent(l)) {
|
||||
case DISTRIBUTOR:
|
||||
if (ChargableBlock.isCapacitor(l)) storage.add(l);
|
||||
break;
|
||||
@ -124,11 +123,13 @@ public class EnergyNet extends Network {
|
||||
case SOURCE:
|
||||
input.add(l);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void tick(Block b) {
|
||||
if(!regulator.equals(b.getLocation())) {
|
||||
if (!regulator.equals(b.getLocation())) {
|
||||
EnergyHologram.update(b, "&4Multiple Energy Regulators connected");
|
||||
return;
|
||||
}
|
||||
@ -143,7 +144,7 @@ public class EnergyNet extends Network {
|
||||
for (final Location source: input) {
|
||||
long timestamp = System.currentTimeMillis();
|
||||
SlimefunItem item = BlockStorage.check(source);
|
||||
double energy = item.getEnergyTicker().generateEnergy(source, item, BlockStorage.getBlockInfo(source));
|
||||
double energy = item.getEnergyTicker().generateEnergy(source, item, BlockStorage.getLocationInfo(source));
|
||||
|
||||
if (item.getEnergyTicker().explode(source)) {
|
||||
BlockStorage.clearBlockInfo(source);
|
||||
|
@ -195,7 +195,7 @@ public class CargoManager {
|
||||
String id = BlockStorage.checkID(block);
|
||||
if (id.equals("CARGO_NODE_OUTPUT")) return true;
|
||||
|
||||
Config blockInfo = BlockStorage.getBlockInfo(block); // Store the returned Config instance to avoid heavy calls
|
||||
Config blockInfo = BlockStorage.getLocationInfo(block.getLocation()); // Store the returned Config instance to avoid heavy calls
|
||||
|
||||
BlockMenu menu = BlockStorage.getInventory(block.getLocation());
|
||||
boolean lore = blockInfo.getString("filter-lore").equals("true");
|
||||
|
@ -26,7 +26,6 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHan
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Math.DoubleHandler;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Particles.MC_1_8.ParticleEffect;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunStartup;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager.DataType;
|
||||
@ -46,7 +45,7 @@ public class CargoNet extends Network {
|
||||
|
||||
private static int[] slots = new int[] {19, 20, 21, 28, 29, 30, 37, 38, 39};
|
||||
|
||||
//Chest Terminal Stuff
|
||||
// Chest Terminal Stuff
|
||||
private static final ChestTerminalSorter sorter = new ChestTerminalSorter();
|
||||
public static final int[] terminal_slots = new int[] {0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42};
|
||||
private static final ItemStack terminal_noitem_item = new CustomItem(new MaterialData(Material.BARRIER), "&4No Item cached");
|
||||
@ -64,7 +63,7 @@ public class CargoNet extends Network {
|
||||
|
||||
public static CargoNet getNetworkFromLocationOrCreate(Location l) {
|
||||
CargoNet cargo_network = getNetworkFromLocation(l);
|
||||
if(cargo_network == null) {
|
||||
if (cargo_network == null) {
|
||||
cargo_network = new CargoNet(l);
|
||||
registerNetwork(cargo_network);
|
||||
}
|
||||
@ -96,7 +95,7 @@ public class CargoNet extends Network {
|
||||
|
||||
public Network.Component classifyLocation(Location l) {
|
||||
String id = BlockStorage.checkID(l);
|
||||
if(id == null) return null;
|
||||
if (id == null) return null;
|
||||
switch(id) {
|
||||
case "CARGO_MANAGER":
|
||||
return Component.REGULATOR;
|
||||
@ -115,7 +114,7 @@ public class CargoNet extends Network {
|
||||
}
|
||||
|
||||
public void locationClassificationChange(Location l, Component from, Component to) {
|
||||
if(from == Component.TERMINUS) {
|
||||
if (from == Component.TERMINUS) {
|
||||
inputNodes.remove(l);
|
||||
outputNodes.remove(l);
|
||||
advancedOutputNodes.remove(l);
|
||||
@ -123,7 +122,7 @@ public class CargoNet extends Network {
|
||||
imports.remove(l);
|
||||
exports.remove(l);
|
||||
}
|
||||
if(to == Component.TERMINUS) {
|
||||
if (to == Component.TERMINUS) {
|
||||
switch(BlockStorage.checkID(l)) {
|
||||
case "CARGO_NODE_INPUT":
|
||||
inputNodes.add(l);
|
||||
@ -148,7 +147,7 @@ public class CargoNet extends Network {
|
||||
}
|
||||
|
||||
public void tick(final Block b) {
|
||||
if(!regulator.equals(b.getLocation())) {
|
||||
if (!regulator.equals(b.getLocation())) {
|
||||
CargoHologram.update(b, "&4Multiple Cargo Regulators connected");
|
||||
return;
|
||||
}
|
||||
@ -164,16 +163,16 @@ public class CargoNet extends Network {
|
||||
final Map<Integer, List<Location>> output = new HashMap<Integer, List<Location>>();
|
||||
|
||||
|
||||
for(Location outputNode: outputNodes) {
|
||||
for (Location outputNode: outputNodes) {
|
||||
Integer frequency = getFrequency(outputNode);
|
||||
if(!output.containsKey(frequency)) {
|
||||
if (!output.containsKey(frequency)) {
|
||||
output.put(frequency, new ArrayList<Location>());
|
||||
}
|
||||
output.get(frequency).add(outputNode);
|
||||
}
|
||||
for(Location outputNode: advancedOutputNodes) {
|
||||
for (Location outputNode: advancedOutputNodes) {
|
||||
Integer frequency = getFrequency(outputNode);
|
||||
if(!output.containsKey(frequency)) {
|
||||
if (!output.containsKey(frequency)) {
|
||||
output.put(frequency, new ArrayList<Location>());
|
||||
}
|
||||
output.get(frequency).add(outputNode);
|
||||
@ -182,14 +181,14 @@ public class CargoNet extends Network {
|
||||
//Chest Terminal Stuff
|
||||
final Set<Location> providers = new HashSet<Location>();
|
||||
final Set<Location> destinations;
|
||||
if(output.containsKey(16)) {
|
||||
if (output.containsKey(16)) {
|
||||
destinations = new HashSet<Location>(output.get(16));
|
||||
} else {
|
||||
destinations = new HashSet<Location>();
|
||||
}
|
||||
for(Location inputNode: inputNodes) {
|
||||
for (Location inputNode: inputNodes) {
|
||||
int frequency = getFrequency(inputNode);
|
||||
if(frequency == 16) {
|
||||
if (frequency == 16) {
|
||||
providers.add(inputNode);
|
||||
}
|
||||
}
|
||||
@ -200,7 +199,7 @@ public class CargoNet extends Network {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (BlockStorage.getBlockInfo(b, "visualizer") == null) {
|
||||
if (BlockStorage.getLocationInfo(b.getLocation(), "visualizer") == null) {
|
||||
self.display();
|
||||
}
|
||||
//Chest Terminal Code
|
||||
@ -239,7 +238,7 @@ public class CargoNet extends Network {
|
||||
}
|
||||
|
||||
if (!items.isEmpty()) {
|
||||
int index = Integer.parseInt(BlockStorage.getBlockInfo(bus, "index"));
|
||||
int index = Integer.parseInt(BlockStorage.getLocationInfo(bus, "index"));
|
||||
|
||||
index++;
|
||||
if (index > (items.size() - 1)) index = 0;
|
||||
@ -325,20 +324,20 @@ public class CargoNet extends Network {
|
||||
}
|
||||
}
|
||||
}
|
||||
//All operations happen here: Everything gets iterated from the Input Nodes. (Apart from ChestTerminal Buses)
|
||||
// All operations happen here: Everything gets iterated from the Input Nodes. (Apart from ChestTerminal Buses)
|
||||
for (Location input: inputNodes) {
|
||||
Integer frequency = getFrequency(input);
|
||||
if(frequency < 0 || frequency > 15) {
|
||||
if (frequency < 0 || frequency > 15) {
|
||||
continue;
|
||||
}
|
||||
Block inputTarget = getAttachedBlock(input.getBlock());
|
||||
ItemStack stack = null;
|
||||
int previousSlot = -1;
|
||||
|
||||
boolean roundrobin = BlockStorage.getBlockInfo(input, "round-robin").equals("true");
|
||||
boolean roundrobin = BlockStorage.getLocationInfo(input, "round-robin").equals("true");
|
||||
|
||||
if (inputTarget != null) {
|
||||
ItemSlot slot = CargoManager.withdraw(input.getBlock(), storage, inputTarget, Integer.parseInt(BlockStorage.getBlockInfo(input, "index")));
|
||||
ItemSlot slot = CargoManager.withdraw(input.getBlock(), storage, inputTarget, Integer.parseInt(BlockStorage.getLocationInfo(input, "index")));
|
||||
if (slot != null) {
|
||||
stack = slot.getItem();
|
||||
previousSlot = slot.getSlot();
|
||||
@ -419,8 +418,8 @@ public class CargoNet extends Network {
|
||||
}
|
||||
else if (storage.hasInventory(target.getLocation())) {
|
||||
BlockMenu menu = BlockStorage.getInventory(target.getLocation());
|
||||
if (BlockStorage.checkID(target.getLocation()).startsWith("BARREL_") && BlockStorage.getBlockInfo(target.getLocation(), "storedItems") != null) {
|
||||
int stored = Integer.valueOf(BlockStorage.getBlockInfo(target.getLocation(), "storedItems"));
|
||||
if (BlockStorage.checkID(target.getLocation()).startsWith("BARREL_") && BlockStorage.getLocationInfo(target.getLocation(), "storedItems") != null) {
|
||||
int stored = Integer.valueOf(BlockStorage.getLocationInfo(target.getLocation(), "storedItems"));
|
||||
for (int slot: menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) {
|
||||
ItemStack is = menu.getItemInSlot(slot);
|
||||
if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) {
|
||||
@ -481,7 +480,7 @@ public class CargoNet extends Network {
|
||||
|
||||
for (final Location l: terminals) {
|
||||
BlockMenu menu = BlockStorage.getInventory(l);
|
||||
int page = Integer.parseInt(BlockStorage.getBlockInfo(l, "page"));
|
||||
int page = Integer.parseInt(BlockStorage.getLocationInfo(l, "page"));
|
||||
if (!items.isEmpty() && items.size() < (page - 1) * terminal_slots.length + 1) {
|
||||
page = 1;
|
||||
BlockStorage.addBlockInfo(l, "page", String.valueOf(1));
|
||||
@ -557,7 +556,7 @@ public class CargoNet extends Network {
|
||||
private static int getFrequency(Location l) {
|
||||
int freq = 0;
|
||||
try {
|
||||
freq = Integer.parseInt(BlockStorage.getBlockInfo(l).getString("frequency"));
|
||||
freq = Integer.parseInt(BlockStorage.getLocationInfo(l).getString("frequency"));
|
||||
} catch (Exception e) {}
|
||||
return freq;
|
||||
}
|
||||
|
@ -7,8 +7,6 @@ import java.util.HashSet;
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.Location;
|
||||
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Particles.MC_1_8.ParticleEffect;
|
||||
|
@ -24,8 +24,8 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
public class Projector {
|
||||
|
||||
public static ArmorStand getArmorStand(Block projector) {
|
||||
String nametag = ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(projector, "text"));
|
||||
double offset = Double.valueOf(BlockStorage.getBlockInfo(projector, "offset"));
|
||||
String nametag = ChatColor.translateAlternateColorCodes('&', BlockStorage.getLocationInfo(projector.getLocation(), "text"));
|
||||
double offset = Double.valueOf(BlockStorage.getLocationInfo(projector.getLocation(), "offset"));
|
||||
Location l = new Location(projector.getWorld(), projector.getX() + 0.5, projector.getY() + offset, projector.getZ() + 0.5);
|
||||
|
||||
for (Entity n: l.getChunk().getEntities()) {
|
||||
@ -42,7 +42,7 @@ public class Projector {
|
||||
public static void openEditor(Player p, final Block projector) {
|
||||
ChestMenu menu = new ChestMenu("Hologram Settings");
|
||||
|
||||
menu.addItem(0, new CustomItem(new MaterialData(Material.NAME_TAG), "&7Text &e(Click to edit)", "", "&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(projector, "text"))));
|
||||
menu.addItem(0, new CustomItem(new MaterialData(Material.NAME_TAG), "&7Text &e(Click to edit)", "", "&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getLocationInfo(projector.getLocation(), "text"))));
|
||||
menu.addMenuClickHandler(0, new MenuClickHandler() {
|
||||
|
||||
@Override
|
||||
@ -64,12 +64,12 @@ public class Projector {
|
||||
}
|
||||
});
|
||||
|
||||
menu.addItem(1, new CustomItem(new MaterialData(Material.WATCH), "&7Offset: &e" + DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getBlockInfo(projector, "offset")) + 1.0D), "", "&rLeft Click: &7+0.1", "&rRight Click: &7-0.1"));
|
||||
menu.addItem(1, new CustomItem(new MaterialData(Material.WATCH), "&7Offset: &e" + DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getLocationInfo(projector.getLocation(), "offset")) + 1.0D), "", "&rLeft Click: &7+0.1", "&rRight Click: &7-0.1"));
|
||||
menu.addMenuClickHandler(1, new MenuClickHandler() {
|
||||
|
||||
@Override
|
||||
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
||||
double offset = DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getBlockInfo(projector, "offset")) + (arg3.isRightClicked() ? -0.1F: 0.1F));
|
||||
double offset = DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getLocationInfo(projector.getLocation(), "offset")) + (arg3.isRightClicked() ? -0.1F: 0.1F));
|
||||
ArmorStand hologram = getArmorStand(projector);
|
||||
Location l = new Location(projector.getWorld(), projector.getX() + 0.5, projector.getY() + offset, projector.getZ() + 0.5);
|
||||
hologram.teleport(l);
|
||||
|
@ -34,6 +34,7 @@ public class BlockListener implements Listener {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@EventHandler
|
||||
public void onBlockFall(EntityChangeBlockEvent event) {
|
||||
if (event.getEntity() instanceof FallingBlock) {
|
||||
|
@ -13,6 +13,7 @@ import org.bukkit.event.player.PlayerPickupItemEvent;
|
||||
*
|
||||
* @since 4.1.11
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public class ItemPickupListener implements Listener {
|
||||
|
||||
public ItemPickupListener(SlimefunStartup plugin) {
|
||||
|
@ -45,7 +45,7 @@ public class TeleporterListener implements Listener {
|
||||
}
|
||||
}
|
||||
else if (item.getID().equals("GPS_ACTIVATION_DEVICE_PERSONAL")) {
|
||||
if (BlockStorage.getBlockInfo(e.getClickedBlock(), "owner").equals(e.getPlayer().getUniqueId().toString())) {
|
||||
if (BlockStorage.getLocationInfo(e.getClickedBlock().getLocation(), "owner").equals(e.getPlayer().getUniqueId().toString())) {
|
||||
SlimefunItem teleporter = BlockStorage.check(e.getClickedBlock().getRelative(BlockFace.DOWN));
|
||||
|
||||
if (teleporter instanceof Teleporter) {
|
||||
|
Loading…
Reference in New Issue
Block a user