Skip to content

Commit

Permalink
Fixes #19 and #20 - Updated to latest Slimefun build
Browse files Browse the repository at this point in the history
  • Loading branch information
TheBusyBiscuit committed Feb 21, 2020
1 parent e2e5620 commit abecba9
Show file tree
Hide file tree
Showing 9 changed files with 212 additions and 159 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
<dependency>
<groupId>com.github.TheBusyBiscuit</groupId>
<artifactId>Slimefun4</artifactId>
<version>cb2e12946f</version>
<version>7dc349a2bc</version>
<scope>provided</scope>
<exclusions>
<exclusion>
Expand Down
73 changes: 48 additions & 25 deletions src/main/java/me/john000708/barrels/Barrels.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

import io.github.thebusybiscuit.slimefun4.api.SlimefunAddon;
import me.john000708.barrels.block.Barrel;
import me.john000708.barrels.items.BarrelModule;
import me.john000708.barrels.items.IDCard;
import me.john000708.barrels.listeners.DisplayListener;
Expand All @@ -24,20 +26,18 @@
/**
* Created by John on 06.05.2016.
*/
public class Barrels extends JavaPlugin {
public class Barrels extends JavaPlugin implements SlimefunAddon {

public static Barrels instance;
public static boolean displayItem;

public Config config;

//Can be private.
private boolean plastic;
private static Barrels instance;

private boolean requirePlastic;
private boolean displayItem;
private String itemFormat;

@Override
public void onEnable() {
instance = this;
config = new Config(this);
Config config = new Config(this);

// Setting up the Auto-Updater
Updater updater;
Expand All @@ -59,7 +59,8 @@ public void onEnable() {
new WorldListener(this);

displayItem = config.getBoolean("options.displayItem");
plastic = config.getBoolean("options.plastic-recipe");
requirePlastic = config.getBoolean("options.plastic-recipe");
itemFormat = config.getString("options.item-format");

setup();
getLogger().info("Barrels v" + getDescription().getVersion() + " has been enabled!");
Expand Down Expand Up @@ -88,44 +89,44 @@ private void setup() {
SlimefunItemStack structUpgrade3 = new SlimefunItemStack("STRUCT_UPGRADE_3", Material.ITEM_FRAME, "&9Structural Upgrade &7- &eIII", "&bBig &8\u21E8 &bLarge");

new Barrel(barrelCat, smallBarrel, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {new ItemStack(Material.OAK_SLAB), plastic ? SlimefunItems.PLASTIC_SHEET : new ItemStack(Material.CAULDRON), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.CHEST), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), SlimefunItems.GILDED_IRON, new ItemStack(Material.OAK_SLAB)}, 4096) {
new ItemStack[] {new ItemStack(Material.OAK_SLAB), requirePlastic ? SlimefunItems.PLASTIC_SHEET : new ItemStack(Material.CAULDRON), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.CHEST), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), SlimefunItems.GILDED_IRON, new ItemStack(Material.OAK_SLAB)}, 4096) {

@Override
public String getInventoryTitle() {
return "&9Barrel &7- &eSmall";
}

}.register();
}.register(this);

new Barrel(barrelCat, mediumBarrel, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {new ItemStack(Material.OAK_SLAB), plastic ? SlimefunItems.PLASTIC_SHEET : new ItemStack(Material.CAULDRON), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), smallBarrel, new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), SlimefunItems.GILDED_IRON, new ItemStack(Material.OAK_SLAB)}, 8192) {
new ItemStack[] {new ItemStack(Material.OAK_SLAB), requirePlastic ? SlimefunItems.PLASTIC_SHEET : new ItemStack(Material.CAULDRON), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), smallBarrel, new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), SlimefunItems.GILDED_IRON, new ItemStack(Material.OAK_SLAB)}, 8192) {

@Override
public String getInventoryTitle() {
return "&9Barrel &7- &eMedium";
}

}.register();
}.register(this);

