1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00

Refactoring, Bug Fix and Cleanup

This commit is contained in:
TheBusyBiscuit 2019-08-25 20:52:38 +02:00
parent f3c3552e9c
commit 79c1120ae8
11 changed files with 66 additions and 74 deletions

View File

@ -48,7 +48,7 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull;
import me.mrCookieSlime.ExoticGarden.ExoticGarden;
import me.mrCookieSlime.Slimefun.SlimefunStartup;
import me.mrCookieSlime.Slimefun.Android.ScriptComparators.ScriptReputationSorter;
import me.mrCookieSlime.Slimefun.Android.comparators.ScriptReputationSorter;
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
import me.mrCookieSlime.Slimefun.Objects.Category;
@ -249,7 +249,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
if (BlockStorage.getLocationInfo(b.getLocation(), "paused").equals("false")) {
float fuel = Float.parseFloat(BlockStorage.getLocationInfo(b.getLocation(), "fuel"));
if (fuel == 0) {
if (fuel < 0.001) {
ItemStack item = BlockStorage.getInventory(b).getItemInSlot(43);
if (item != null) {
for (MachineFuel recipe: recipes) {
@ -382,12 +382,11 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
ItemStack stack = BlockStorage.getInventory(b).getItemInSlot(slot);
if (stack != null) {
Map<Integer, ItemStack> items = d.getInventory().addItem(stack);
if (items.isEmpty()) BlockStorage.getInventory(b).replaceExistingItem(slot, null);
if (items.isEmpty()) {
BlockStorage.getInventory(b).replaceExistingItem(slot, null);
}
else {
for (Map.Entry<Integer, ItemStack> entry: items.entrySet()) {
BlockStorage.getInventory(b).replaceExistingItem(slot, entry.getValue());
break;
}
BlockStorage.getInventory(b).replaceExistingItem(slot, items.values().stream().findFirst().get());
}
}
}
@ -1257,7 +1256,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
public float getScriptRating(Config script) {
int positive = getScriptRating(script, true) + 1;
int negative = getScriptRating(script, false);
return Math.round((positive / (positive + negative)) * 100.0f) / 100.0f;
return Math.round((positive / (double) (positive + negative)) * 100.0f) / 100.0f;
}
private int getScriptRating(Config script, boolean positive) {

View File

@ -1,18 +1,11 @@
package me.mrCookieSlime.Slimefun.Android.ScriptComparators;
package me.mrCookieSlime.Slimefun.Android.comparators;
import java.util.Comparator;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
import me.mrCookieSlime.Slimefun.Android.ProgrammableAndroid;
public class ScriptDownloadSorter implements Comparator<Config> {
ProgrammableAndroid android;
public ScriptDownloadSorter(ProgrammableAndroid programmableAndroid) {
this.android = programmableAndroid;
}
@Override
public int compare(Config c1, Config c2) {
return (int) (c2.getInt("downloads") - c1.getInt("downloads"));

View File

@ -1,4 +1,4 @@
package me.mrCookieSlime.Slimefun.Android.ScriptComparators;
package me.mrCookieSlime.Slimefun.Android.comparators;
import java.util.Comparator;
@ -7,10 +7,10 @@ import me.mrCookieSlime.Slimefun.Android.ProgrammableAndroid;
public class ScriptReputationSorter implements Comparator<Config> {
ProgrammableAndroid android;
private ProgrammableAndroid android;
public ScriptReputationSorter(ProgrammableAndroid programmableAndroid) {
this.android = programmableAndroid;
public ScriptReputationSorter(ProgrammableAndroid android) {
this.android = android;
}
@Override

View File

@ -89,7 +89,7 @@ public class Talisman extends SlimefunItem {
}
Player p = getPlayerByEventType(e);
if (!pass(p, talisman)) {
if (p == null || !pass(p, talisman)) {
return false;
}
@ -97,13 +97,17 @@ public class Talisman extends SlimefunItem {
if (Slimefun.hasUnlocked(p, talisman.getItem(), true)) {
executeTalismanAttributes(e,p,talisman);
return true;
} else return false;
} else if (p.getEnderChest().containsAtLeast(talisman.upgrade(), 1)) {
}
else return false;
}
else if (p.getEnderChest().containsAtLeast(talisman.upgrade(), 1)) {
if (Slimefun.hasUnlocked(p, talisman.upgrade(), true)) {
executeTalismanAttributes(e,p,talisman);
return true;
} else return false;
} else return false;
}
else return false;
}
else return false;
}
@ -173,6 +177,7 @@ public class Talisman extends SlimefunItem {
else if (e instanceof PlayerEvent) return ((PlayerEvent) e).getPlayer();
else if (e instanceof EntityEvent) return (Player) ((EntityEvent) e).getEntity();
else if (e instanceof EnchantItemEvent) return ((EnchantItemEvent) e).getEnchanter();
return null;
}
@ -180,6 +185,7 @@ public class Talisman extends SlimefunItem {
for (PotionEffect effect : ((Talisman) talisman).getEffects()) {
if (effect != null && p.hasPotionEffect(effect.getType())) return false;
}
return true;
}

View File

@ -452,11 +452,8 @@ public abstract class AReactor extends SlimefunItem {
BlockStorage.getInventory(l).replaceExistingItem(slot, inv.getItem(slot));
}
for (Map.Entry<Integer, ItemStack> entry : map.entrySet()) {
return entry.getValue();
}
return null;
if (map.isEmpty()) return null;
else return map.values().stream().findFirst().get();
}
public abstract ItemStack getProgressBar();

View File

@ -72,7 +72,7 @@ public class ChargingBench extends AContainer {
if (ItemEnergy.getStoredEnergy(stack) < ItemEnergy.getMaxEnergy(stack)) {
ChargableBlock.addCharge(b, -getEnergyConsumption());
float rest = ItemEnergy.addStoredEnergy(stack, getEnergyConsumption() / 2);
float rest = ItemEnergy.addStoredEnergy(stack, getEnergyConsumption() / 2F);
if (rest > 0F) {
if (fits(b, new ItemStack[] {stack})) {
pushItems(b, new ItemStack[] {stack});

View File

@ -57,6 +57,7 @@ import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet;
import me.mrCookieSlime.Slimefun.api.item_transport.ChestManipulator;
import me.mrCookieSlime.Slimefun.autosave.BlockAutoSaver;
import me.mrCookieSlime.Slimefun.autosave.PlayerAutoSaver;
import me.mrCookieSlime.Slimefun.hooks.WorldEditHook;
import me.mrCookieSlime.Slimefun.listeners.AncientAltarListener;
import me.mrCookieSlime.Slimefun.listeners.AndroidKillingListener;
import me.mrCookieSlime.Slimefun.listeners.ArmorListener;
@ -78,7 +79,6 @@ import me.mrCookieSlime.Slimefun.listeners.TalismanListener;
import me.mrCookieSlime.Slimefun.listeners.TeleporterListener;
import me.mrCookieSlime.Slimefun.listeners.ToolListener;
import me.mrCookieSlime.Slimefun.listeners.WorldListener;
import me.mrCookieSlime.Slimefun.worldedit.WESlimefunManager;
import net.coreprotect.CoreProtect;
import net.coreprotect.CoreProtectAPI;
@ -262,7 +262,7 @@ public class SlimefunStartup extends JavaPlugin {
if (getServer().getPluginManager().isPluginEnabled("WorldEdit")) {
try {
Class.forName("com.sk89q.worldedit.extent.Extent");
new WESlimefunManager();
new WorldEditHook();
System.out.println("[Slimefun] Successfully hooked into WorldEdit!");
} catch (Exception x) {
System.err.println("[Slimefun] Failed to hook into WorldEdit!");

View File

@ -48,7 +48,7 @@ public class ItemEnergy {
float rest = 0F;
float capacity = getMaxEnergy(item);
if (capacity == 0F) {
if ((int) capacity == 0) {
return rest;
}
@ -76,7 +76,7 @@ public class ItemEnergy {
}
}
BigDecimal decimal = new BigDecimal(stored).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal decimal = BigDecimal.valueOf(stored).setScale(2, BigDecimal.ROUND_HALF_UP);
lore.set(index, ChatColor.translateAlternateColorCodes('&', "&c&o&8\u21E8 &e\u26A1 &7") + decimal.floatValue() + " / " + capacity + " J");

View File

@ -1,4 +1,4 @@
package me.mrCookieSlime.Slimefun.worldedit;
package me.mrCookieSlime.Slimefun.hooks;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@ -14,9 +14,9 @@ import com.sk89q.worldedit.world.block.BlockStateHolder;
import me.mrCookieSlime.Slimefun.api.BlockStorage;
public class WESlimefunManager {
public class WorldEditHook {
public WESlimefunManager() {
public WorldEditHook() {
WorldEdit.getInstance().getEventBus().register(this);
}

View File

@ -14,7 +14,6 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.MetadataValue;
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
import me.mrCookieSlime.Slimefun.SlimefunStartup;
@ -29,40 +28,38 @@ public class AndroidKillingListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST)
public void onDeath(final EntityDeathEvent e) {
if (e.getEntity().hasMetadata("android_killer")) {
for (MetadataValue value: e.getEntity().getMetadata("android_killer")) {
final AndroidObject obj = (AndroidObject) value.value();
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
List<ItemStack> items = new ArrayList<ItemStack>();
for (Entity n : e.getEntity().getNearbyEntities(0.5D, 0.5D, 0.5D)) {
if (n instanceof Item && !n.hasMetadata("no_pickup")) {
items.add(((Item) n).getItemStack());
n.remove();
}
}
final AndroidObject obj = (AndroidObject) e.getEntity().getMetadata("android_killer").get(0).value();
switch (e.getEntityType()) {
case BLAZE: {
items.add(new ItemStack(Material.BLAZE_ROD, 1 + CSCoreLib.randomizer().nextInt(2)));
break;
}
case PIG_ZOMBIE: {
items.add(new ItemStack(Material.GOLD_NUGGET, 1 + CSCoreLib.randomizer().nextInt(3)));
break;
}
case WITHER_SKELETON: {
if (CSCoreLib.randomizer().nextInt(250) < 2) items.add(new ItemStack(Material.WITHER_SKELETON_SKULL));
break;
}
default:
break;
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
List<ItemStack> items = new ArrayList<>();
for (Entity n : e.getEntity().getNearbyEntities(0.5D, 0.5D, 0.5D)) {
if (n instanceof Item && !n.hasMetadata("no_pickup")) {
items.add(((Item) n).getItemStack());
n.remove();
}
obj.getAndroid().addItems(obj.getBlock(), items.toArray(new ItemStack[items.size()]));
ExperienceOrb exp = (ExperienceOrb) e.getEntity().getWorld().spawnEntity(e.getEntity().getLocation(), EntityType.EXPERIENCE_ORB);
exp.setExperience(1 + CSCoreLib.randomizer().nextInt(6));
}, 1L);
return;
}
}
switch (e.getEntityType()) {
case BLAZE: {
items.add(new ItemStack(Material.BLAZE_ROD, 1 + CSCoreLib.randomizer().nextInt(2)));
break;
}
case PIG_ZOMBIE: {
items.add(new ItemStack(Material.GOLD_NUGGET, 1 + CSCoreLib.randomizer().nextInt(3)));
break;
}
case WITHER_SKELETON: {
if (CSCoreLib.randomizer().nextInt(250) < 2) items.add(new ItemStack(Material.WITHER_SKELETON_SKULL));
break;
}
default:
break;
}
obj.getAndroid().addItems(obj.getBlock(), items.toArray(new ItemStack[items.size()]));
ExperienceOrb exp = (ExperienceOrb) e.getEntity().getWorld().spawnEntity(e.getEntity().getLocation(), EntityType.EXPERIENCE_ORB);
exp.setExperience(1 + CSCoreLib.randomizer().nextInt(6));
}, 1L);
}
}
}

View File

@ -54,7 +54,7 @@ public class BlockListener implements Listener {
e.setCancelled(true);
return;
}
else if(b.getRelative(e.getDirection()) == null && BlockStorage.hasBlockInfo(b.getRelative(e.getDirection()))) {
else if (b.getRelative(e.getDirection()).getType() == Material.AIR && BlockStorage.hasBlockInfo(b.getRelative(e.getDirection()))) {
e.setCancelled(true);
return;
}
@ -69,7 +69,7 @@ public class BlockListener implements Listener {
e.setCancelled(true);
return;
}
else if(b.getRelative(e.getDirection()) == null && BlockStorage.hasBlockInfo(b.getRelative(e.getDirection()))) {
else if (b.getRelative(e.getDirection()).getType() == Material.AIR && BlockStorage.hasBlockInfo(b.getRelative(e.getDirection()))) {
e.setCancelled(true);
return;
}
@ -83,7 +83,7 @@ public class BlockListener implements Listener {
if (!e.getHand().equals(EquipmentSlot.HAND)) return;
Player p = e.getPlayer();
Block b = e.getClickedBlock();
List<MultiBlock> multiblocks = new ArrayList<MultiBlock>();
List<MultiBlock> multiblocks = new ArrayList<>();
for (MultiBlock mb: MultiBlock.list()) {
if (mb.getTriggerBlock() == b.getType()) {
Material[] blocks = mb.getBuild();