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:
parent
f3c3552e9c
commit
79c1120ae8
@ -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) {
|
||||
|
@ -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"));
|
@ -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
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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});
|
||||
|
@ -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!");
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user