new Barrel(barrelCat, bigBarrel, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {new ItemStack(Material.OAK_SLAB), plastic ? SlimefunItems.PLASTIC_SHEET : new ItemStack(Material.CAULDRON), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), mediumBarrel, new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), SlimefunItems.GILDED_IRON, new ItemStack(Material.OAK_SLAB)}, 16384) {
new ItemStack[] {new ItemStack(Material.OAK_SLAB), requirePlastic ? SlimefunItems.PLASTIC_SHEET : new ItemStack(Material.CAULDRON), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), mediumBarrel, new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), SlimefunItems.GILDED_IRON, new ItemStack(Material.OAK_SLAB)}, 16384) {

@Override
public String getInventoryTitle() {
return "&9Barrel &7- &eBig";
}

}.register();
}.register(this);

new Barrel(barrelCat, largeBarrel, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {new ItemStack(Material.OAK_SLAB), plastic ? SlimefunItems.PLASTIC_SHEET : new ItemStack(Material.CAULDRON), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), bigBarrel, new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), SlimefunItems.GILDED_IRON, new ItemStack(Material.OAK_SLAB)}, 32768) {
new ItemStack[] {new ItemStack(Material.OAK_SLAB), requirePlastic ? SlimefunItems.PLASTIC_SHEET : new ItemStack(Material.CAULDRON), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), bigBarrel, new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), SlimefunItems.GILDED_IRON, new ItemStack(Material.OAK_SLAB)}, 32768) {

@Override
public String getInventoryTitle() {
return "&9Barrel &7- &eLarge";
}

}.register();
}.register(this);

new Barrel(barrelCat, deepStorageUnit, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.REINFORCED_PLATE, new ItemStack(Material.ENDER_CHEST), SlimefunItems.REINFORCED_PLATE, SlimefunItems.PLASTIC_SHEET, largeBarrel, SlimefunItems.PLASTIC_SHEET, SlimefunItems.REINFORCED_PLATE, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.REINFORCED_PLATE}, 1048576) {
Expand All @@ -135,7 +136,7 @@ public String getInventoryTitle() {
return "&3Deep Storage Unit";
}

}.register();
}.register(this);

new BarrelModule(barrelCat, explosionModule, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {new ItemStack(Material.TNT), new ItemStack(Material.GOLD_INGOT), new ItemStack(Material.TNT), new ItemStack(Material.GOLD_INGOT), new ItemStack(Material.REDSTONE), new ItemStack(Material.GOLD_INGOT), new ItemStack(Material.TNT), new ItemStack(Material.GOLD_INGOT), new ItemStack(Material.TNT)}) {
Expand All @@ -150,7 +151,7 @@ public boolean applyUpgrade(Block b) {
return true;
}

}.register();
}.register(this);

new BarrelModule(barrelCat, structUpgrade1, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, mediumBarrel, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT}) {
Expand All @@ -167,7 +168,7 @@ public boolean applyUpgrade(Block b) {
return true;
}

}.register();
}.register(this);

new BarrelModule(barrelCat, structUpgrade2, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, bigBarrel, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT}) {
Expand All @@ -184,7 +185,7 @@ public boolean applyUpgrade(Block b) {
return true;
}

}.register();
}.register(this);

new BarrelModule(barrelCat, structUpgrade3, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, largeBarrel, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT}) {
Expand All @@ -201,7 +202,7 @@ public boolean applyUpgrade(Block b) {
return true;
}

}.register();
}.register(this);

new BarrelModule(barrelCat, biometricProtectionModule, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {new ItemStack(Material.REDSTONE), new ItemStack(Material.DIAMOND), new ItemStack(Material.REDSTONE), new ItemStack(Material.DIAMOND), new ItemStack(Material.PAPER), new ItemStack(Material.DIAMOND), new ItemStack(Material.REDSTONE), new ItemStack(Material.DIAMOND), new ItemStack(Material.REDSTONE)}) {
Expand All @@ -216,10 +217,32 @@ public boolean applyUpgrade(Block b) {
return true;
}

}.register();
}.register(this);

new IDCard(barrelCat, idCard, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {new ItemStack(Material.REDSTONE), new ItemStack(Material.GOLD_NUGGET), new ItemStack(Material.REDSTONE), new ItemStack(Material.GOLD_NUGGET), new ItemStack(Material.PAPER), new ItemStack(Material.GOLD_NUGGET), new ItemStack(Material.REDSTONE), new ItemStack(Material.GOLD_NUGGET), new ItemStack(Material.REDSTONE)})
.register();
.register(this);
}

@Override
public JavaPlugin getJavaPlugin() {
return this;
}

@Override
public String getBugTrackerURL() {
return "https://github.com/John000708/Barrels/issues";
}

public static Barrels getInstance() {
return instance;
}

public static String getItemFormat() {
return instance.itemFormat;
}

public static boolean displayItem() {
return instance.displayItem;
}
}
49 changes: 27 additions & 22 deletions src/main/java/me/john000708/barrels/DisplayItem.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package me.john000708.barrels;

import java.util.Optional;

import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
Expand Down Expand Up @@ -31,46 +33,49 @@ public static void updateDisplayItem(Block b, int capacity, boolean allow) {
String nametag = ChatColor.translateAlternateColorCodes('&', "&cEmpty");

BlockMenu menu = BlockStorage.getInventory(b);

if (BlockStorage.getLocationInfo(b.getLocation(), "storedItems") != null) {
int storedItems = Integer.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "storedItems"));
stack = menu.getItemInSlot(22).clone();
nametag = ChatColor.translateAlternateColorCodes('&', Barrels.instance.config.getString("options.item-format"));
nametag = ChatColor.translateAlternateColorCodes('&', Barrels.getItemFormat());
nametag = nametag.replace("<storedAmount>", String.valueOf(storedItems));
nametag = nametag.replace("<storedPercentage>", String.valueOf(Math.round((float) storedItems / (float) capacity * 100.0F)));
nametag = nametag.replace("<storedItem>", stack.getItemMeta().getDisplayName());
}

Item entity = getEntity(b);
if (entity == null) {
entity = b.getWorld().dropItem(new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + 1.2D, b.getZ() + 0.5D), new CustomItem(stack, ITEM_DATA + System.nanoTime()));
entity.setVelocity(new Vector(0, 0.1, 0));
entity.setMetadata("no_pickup", new FixedMetadataValue(Barrels.instance, "barrel"));
entity.setCustomNameVisible(true);
Optional<Item> entity = getEntity(b);

if (!entity.isPresent()) {
Item item = b.getWorld().dropItem(new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + 1.2D, b.getZ() + 0.5D), new CustomItem(stack, ITEM_DATA + System.nanoTime()));
item.setVelocity(new Vector(0, 0.1, 0));
item.setMetadata("no_pickup", new FixedMetadataValue(Barrels.getInstance(), "barrel"));
item.setCustomNameVisible(true);
item.setCustomName(nametag);
item.setInvulnerable(true);
}
else {
entity.setItemStack(new CustomItem(stack, ITEM_DATA + System.nanoTime()));
Item item = entity.get();
item.setItemStack(new CustomItem(stack, ITEM_DATA + System.nanoTime()));
item.setCustomName(nametag);
item.setInvulnerable(true);
}

entity.setCustomName(nametag);
entity.setInvulnerable(true);
}

public static void removeDisplayItem(Block b) {
for (Entity n : b.getChunk().getEntities()) {
if (n instanceof Item) {
if (b.getLocation().add(0.5, 1.2, 0.5).distanceSquared(n.getLocation()) < 1D && ((Item) n).getItemStack().hasItemMeta() && ((Item) n).getItemStack().getItemMeta().getDisplayName().startsWith(ITEM_DATA))
n.remove();
}
}
getEntity(b).ifPresent(Item::remove);
}

private static Item getEntity(Block b) {
private static Optional<Item> getEntity(Block b) {
for (Entity n : b.getChunk().getEntities()) {
if (n instanceof Item) {
if (b.getLocation().add(0.5, 1.2, 0.5).distanceSquared(n.getLocation()) < 1D && ((Item) n).getItemStack().hasItemMeta() && ((Item) n).getItemStack().getItemMeta().getDisplayName().startsWith(ITEM_DATA))
return (Item) n;
if (n instanceof Item && b.getLocation().add(0.5, 1.2, 0.5).distanceSquared(n.getLocation()) < 1D) {
Item item = (Item) n;

if (item.getItemStack().hasItemMeta() && item.getItemStack().getItemMeta().getDisplayName().startsWith(ITEM_DATA)) {
return Optional.of(item);
}
}
}
return null;

return Optional.empty();
}
}
Loading

0 comments on commit abecba9

Please sign in to comment.