1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 11:45:51 +00:00

Use lambda expressions

This commit is contained in:
SoSeDiK 2019-03-30 14:32:13 +02:00
parent 009dede7cf
commit 3c4e8e6b32
17 changed files with 491 additions and 629 deletions

View File

@ -47,12 +47,8 @@ public class CSCoreLibLoader {
System.err.println(" ");
System.err.println("#################### - INFO - ####################");
System.err.println(" ");
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
@Override
public void run() {
if (connect()) install();
}
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
if (connect()) install();
}, 10L);
return false;
}

View File

@ -4,15 +4,19 @@ import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import me.mrCookieSlime.CSCoreLibPlugin.general.World.TitleBuilder;
import me.mrCookieSlime.CSCoreLibPlugin.general.World.TitleBuilder.TitleType;
import me.mrCookieSlime.Slimefun.SlimefunStartup;
import org.bukkit.*;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import me.mrCookieSlime.CSCoreLibPlugin.general.World.TitleBuilder;
import me.mrCookieSlime.CSCoreLibPlugin.general.World.TitleBuilder.TitleType;
import me.mrCookieSlime.Slimefun.SlimefunStartup;
public class TeleportationSequence {
public static Set<UUID> players = new HashSet<UUID>();
@ -92,12 +96,8 @@ public class TeleportationSequence {
source.getWorld().spawnParticle(Particle.PORTAL, source, progress * 2, 0.2F, 0.8F, 0.2F);
source.getWorld().playSound(source, Sound.UI_BUTTON_CLICK, 1.7F, 0.6F);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
updateProgress(uuid, speed, progress + speed, source, destination, resistance);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
updateProgress(uuid, speed, progress + speed, source, destination, resistance);
}, 10l);
}
} catch (Exception e) {

View File

@ -314,15 +314,10 @@ public abstract class AReactor extends SlimefunItem {
if (space >= produced || !BlockStorage.getLocationInfo(l, "reactor-mode").equals("generator")) {
progress.put(l, timeleft - 1);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
if (!l.getBlock().getRelative(cooling[CSCoreLib.randomizer().nextInt(cooling.length)]).isLiquid()) explode.add(l);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
if (!l.getBlock().getRelative(cooling[CSCoreLib.randomizer().nextInt(cooling.length)]).isLiquid()) explode.add(l);
});
ItemStack item = getProgressBar().clone();
ItemMeta im = item.getItemMeta();
im.setDisplayName(" ");
@ -433,11 +428,8 @@ public abstract class AReactor extends SlimefunItem {
if (explosion) {
BlockStorage.getInventory(l).close();
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
ReactorHologram.remove(l);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
ReactorHologram.remove(l);
}, 0);
explode.remove(l);

View File

@ -1,5 +1,13 @@
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler;
@ -22,14 +30,6 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class WitherAssembler extends SlimefunItem {
private static int lifetime = 0;
@ -296,12 +296,8 @@ public class WitherAssembler extends SlimefunItem {
final double offset = Double.parseDouble(BlockStorage.getLocationInfo(b.getLocation(), "offset"));
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
b.getWorld().spawnEntity(new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + offset, b.getZ() + 0.5D), EntityType.WITHER);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
b.getWorld().spawnEntity(new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + offset, b.getZ() + 0.5D), EntityType.WITHER);
});
return;

View File

@ -416,15 +416,10 @@ public class SlimefunGuide {
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
public void run(final Player p) {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
openCategory(p, category, survival, 1, book);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
openCategory(p, category, survival, 1, book);
}, 1L);
}
});
@ -434,15 +429,10 @@ public class SlimefunGuide {
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
public void run(final Player p) {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
openCategory(p, category, survival, 1, book);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
openCategory(p, category, survival, 1, book);
}, 1L);
}
});
@ -454,7 +444,6 @@ public class SlimefunGuide {
for (final GuideHandler handler: Slimefun.getGuideHandlers(tier)) {
handler.addEntry(texts, tooltips);
actions.add(new PlayerRunnable(2) {
@Override
public void run(Player p) {
handler.run(p, survival, book);
@ -562,7 +551,6 @@ public class SlimefunGuide {
if (!(category instanceof SeasonCategory)) {
menu.addItem(index, category.getItem());
menu.addMenuClickHandler(index, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
openCategory(p, category, survival, 1, book);
@ -575,7 +563,6 @@ public class SlimefunGuide {
if (((SeasonCategory) category).isUnlocked()) {
menu.addItem(index, category.getItem());
menu.addMenuClickHandler(index, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
openCategory(p, category, survival, 1, book);
@ -589,7 +576,6 @@ public class SlimefunGuide {
else if (((LockedCategory) category).hasUnlocked(p)) {
menu.addItem(index, category.getItem());
menu.addMenuClickHandler(index, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
openCategory(p, category, survival, 1, book);
@ -609,7 +595,6 @@ public class SlimefunGuide {
}
menu.addItem(index, new CustomItem(Material.BARRIER, "&4LOCKED &7- &r" + category.getItem().getItemMeta().getDisplayName(), 0, parents.toArray(new String[parents.size()])));
menu.addMenuClickHandler(index, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
return false;
@ -624,7 +609,6 @@ public class SlimefunGuide {
menu.addItem(46, new CustomItem(new ItemStack(Material.LIME_STAINED_GLASS_PANE), "&r\u21E6 Previous Page", "", "&7(" + selected_page + " / " + pages + ")"));
menu.addMenuClickHandler(46, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
int next = selected_page - 1;
@ -636,7 +620,6 @@ public class SlimefunGuide {
menu.addItem(52, new CustomItem(new ItemStack(Material.LIME_STAINED_GLASS_PANE), "&rNext Page \u21E8", "", "&7(" + selected_page + " / " + pages + ")"));
menu.addMenuClickHandler(52, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
int next = selected_page + 1;
@ -673,7 +656,6 @@ public class SlimefunGuide {
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
public void run(final Player p) {
if (!Research.isResearching(p)) {
@ -687,21 +669,13 @@ public class SlimefunGuide {
if (p.getGameMode() == GameMode.CREATIVE) {
research.unlock(p, true);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
openCategory(p, category, survival, selected_page, book);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
openCategory(p, category, survival, selected_page, book);
}, 1L);
} else {
research.unlock(p, false);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
openCategory(p, category, survival, selected_page, book);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
openCategory(p, category, survival, selected_page, book);
}, 103L);
}
}
@ -755,15 +729,10 @@ public class SlimefunGuide {
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
public void run(final Player p) {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
openMainMenu(p, survival, true, 1);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
openMainMenu(p, survival, true, 1);
}, 1L);
}
});
@ -777,7 +746,6 @@ public class SlimefunGuide {
menu.setEmptySlotsClickable(false);
menu.addMenuOpeningHandler(new MenuOpeningHandler() {
@Override
public void onOpen(Player p) {
p.playSound(p.getLocation(), Sound.ENTITY_BAT_TAKEOFF, 0.7F, 0.7F);
@ -789,7 +757,6 @@ public class SlimefunGuide {
for (int i = 0; i < 4; i++) {
menu.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "));
menu.addMenuClickHandler(i, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
return false;
@ -799,7 +766,6 @@ public class SlimefunGuide {
menu.addItem(4, new CustomItem(new ItemStack(Material.ENCHANTED_BOOK), "&7\u21E6 Back"));
menu.addMenuClickHandler(4, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
openMainMenu(p, survival, book, 1);
@ -810,7 +776,6 @@ public class SlimefunGuide {
for (int i = 5; i < 9; i++) {
menu.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "));
menu.addMenuClickHandler(i, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
return false;
@ -821,7 +786,6 @@ public class SlimefunGuide {
for (int i = 45; i < 54; i++) {
menu.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "));
menu.addMenuClickHandler(i, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
return false;
@ -831,7 +795,6 @@ public class SlimefunGuide {
menu.addItem(46, new CustomItem(new ItemStack(Material.LIME_STAINED_GLASS_PANE), "&r\u21E6 Previous Page", "", "&7(" + selected_page + " / " + pages + ")"));
menu.addMenuClickHandler(46, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
int next = selected_page - 1;
@ -843,7 +806,6 @@ public class SlimefunGuide {
menu.addItem(52, new CustomItem(new ItemStack(Material.LIME_STAINED_GLASS_PANE), "&rNext Page \u21E8", "", "&7(" + selected_page + " / " + pages + ")"));
menu.addMenuClickHandler(52, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
int next = selected_page + 1;
@ -864,7 +826,6 @@ public class SlimefunGuide {
final Research research = sfitem.getResearch();
menu.addItem(index, new CustomItem(Material.BARRIER, "&r" + StringUtils.formatItemName(sfitem.getItem(), false), 0, new String[] {"&4&lLOCKED", "", "&a> Click to unlock", "", "&7Cost: &b" + research.getCost() + " Level"}));
menu.addMenuClickHandler(index, new MenuClickHandler() {
@Override
public boolean onClick(final Player p, int slot, ItemStack item, ClickAction action) {
if (!Research.isResearching(p)) {
@ -881,12 +842,8 @@ public class SlimefunGuide {
openCategory(p, category, survival, selected_page, book);
} else {
research.unlock(p, false);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
openCategory(p, category, survival, selected_page, book);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
openCategory(p, category, survival, selected_page, book);
}, 103L);
}
}
@ -900,7 +857,6 @@ public class SlimefunGuide {
else {
menu.addItem(index, new CustomItem(Material.BARRIER, StringUtils.formatItemName(sfitem.getItem(), false), 0, new String[] {"", "&rYou do not have Permission", "&rto access this Item"}));
menu.addMenuClickHandler(index, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
return false;
@ -912,7 +868,6 @@ public class SlimefunGuide {
else {
menu.addItem(index, sfitem.getItem());
menu.addMenuClickHandler(index, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
if (survival) displayItem(p, item, true, book, 0);
@ -969,7 +924,6 @@ public class SlimefunGuide {
menu.setEmptySlotsClickable(false);
menu.addMenuOpeningHandler(new MenuOpeningHandler() {
@Override
public void onOpen(Player p) {
p.playSound(p.getLocation(), Sound.ENTITY_BAT_TAKEOFF, 0.7F, 0.7F);
@ -995,7 +949,6 @@ public class SlimefunGuide {
if (recipes.size() > page + 1) {
menu.addItem(1, new CustomItem(new ItemStack(Material.ENCHANTED_BOOK), "&7Next \u21E8", "", "&e&l! &rThere are multiple recipes for this Item"));
menu.addMenuClickHandler(1, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) {
displayItem(p, item, false, book, page + 1);
@ -1037,7 +990,6 @@ public class SlimefunGuide {
if (history.containsKey(p.getUniqueId()) && history.get(p.getUniqueId()).size() > 1) {
menu.addItem(0, new CustomItem(new ItemStack(Material.ENCHANTED_BOOK), "&7\u21E6 Back", "", "&rLeft Click: &7Go back to previous Page", "&rShift + left Click: &7Go back to Main Menu"));
menu.addMenuClickHandler(0, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
if (action.isShiftClicked()) openMainMenu(p, true, book, 1);
@ -1055,7 +1007,6 @@ public class SlimefunGuide {
else {
menu.addItem(0, new CustomItem(new ItemStack(Material.ENCHANTED_BOOK), "&7\u21E6 Back", "", "&rLeft Click: &7Go back to Main Menu"));
menu.addMenuClickHandler(0, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
openMainMenu(p, true, book, 1);
@ -1066,7 +1017,6 @@ public class SlimefunGuide {
menu.addItem(3, Slimefun.hasUnlocked(p, recipe[0], false) ? recipe[0]: new CustomItem(Material.BARRIER, StringUtils.formatItemName(recipe[0], false), 0, new String[] {"&4&lLOCKED", "", Slimefun.hasPermission(p, SlimefunItem.getByItem(recipe[0]), false) ? "&rNeeds to be unlocked elsewhere" : "&rNo Permission"}));
menu.addMenuClickHandler(3, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1076,7 +1026,6 @@ public class SlimefunGuide {
menu.addItem(4, Slimefun.hasUnlocked(p, recipe[1], false) ? recipe[1]: new CustomItem(Material.BARRIER, StringUtils.formatItemName(recipe[1], false), 0, new String[] {"&4&lLOCKED", "", Slimefun.hasPermission(p, SlimefunItem.getByItem(recipe[1]), false) ? "&rNeeds to be unlocked elsewhere" : "&rNo Permission"}));
menu.addMenuClickHandler(4, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1086,7 +1035,6 @@ public class SlimefunGuide {
menu.addItem(5, Slimefun.hasUnlocked(p, recipe[2], false) ? recipe[2]: new CustomItem(Material.BARRIER, StringUtils.formatItemName(recipe[2], false), 0, new String[] {"&4&lLOCKED", "", Slimefun.hasPermission(p, SlimefunItem.getByItem(recipe[2]), false) ? "&rNeeds to be unlocked elsewhere" : "&rNo Permission"}));
menu.addMenuClickHandler(5, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1099,7 +1047,6 @@ public class SlimefunGuide {
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() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
p.closeInventory();
@ -1117,7 +1064,6 @@ public class SlimefunGuide {
try {
menu.addItem(7, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzNTNmZDBmODYzMTQzNTM4NzY1ODYwNzViOWJkZjBjNDg0YWFiMDMzMWI4NzJkZjExYmQ1NjRmY2IwMjllZCJ9fX0="), "&rDemonstration Video &7(Youtube)", "", "&7\u21E8 Click to watch"));
menu.addMenuClickHandler(7, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
p.closeInventory();
@ -1135,7 +1081,6 @@ public class SlimefunGuide {
menu.addItem(10, recipeType);
menu.addMenuClickHandler(10, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
return false;
@ -1144,7 +1089,6 @@ public class SlimefunGuide {
menu.addItem(12, Slimefun.hasUnlocked(p, recipe[3], false) ? recipe[3]: new CustomItem(Material.BARRIER, StringUtils.formatItemName(recipe[3], false), 0, new String[] {"&4&lLOCKED", "", Slimefun.hasPermission(p, SlimefunItem.getByItem(recipe[3]), false) ? "&rNeeds to be unlocked elsewhere" : "&rNo Permission"}));
menu.addMenuClickHandler(12, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1154,7 +1098,6 @@ public class SlimefunGuide {
menu.addItem(13, Slimefun.hasUnlocked(p, recipe[4], false) ? recipe[4]: new CustomItem(Material.BARRIER, StringUtils.formatItemName(recipe[4], false), 0, new String[] {"&4&lLOCKED", "", Slimefun.hasPermission(p, SlimefunItem.getByItem(recipe[4]), false) ? "&rNeeds to be unlocked elsewhere" : "&rNo Permission"}));
menu.addMenuClickHandler(13, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1164,7 +1107,6 @@ public class SlimefunGuide {
menu.addItem(14, Slimefun.hasUnlocked(p, recipe[5], false) ? recipe[5]: new CustomItem(Material.BARRIER, StringUtils.formatItemName(recipe[5], false), 0, new String[] {"&4&lLOCKED", "", Slimefun.hasPermission(p, SlimefunItem.getByItem(recipe[5]), false) ? "&rNeeds to be unlocked elsewhere" : "&rNo Permission"}));
menu.addMenuClickHandler(14, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1174,7 +1116,6 @@ public class SlimefunGuide {
menu.addItem(16, recipeOutput);
menu.addMenuClickHandler(16, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
return false;
@ -1183,7 +1124,6 @@ public class SlimefunGuide {
menu.addItem(21, Slimefun.hasUnlocked(p, recipe[6], false) ? recipe[6]: new CustomItem(Material.BARRIER, StringUtils.formatItemName(recipe[6], false), 0, new String[] {"&4&lLOCKED", "", Slimefun.hasPermission(p, SlimefunItem.getByItem(recipe[6]), false) ? "&rNeeds to be unlocked elsewhere" : "&rNo Permission"}));
menu.addMenuClickHandler(21, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1193,7 +1133,6 @@ public class SlimefunGuide {
menu.addItem(22, Slimefun.hasUnlocked(p, recipe[7], false) ? recipe[7]: new CustomItem(Material.BARRIER, StringUtils.formatItemName(recipe[7], false), 0, new String[] {"&4&lLOCKED", "", Slimefun.hasPermission(p, SlimefunItem.getByItem(recipe[7]), false) ? "&rNeeds to be unlocked elsewhere" : "&rNo Permission"}));
menu.addMenuClickHandler(22, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1203,7 +1142,6 @@ public class SlimefunGuide {
menu.addItem(23, Slimefun.hasUnlocked(p, recipe[8], false) ? recipe[8]: new CustomItem(Material.BARRIER, StringUtils.formatItemName(recipe[8], false), 0, new String[] {"&4&lLOCKED", "", Slimefun.hasPermission(p, SlimefunItem.getByItem(recipe[8]), false) ? "&rNeeds to be unlocked elsewhere" : "&rNo Permission"}));
menu.addMenuClickHandler(23, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1212,12 +1150,10 @@ public class SlimefunGuide {
});
if (sfItem != null) {
if ((sfItem instanceof SlimefunMachine && ((SlimefunMachine) sfItem).getDisplayRecipes().size() > 0) || (sfItem instanceof SlimefunGadget && ((SlimefunGadget) sfItem).getRecipes().size() > 0)) {
for (int i = 27; i < 36; i++) {
menu.addItem(i, new CustomItem(Material.LIME_STAINED_GLASS_PANE, SlimefunItem.getByItem(item) instanceof SlimefunMachine ? "&7\u21E9 Recipes made in this Machine \u21E9": " ", 7));
menu.addMenuClickHandler(i, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
return false;
@ -1242,7 +1178,6 @@ public class SlimefunGuide {
menu.addItem(slot + addition, recipes.get(i));
menu.addMenuClickHandler(slot + addition, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
displayItem(p, item, true, book, 0);
@ -1265,7 +1200,6 @@ public class SlimefunGuide {
fItem.setItemMeta(im);
menu.addItem(slot, fItem);
menu.addMenuClickHandler(slot, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
return false;
@ -1288,7 +1222,6 @@ public class SlimefunGuide {
fItem.setItemMeta(im);
menu.addItem(slot, fItem);
menu.addMenuClickHandler(slot, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) {
return false;

View File

@ -81,116 +81,107 @@ public class TickerTask implements Runnable {
try {
item.getBlockTicker().update();
if (item.getBlockTicker().isSynchronized()) {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
try {
long timestamp3 = System.currentTimeMillis();
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) {
int errors = 0;
if (bugged.containsKey(l)) errors = bugged.get(l);
errors++;
if (errors == 1) {
int try_count = 1;
File file = new File("plugins/Slimefun/error-reports/" + Clock.getFormattedTime() + ".err");
while (file.exists()) {
try_count += 1;
file = new File("plugins/Slimefun/error-reports/" + Clock.getFormattedTime() + "(" + try_count + ").err");
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
try {
long timestamp3 = System.currentTimeMillis();
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) {
int errors = 0;
if (bugged.containsKey(l)) errors = bugged.get(l);
errors++;
if (errors == 1) {
int try_count = 1;
File file = new File("plugins/Slimefun/error-reports/" + Clock.getFormattedTime() + ".err");
while (file.exists()) {
try_count += 1;
file = new File("plugins/Slimefun/error-reports/" + Clock.getFormattedTime() + "(" + try_count + ").err");
}
try {
PrintStream stream = new PrintStream(file);
stream.println();
stream.println("Server Software: " + Bukkit.getName());
stream.println(" Build: " + Bukkit.getVersion());
stream.println(" Minecraft: " + Bukkit.getBukkitVersion());
stream.println();
stream.println("Slimefun Environment:");
stream.println(" CS-CoreLib v" + CSCoreLib.getLib().getDescription().getVersion());
stream.println(" Slimefun v" + SlimefunStartup.instance.getDescription().getVersion());
stream.println();
List<String> plugins = new ArrayList<>();
List<String> addons = new ArrayList<>();
for (Plugin p: Bukkit.getPluginManager().getPlugins()) {
if (Bukkit.getPluginManager().isPluginEnabled(p)) {
plugins.add(" + " + p.getName() + " " + p.getDescription().getVersion());
if (p.getDescription().getDepend().contains("Slimefun") || p.getDescription().getSoftDepend().contains("Slimefun"))
addons.add(" + " + p.getName() + " " + p.getDescription().getVersion());
}
else {
plugins.add(" - " + p.getName() + " " + p.getDescription().getVersion());
if (p.getDescription().getDepend().contains("Slimefun") || p.getDescription().getSoftDepend().contains("Slimefun"))
addons.add(" - " + p.getName() + " " + p.getDescription().getVersion());
}
}
try {
PrintStream stream = new PrintStream(file);
stream.println();
stream.println("Server Software: " + Bukkit.getName());
stream.println(" Build: " + Bukkit.getVersion());
stream.println(" Minecraft: " + Bukkit.getBukkitVersion());
stream.println();
stream.println("Slimefun Environment:");
stream.println(" CS-CoreLib v" + CSCoreLib.getLib().getDescription().getVersion());
stream.println(" Slimefun v" + SlimefunStartup.instance.getDescription().getVersion());
stream.println();
List<String> plugins = new ArrayList<>();
List<String> addons = new ArrayList<>();
for (Plugin p: Bukkit.getPluginManager().getPlugins()) {
if (Bukkit.getPluginManager().isPluginEnabled(p)) {
plugins.add(" + " + p.getName() + " " + p.getDescription().getVersion());
if (p.getDescription().getDepend().contains("Slimefun") || p.getDescription().getSoftDepend().contains("Slimefun"))
addons.add(" + " + p.getName() + " " + p.getDescription().getVersion());
}
else {
plugins.add(" - " + p.getName() + " " + p.getDescription().getVersion());
if (p.getDescription().getDepend().contains("Slimefun") || p.getDescription().getSoftDepend().contains("Slimefun"))
addons.add(" - " + p.getName() + " " + p.getDescription().getVersion());
}
}
stream.println(" Installed Addons (" + addons.size() + ")");
for (String addon : addons) {
stream.println(addon);
}
stream.println();
stream.println("Installed Plugins (" + plugins.size() + "):");
for (String plugin : plugins) {
stream.println(plugin);
}
stream.println();
stream.println("Ticked Block:");
stream.println(" World: " + l.getWorld().getName());
stream.println(" X: " + l.getBlockX());
stream.println(" Y: " + l.getBlockY());
stream.println(" Z: " + l.getBlockZ());
stream.println();
stream.println("Slimefun Data:");
stream.println(" ID: " + item.getID());
stream.println(" Inventory: " + BlockStorage.getStorage(l.getWorld()).hasInventory(l));
stream.println(" Data: " + BlockStorage.getBlockInfoAsJson(l));
stream.println();
stream.println("Stacktrace:");
stream.println();
x.printStackTrace(stream);
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
stream.println(" Installed Addons (" + addons.size() + ")");
for (String addon : addons) {
stream.println(addon);
}
stream.println();
stream.println("Installed Plugins (" + plugins.size() + "):");
for (String plugin : plugins) {
stream.println(plugin);
}
stream.println();
stream.println("Ticked Block:");
stream.println(" World: " + l.getWorld().getName());
stream.println(" X: " + l.getBlockX());
stream.println(" Y: " + l.getBlockY());
stream.println(" Z: " + l.getBlockZ());
stream.println();
stream.println("Slimefun Data:");
stream.println(" ID: " + item.getID());
stream.println(" Inventory: " + BlockStorage.getStorage(l.getWorld()).hasInventory(l));
stream.println(" Data: " + BlockStorage.getBlockInfoAsJson(l));
stream.println();
stream.println("Stacktrace:");
stream.println();
x.printStackTrace(stream);
System.err.println("[Slimefun] Exception caught while ticking a Block:" + x.getClass().getName());
System.err.println("[Slimefun] X: " + l.getBlockX() + " Y: " + l.getBlockY() + " Z: " + l.getBlockZ());
System.err.println("[Slimefun] Saved as: ");
System.err.println("[Slimefun] /plugins/Slimefun/error-reports/" + file.getName());
System.err.println("[Slimefun] Please consider sending this File to the developer(s) of Slimefun, sending this Error won't get you any help though.");
System.err.println("[Slimefun] ");
bugged_blocks.put(l, errors);
}
else if (errors == 4) {
System.err.println("[Slimefun] X: " + l.getBlockX() + " Y: " + l.getBlockY() + " Z: " + l.getBlockZ() + "(" + item.getID() + ")");
System.err.println("[Slimefun] has thrown 4 Exceptions in the last 4 Ticks, the Block has been terminated.");
System.err.println("[Slimefun] Check your /plugins/Slimefun/error-reports/ folder for details.");
System.err.println("[Slimefun] ");
BlockStorage._integrated_removeBlockInfo(l, true);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
l.getBlock().setType(Material.AIR);
}
});
}
else {
bugged_blocks.put(l, errors);
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.err.println("[Slimefun] Exception caught while ticking a Block:" + x.getClass().getName());
System.err.println("[Slimefun] X: " + l.getBlockX() + " Y: " + l.getBlockY() + " Z: " + l.getBlockZ());
System.err.println("[Slimefun] Saved as: ");
System.err.println("[Slimefun] /plugins/Slimefun/error-reports/" + file.getName());
System.err.println("[Slimefun] Please consider sending this File to the developer(s) of Slimefun, sending this Error won't get you any help though.");
System.err.println("[Slimefun] ");
bugged_blocks.put(l, errors);
}
else if (errors == 4) {
System.err.println("[Slimefun] X: " + l.getBlockX() + " Y: " + l.getBlockY() + " Z: " + l.getBlockZ() + "(" + item.getID() + ")");
System.err.println("[Slimefun] has thrown 4 Exceptions in the last 4 Ticks, the Block has been terminated.");
System.err.println("[Slimefun] Check your /plugins/Slimefun/error-reports/ folder for details.");
System.err.println("[Slimefun] ");
BlockStorage._integrated_removeBlockInfo(l, true);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
l.getBlock().setType(Material.AIR);
});
}
else {
bugged_blocks.put(l, errors);
}
}
});
@ -273,13 +264,8 @@ public class TickerTask implements Runnable {
BlockStorage._integrated_removeBlockInfo(l, true);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
l.getBlock().setType(Material.AIR);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
l.getBlock().setType(Material.AIR);
});
}
else {
@ -300,7 +286,7 @@ public class TickerTask implements Runnable {
map_chunktime.put(c, System.currentTimeMillis() - timestamp2);
}
}
for (Map.Entry<Location, Location> entry: move.entrySet()) {
BlockStorage._integrated_moveLocationInfo(entry.getKey(), entry.getValue());
}

View File

@ -106,22 +106,18 @@ public class ChargableBlock {
}
private static void updateTexture(final Location l) throws Exception {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
try {
Block b = l.getBlock();
int charge = getCharge(b), capacity = getMaxCharge(b);
if (b.getState() instanceof Skull) {
if (charge < (int) (capacity * 0.25D)) CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ==");
else if (charge < (int) (capacity * 0.5D)) CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzA1MzIzMzk0YTdkOTFiZmIzM2RmMDZkOTJiNjNjYjQxNGVmODBmMDU0ZDA0NzM0ZWEwMTVhMjNjNTM5In19fQ==");
else if (charge < (int) (capacity * 0.75D)) CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTU4NDQzMmFmNmYzODIxNjcxMjAyNThkMWVlZThjODdjNmU3NWQ5ZTQ3OWU3YjBkNGM3YjZhZDQ4Y2ZlZWYifX19");
else CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2EyNTY5NDE1YzE0ZTMxYzk4ZWM5OTNhMmY5OWU2ZDY0ODQ2ZGIzNjdhMTNiMTk5OTY1YWQ5OWM0MzhjODZjIn19fQ==");
}
} catch (Exception e) {
e.printStackTrace();
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
try {
Block b = l.getBlock();
int charge = getCharge(b), capacity = getMaxCharge(b);
if (b.getState() instanceof Skull) {
if (charge < (int) (capacity * 0.25D)) CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ==");
else if (charge < (int) (capacity * 0.5D)) CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzA1MzIzMzk0YTdkOTFiZmIzM2RmMDZkOTJiNjNjYjQxNGVmODBmMDU0ZDA0NzM0ZWEwMTVhMjNjNTM5In19fQ==");
else if (charge < (int) (capacity * 0.75D)) CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTU4NDQzMmFmNmYzODIxNjcxMjAyNThkMWVlZThjODdjNmU3NWQ5ZTQ3OWU3YjBkNGM3YjZhZDQ4Y2ZlZWYifX19");
else CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2EyNTY5NDE1YzE0ZTMxYzk4ZWM5OTNhMmY5OWU2ZDY0ODQ2ZGIzNjdhMTNiMTk5OTY1YWQ5OWM0MzhjODZjIn19fQ==");
}
} catch (Exception e) {
e.printStackTrace();
}
});
}

View File

@ -148,13 +148,9 @@ public class EnergyNet extends Network {
if (item.getEnergyTicker().explode(source)) {
BlockStorage.clearBlockInfo(source);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
source.getBlock().setType(Material.LAVA);
source.getWorld().createExplosion(source, 0F, false);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
source.getBlock().setType(Material.LAVA);
source.getWorld().createExplosion(source, 0F, false);
});
}
else {

View File

@ -157,10 +157,8 @@ public abstract class BlockMenuPreset extends ChestMenu {
}
public void newInstance(final BlockMenu menu, final Location l) {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
public void run() {
newInstance(menu, l.getBlock());
}
Bukkit.getScheduler().runTask(SlimefunStartup.instance, () -> {
newInstance(menu, l.getBlock());
});
}

View File

@ -195,210 +195,246 @@ public class CargoNet extends Network {
CargoNet self = this;
final BlockStorage storage = BlockStorage.getStorage(b.getWorld());
SlimefunStartup.instance.getServer().getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
SlimefunStartup.instance.getServer().getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
if (BlockStorage.getLocationInfo(b.getLocation(), "visualizer") == null) {
self.display();
}
//Chest Terminal Code
if (EXTRA_CHANNELS) {
for (Location bus: imports) {
BlockMenu menu = BlockStorage.getInventory(bus);
@Override
public void run() {
if (BlockStorage.getLocationInfo(b.getLocation(), "visualizer") == null) {
self.display();
if (menu.getItemInSlot(17) == null) {
Block target = getAttachedBlock(bus.getBlock());
ItemSlot stack = CargoManager.withdraw(bus.getBlock(), storage, target, -1);
if (stack != null) {
menu.replaceExistingItem(17, stack.getItem());
}
}
if (menu.getItemInSlot(17) != null) {
requests.add(new ItemRequest(bus, 17, menu.getItemInSlot(17), ItemTransportFlow.INSERT));
}
}
//Chest Terminal Code
if (EXTRA_CHANNELS) {
for (Location bus: imports) {
BlockMenu menu = BlockStorage.getInventory(bus);
if (menu.getItemInSlot(17) == null) {
Block target = getAttachedBlock(bus.getBlock());
ItemSlot stack = CargoManager.withdraw(bus.getBlock(), storage, target, -1);
for (Location bus: exports) {
BlockMenu menu = BlockStorage.getInventory(bus);
if (menu.getItemInSlot(17) != null) {
Block target = getAttachedBlock(bus.getBlock());
menu.replaceExistingItem(17, CargoManager.insert(bus.getBlock(), storage, target, menu.getItemInSlot(17), -1));
}
if (menu.getItemInSlot(17) == null) {
List<ItemStack> items = new ArrayList<ItemStack>();
for (int slot: slots) {
ItemStack template = menu.getItemInSlot(slot);
if (template != null) items.add(new CustomItem(template, 1));
}
if (!items.isEmpty()) {
int index = Integer.parseInt(BlockStorage.getLocationInfo(bus, "index"));
index++;
if (index > (items.size() - 1)) index = 0;
BlockStorage.addBlockInfo(bus, "index", String.valueOf(index));
requests.add(new ItemRequest(bus, 17, items.get(index), ItemTransportFlow.WITHDRAW));
}
}
}
Iterator<ItemRequest> iterator = requests.iterator();
while (iterator.hasNext()) {
ItemRequest request = iterator.next();
if (terminals.contains(request.getTerminal()) || imports.contains(request.getTerminal()) || exports.contains(request.getTerminal())) {
BlockMenu menu = BlockStorage.getInventory(request.getTerminal());
switch (request.getDirection()) {
case INSERT: {
ItemStack stack = request.getItem();
nodes:
for (Location l: destinations) {
Block target = getAttachedBlock(l.getBlock());
stack = CargoManager.insert(l.getBlock(), storage, target, stack, -1);
if (stack == null) {
menu.replaceExistingItem(request.getSlot(), null);
break nodes;
}
}
if (stack != null) {
menu.replaceExistingItem(17, stack.getItem());
}
}
if (menu.getItemInSlot(17) != null) {
requests.add(new ItemRequest(bus, 17, menu.getItemInSlot(17), ItemTransportFlow.INSERT));
}
}
for (Location bus: exports) {
BlockMenu menu = BlockStorage.getInventory(bus);
if (menu.getItemInSlot(17) != null) {
Block target = getAttachedBlock(bus.getBlock());
menu.replaceExistingItem(17, CargoManager.insert(bus.getBlock(), storage, target, menu.getItemInSlot(17), -1));
}
if (menu.getItemInSlot(17) == null) {
List<ItemStack> items = new ArrayList<ItemStack>();
for (int slot: slots) {
ItemStack template = menu.getItemInSlot(slot);
if (template != null) items.add(new CustomItem(template, 1));
menu.replaceExistingItem(request.getSlot(), stack);
}
if (!items.isEmpty()) {
int index = Integer.parseInt(BlockStorage.getLocationInfo(bus, "index"));
index++;
if (index > (items.size() - 1)) index = 0;
BlockStorage.addBlockInfo(bus, "index", String.valueOf(index));
requests.add(new ItemRequest(bus, 17, items.get(index), ItemTransportFlow.WITHDRAW));
}
iterator.remove();
break;
}
}
case WITHDRAW: {
int slot = request.getSlot();
ItemStack prevStack = menu.getItemInSlot(slot);
if (!(prevStack == null || (prevStack.getAmount() + request.getItem().getAmount() <= prevStack.getMaxStackSize() && SlimefunManager.isItemSimiliar(prevStack, new CustomItem(request.getItem(), 1), true, DataType.ALWAYS)))) {
iterator.remove();
break;
}
Iterator<ItemRequest> iterator = requests.iterator();
while (iterator.hasNext()) {
ItemRequest request = iterator.next();
if (terminals.contains(request.getTerminal()) || imports.contains(request.getTerminal()) || exports.contains(request.getTerminal())) {
BlockMenu menu = BlockStorage.getInventory(request.getTerminal());
switch (request.getDirection()) {
case INSERT: {
ItemStack stack = request.getItem();
nodes:
for (Location l: destinations) {
Block target = getAttachedBlock(l.getBlock());
stack = CargoManager.insert(l.getBlock(), storage, target, stack, -1);
ItemStack stack = null;
ItemStack requested = request.getItem();
nodes:
for (Location l: providers) {
Block target = getAttachedBlock(l.getBlock());
ItemStack is = CargoManager.withdraw(l.getBlock(), storage, target, requested);
if (is != null) {
if (stack == null) {
menu.replaceExistingItem(request.getSlot(), null);
stack = is;
}
else {
stack = new CustomItem(stack, stack.getAmount() + is.getAmount());
}
if (is.getAmount() == requested.getAmount()) {
break nodes;
}
else {
requested = new CustomItem(requested, requested.getAmount() - is.getAmount());
}
}
if (stack != null) {
menu.replaceExistingItem(request.getSlot(), stack);
}
iterator.remove();
break;
}
case WITHDRAW: {
int slot = request.getSlot();
ItemStack prevStack = menu.getItemInSlot(slot);
if (!(prevStack == null || (prevStack.getAmount() + request.getItem().getAmount() <= prevStack.getMaxStackSize() && SlimefunManager.isItemSimiliar(prevStack, new CustomItem(request.getItem(), 1), true, DataType.ALWAYS)))) {
iterator.remove();
break;
}
ItemStack stack = null;
ItemStack requested = request.getItem();
nodes:
for (Location l: providers) {
Block target = getAttachedBlock(l.getBlock());
ItemStack is = CargoManager.withdraw(l.getBlock(), storage, target, requested);
if (is != null) {
if (stack == null) {
stack = is;
}
else {
stack = new CustomItem(stack, stack.getAmount() + is.getAmount());
}
if (stack != null) {
ItemStack prev = menu.getItemInSlot(slot);
if (is.getAmount() == requested.getAmount()) {
break nodes;
}
else {
requested = new CustomItem(requested, requested.getAmount() - is.getAmount());
}
if (prev == null) menu.replaceExistingItem(slot, stack);
else menu.replaceExistingItem(slot, new CustomItem(stack, stack.getAmount() + prev.getAmount()));
}
iterator.remove();
break;
}
default: {
break;
}
}
}
}
}
// 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) {
continue;
}
Block inputTarget = getAttachedBlock(input.getBlock());
ItemStack stack = null;
int previousSlot = -1;
boolean roundrobin = BlockStorage.getLocationInfo(input, "round-robin").equals("true");
if (inputTarget != null) {
ItemSlot slot = CargoManager.withdraw(input.getBlock(), storage, inputTarget, Integer.parseInt(BlockStorage.getLocationInfo(input, "index")));
if (slot != null) {
stack = slot.getItem();
previousSlot = slot.getSlot();
}
}
if (stack != null && output.containsKey(frequency)) {
List<Location> outputlist = new ArrayList<Location>(output.get(frequency));
if (roundrobin) {
if (!round_robin.containsKey(input)) {
round_robin.put(input, 0);
}
int c_index = round_robin.get(input);
if (c_index < outputlist.size()) {
for (int i = 0; i < c_index; i++) {
final Location temp = outputlist.get(0);
outputlist.remove(temp);
outputlist.add(temp);
}
c_index++;
}
else c_index = 1;
round_robin.put(input, c_index);
}
destinations:
for (Location out: outputlist) {
Block target = getAttachedBlock(out.getBlock());
if (target != null) {
stack = CargoManager.insert(out.getBlock(), storage, target, stack, -1);
if (stack == null) break destinations;
}
}
}
if (stack != null && previousSlot > -1) {
if (storage.hasUniversalInventory(inputTarget)) {
UniversalBlockMenu menu = storage.getUniversalInventory(inputTarget);
menu.replaceExistingItem(previousSlot, stack);
}
else if (storage.hasInventory(inputTarget.getLocation())) {
BlockMenu menu = BlockStorage.getInventory(inputTarget.getLocation());
menu.replaceExistingItem(previousSlot, stack);
}
else if (inputTarget.getState() instanceof InventoryHolder) {
Inventory inv = ((InventoryHolder) inputTarget.getState()).getInventory();
inv.setItem(previousSlot, stack);
}
}
}
//Chest Terminal Code
if (EXTRA_CHANNELS) {
List<StoredItem> items = new ArrayList<StoredItem>();
for (Location l: providers) {
Block target = getAttachedBlock(l.getBlock());
if (storage.hasUniversalInventory(target)) {
UniversalBlockMenu menu = storage.getUniversalInventory(target);
for (int slot: menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) {
ItemStack is = menu.getItemInSlot(slot);
if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) {
boolean add = true;
for (StoredItem item: items) {
if (SlimefunManager.isItemSimiliar(is, item.getItem(), true, DataType.ALWAYS)) {
add = false;
item.add(is.getAmount());
}
}
if (stack != null) {
ItemStack prev = menu.getItemInSlot(slot);
if (prev == null) menu.replaceExistingItem(slot, stack);
else menu.replaceExistingItem(slot, new CustomItem(stack, stack.getAmount() + prev.getAmount()));
if (add) {
items.add(new StoredItem(new CustomItem(is, 1), is.getAmount()));
}
iterator.remove();
break;
}
default: {
break;
}
}
}
}
}
// 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) {
continue;
}
Block inputTarget = getAttachedBlock(input.getBlock());
ItemStack stack = null;
int previousSlot = -1;
else if (storage.hasInventory(target.getLocation())) {
BlockMenu menu = BlockStorage.getInventory(target.getLocation());
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)) {
boolean add = true;
for (StoredItem item: items) {
if (SlimefunManager.isItemSimiliar(is, item.getItem(), true, DataType.ALWAYS)) {
add = false;
item.add(is.getAmount() + stored);
}
}
boolean roundrobin = BlockStorage.getLocationInfo(input, "round-robin").equals("true");
if (inputTarget != null) {
ItemSlot slot = CargoManager.withdraw(input.getBlock(), storage, inputTarget, Integer.parseInt(BlockStorage.getLocationInfo(input, "index")));
if (slot != null) {
stack = slot.getItem();
previousSlot = slot.getSlot();
}
}
if (stack != null && output.containsKey(frequency)) {
List<Location> outputlist = new ArrayList<Location>(output.get(frequency));
if (roundrobin) {
if (!round_robin.containsKey(input)) {
round_robin.put(input, 0);
}
int c_index = round_robin.get(input);
if (c_index < outputlist.size()) {
for (int i = 0; i < c_index; i++) {
final Location temp = outputlist.get(0);
outputlist.remove(temp);
outputlist.add(temp);
if (add) {
items.add(new StoredItem(new CustomItem(is, 1), is.getAmount() + stored));
}
}
c_index++;
}
else c_index = 1;
round_robin.put(input, c_index);
}
destinations:
for (Location out: outputlist) {
Block target = getAttachedBlock(out.getBlock());
if (target != null) {
stack = CargoManager.insert(out.getBlock(), storage, target, stack, -1);
if (stack == null) break destinations;
}
}
}
if (stack != null && previousSlot > -1) {
if (storage.hasUniversalInventory(inputTarget)) {
UniversalBlockMenu menu = storage.getUniversalInventory(inputTarget);
menu.replaceExistingItem(previousSlot, stack);
}
else if (storage.hasInventory(inputTarget.getLocation())) {
BlockMenu menu = BlockStorage.getInventory(inputTarget.getLocation());
menu.replaceExistingItem(previousSlot, stack);
}
else if (inputTarget.getState() instanceof InventoryHolder) {
Inventory inv = ((InventoryHolder) inputTarget.getState()).getInventory();
inv.setItem(previousSlot, stack);
}
}
}
//Chest Terminal Code
if (EXTRA_CHANNELS) {
List<StoredItem> items = new ArrayList<StoredItem>();
for (Location l: providers) {
Block target = getAttachedBlock(l.getBlock());
if (storage.hasUniversalInventory(target)) {
UniversalBlockMenu menu = storage.getUniversalInventory(target);
else {
for (int slot: menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) {
ItemStack is = menu.getItemInSlot(slot);
if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) {
@ -416,120 +452,79 @@ 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.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)) {
boolean add = true;
for (StoredItem item: items) {
if (SlimefunManager.isItemSimiliar(is, item.getItem(), true, DataType.ALWAYS)) {
add = false;
item.add(is.getAmount() + stored);
}
}
if (add) {
items.add(new StoredItem(new CustomItem(is, 1), is.getAmount() + stored));
}
}
}
}
else {
for (int slot: menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) {
ItemStack is = menu.getItemInSlot(slot);
if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) {
boolean add = true;
for (StoredItem item: items) {
if (SlimefunManager.isItemSimiliar(is, item.getItem(), true, DataType.ALWAYS)) {
add = false;
item.add(is.getAmount());
}
}
if (add) {
items.add(new StoredItem(new CustomItem(is, 1), is.getAmount()));
}
}
}
}
}
else if (target.getState() instanceof InventoryHolder) {
Inventory inv = ((InventoryHolder) target.getState()).getInventory();
for (ItemStack is: inv.getContents()) {
if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) {
boolean add = true;
for (StoredItem item: items) {
if (SlimefunManager.isItemSimiliar(is, item.getItem(), true, DataType.ALWAYS)) {
add = false;
item.add(is.getAmount());
}
}
if (add) {
items.add(new StoredItem(new CustomItem(is, 1), is.getAmount()));
}
}
}
}
}
Collections.sort(items, sorter);
for (final Location l: terminals) {
BlockMenu menu = BlockStorage.getInventory(l);
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));
}
for (int i = 0; i < terminal_slots.length; i++) {
int slot = terminal_slots[i];
if (items.size() > i + (terminal_slots.length * (page - 1))) {
final StoredItem item = items.get(i + (terminal_slots.length * (page - 1)));
ItemStack stack = item.getItem().clone();
ItemMeta im = stack.getItemMeta();
List<String> lore = new ArrayList<String>();
lore.add("");
lore.add(ChatColor.translateAlternateColorCodes('&', "&7Stored Items: &r" + DoubleHandler.getFancyDouble(item.getAmount())));
if (stack.getMaxStackSize() > 1) lore.add(ChatColor.translateAlternateColorCodes('&', "&7<Left Click: Request 1 | Right Click: Request " + (item.getAmount() > stack.getMaxStackSize() ? stack.getMaxStackSize(): item.getAmount()) + ">"));
else lore.add(ChatColor.translateAlternateColorCodes('&', "&7<Left Click: Request 1>"));
lore.add("");
if (im.hasLore()) {
for (String line: im.getLore()) {
lore.add(line);
else if (target.getState() instanceof InventoryHolder) {
Inventory inv = ((InventoryHolder) target.getState()).getInventory();
for (ItemStack is: inv.getContents()) {
if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) {
boolean add = true;
for (StoredItem item: items) {
if (SlimefunManager.isItemSimiliar(is, item.getItem(), true, DataType.ALWAYS)) {
add = false;
item.add(is.getAmount());
}
}
im.setLore(lore);
stack.setItemMeta(im);
menu.replaceExistingItem(slot, stack);
menu.addMenuClickHandler(slot, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack is, ClickAction action) {
requests.add(new ItemRequest(l, 44, new CustomItem(item.getItem(), action.isRightClicked() ? (item.getAmount() > item.getItem().getMaxStackSize() ? item.getItem().getMaxStackSize(): item.getAmount()): 1), ItemTransportFlow.WITHDRAW));
return false;
}
});
if (add) {
items.add(new StoredItem(new CustomItem(is, 1), is.getAmount()));
}
}
else {
menu.replaceExistingItem(slot, terminal_noitem_item);
menu.addMenuClickHandler(slot, terminal_noitem_handler);
}
}
ItemStack sent_item = menu.getItemInSlot(17);
if (sent_item != null) {
requests.add(new ItemRequest(l, 17, sent_item, ItemTransportFlow.INSERT));
}
}
}
Collections.sort(items, sorter);
for (final Location l: terminals) {
BlockMenu menu = BlockStorage.getInventory(l);
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));
}
for (int i = 0; i < terminal_slots.length; i++) {
int slot = terminal_slots[i];
if (items.size() > i + (terminal_slots.length * (page - 1))) {
final StoredItem item = items.get(i + (terminal_slots.length * (page - 1)));
ItemStack stack = item.getItem().clone();
ItemMeta im = stack.getItemMeta();
List<String> lore = new ArrayList<String>();
lore.add("");
lore.add(ChatColor.translateAlternateColorCodes('&', "&7Stored Items: &r" + DoubleHandler.getFancyDouble(item.getAmount())));
if (stack.getMaxStackSize() > 1) lore.add(ChatColor.translateAlternateColorCodes('&', "&7<Left Click: Request 1 | Right Click: Request " + (item.getAmount() > stack.getMaxStackSize() ? stack.getMaxStackSize(): item.getAmount()) + ">"));
else lore.add(ChatColor.translateAlternateColorCodes('&', "&7<Left Click: Request 1>"));
lore.add("");
if (im.hasLore()) {
for (String line: im.getLore()) {
lore.add(line);
}
}
im.setLore(lore);
stack.setItemMeta(im);
menu.replaceExistingItem(slot, stack);
menu.addMenuClickHandler(slot, new MenuClickHandler() {
@Override
public boolean onClick(Player p, int slot, ItemStack is, ClickAction action) {
requests.add(new ItemRequest(l, 44, new CustomItem(item.getItem(), action.isRightClicked() ? (item.getAmount() > item.getItem().getMaxStackSize() ? item.getItem().getMaxStackSize(): item.getAmount()): 1), ItemTransportFlow.WITHDRAW));
return false;
}
});
}
else {
menu.replaceExistingItem(slot, terminal_noitem_item);
menu.addMenuClickHandler(slot, terminal_noitem_handler);
}
}
ItemStack sent_item = menu.getItemInSlot(17);
if (sent_item != null) {
requests.add(new ItemRequest(l, 17, sent_item, ItemTransportFlow.INSERT));
}
}
}
});
}

View File

@ -13,13 +13,9 @@ import me.mrCookieSlime.Slimefun.SlimefunStartup;
public class CargoHologram {
public static void update(final Block b, final String name) {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
ArmorStand hologram = getArmorStand(b);
hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name));
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
ArmorStand hologram = getArmorStand(b);
hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name));
});
}
@ -31,7 +27,7 @@ public class CargoHologram {
private static ArmorStand getArmorStand(Block b) {
Location l = new Location(b.getWorld(), b.getX() + 0.5, b.getY() - 0.7F, b.getZ() + 0.5);
for (Entity n: l.getChunk().getEntities()) {
for (Entity n : l.getChunk().getEntities()) {
if (n instanceof ArmorStand) {
if (n.getCustomName() != null && l.distanceSquared(n.getLocation()) < 0.4D) return (ArmorStand) n;
}

View File

@ -18,31 +18,23 @@ public class EnergyHologram {
}
public static void update(final Block b, final String name) {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
ArmorStand hologram = getArmorStand(b);
hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name));
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
ArmorStand hologram = getArmorStand(b);
hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name));
});
}
public static void remove(final Block b) {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
ArmorStand hologram = getArmorStand(b);
hologram.remove();
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
ArmorStand hologram = getArmorStand(b);
hologram.remove();
});
}
private static ArmorStand getArmorStand(Block b) {
Location l = new Location(b.getWorld(), b.getX() + 0.5, b.getY() - 0.7F, b.getZ() + 0.5);
for (Entity n: l.getChunk().getEntities()) {
for (Entity n : l.getChunk().getEntities()) {
if (n instanceof ArmorStand) {
if (n.getCustomName() != null && l.distanceSquared(n.getLocation()) < 0.4D) return (ArmorStand) n;
}

View File

@ -28,14 +28,10 @@ public class ReactorHologram {
}
public static void update(final Location l, final String name) {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
ArmorStand hologram = getArmorStand(l);
if (!hologram.isCustomNameVisible()) hologram.setCustomNameVisible(true);
hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name));
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
ArmorStand hologram = getArmorStand(l);
if (!hologram.isCustomNameVisible()) hologram.setCustomNameVisible(true);
hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name));
});
}

View File

@ -6,18 +6,6 @@ import java.util.List;
import java.util.Set;
import java.util.UUID;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Variable;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
import me.mrCookieSlime.CSCoreLibPlugin.general.Player.PlayerInventory;
import me.mrCookieSlime.CSCoreLibPlugin.general.String.StringUtils;
import me.mrCookieSlime.Slimefun.SlimefunStartup;
import me.mrCookieSlime.Slimefun.AncientAltar.Pedestals;
import me.mrCookieSlime.Slimefun.AncientAltar.RitualAnimation;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Setup.Messages;
import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.Variables;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
@ -36,6 +24,18 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.util.Vector;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Variable;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
import me.mrCookieSlime.CSCoreLibPlugin.general.Player.PlayerInventory;
import me.mrCookieSlime.CSCoreLibPlugin.general.String.StringUtils;
import me.mrCookieSlime.Slimefun.SlimefunStartup;
import me.mrCookieSlime.Slimefun.AncientAltar.Pedestals;
import me.mrCookieSlime.Slimefun.AncientAltar.RitualAnimation;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Setup.Messages;
import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.Variables;
public class AncientAltarListener implements Listener {
public AncientAltarListener(SlimefunStartup plugin) {
@ -45,7 +45,7 @@ public class AncientAltarListener implements Listener {
List<Block> altars = new ArrayList<Block>();
Set<UUID> removed_items = new HashSet<UUID>();
@EventHandler(priority=EventPriority.HIGH, ignoreCancelled = true)
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onInteract(PlayerInteractEvent e) {
if (e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
Block b = e.getClickedBlock();
@ -70,12 +70,8 @@ public class AncientAltarListener implements Listener {
final UUID uuid = stack.getUniqueId();
removed_items.add(uuid);
SlimefunStartup.instance.getServer().getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
removed_items.remove(uuid);
}
SlimefunStartup.instance.getServer().getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
removed_items.remove(uuid);
}, 30L);
stack.remove();
@ -180,7 +176,7 @@ public class AncientAltarListener implements Listener {
}
}
@EventHandler (priority = EventPriority.HIGHEST, ignoreCancelled = true)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockPlace(BlockPlaceEvent e) {
Block b = e.getBlockPlaced().getRelative(0, -1, 0);
SlimefunItem item = BlockStorage.check(b);
@ -190,4 +186,5 @@ public class AncientAltarListener implements Listener {
e.setCancelled(true);
}
}
}

View File

@ -26,24 +26,21 @@ public class AndroidKillingListener implements Listener {
plugin.getServer().getPluginManager().registerEvents(this, plugin);
}
@EventHandler(priority=EventPriority.HIGHEST)
@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, new Runnable() {
@Override
public void run() {
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();
}
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();
}
switch (e.getEntityType()) {
}
switch (e.getEntityType()) {
case BLAZE: {
items.add(new ItemStack(Material.BLAZE_ROD, 1 + CSCoreLib.randomizer().nextInt(2)));
break;
@ -58,12 +55,11 @@ public class AndroidKillingListener implements Listener {
}
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));
}
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;
}

View File

@ -84,13 +84,9 @@ public class BowListener implements Listener {
n.remove();
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
Variables.jump.remove(p.getUniqueId());
Variables.remove.remove(p.getUniqueId());
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
Variables.jump.remove(p.getUniqueId());
Variables.remove.remove(p.getUniqueId());
}, 20L);
}
}

View File

@ -204,7 +204,13 @@ public class ItemListener implements Listener {
for (ItemHandler handler : SlimefunItem.getHandlers("ItemInteractionHandler")) {
if (((ItemInteractionHandler) handler).onRightClick(e, p, item)) return;
}
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DURALUMIN_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.SOLDER_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.BILLON_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.STEEL_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBONADO_MULTI_TOOL, false)) {
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DURALUMIN_MULTI_TOOL, false)
|| SlimefunManager.isItemSimiliar(item, SlimefunItems.SOLDER_MULTI_TOOL, false)
|| SlimefunManager.isItemSimiliar(item, SlimefunItems.BILLON_MULTI_TOOL, false)
|| SlimefunManager.isItemSimiliar(item, SlimefunItems.STEEL_MULTI_TOOL, false)
|| SlimefunManager.isItemSimiliar(item, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, false)
|| SlimefunManager.isItemSimiliar(item, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, false)
|| SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBONADO_MULTI_TOOL, false)) {
e.setCancelled(true);
ItemStack tool = null;
for (ItemStack mTool : new ItemStack[] {SlimefunItems.DURALUMIN_MULTI_TOOL, SlimefunItems.SOLDER_MULTI_TOOL, SlimefunItems.BILLON_MULTI_TOOL, SlimefunItems.STEEL_MULTI_TOOL, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, SlimefunItems.CARBONADO_MULTI_TOOL}) {
@ -329,15 +335,10 @@ public class ItemListener implements Listener {
// Remove the glass bottle once drunk
final int m = mode;
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
@Override
public void run() {
if (m == 0) p.getEquipment().setItemInMainHand(null);
else if (m == 1) p.getEquipment().setItemInOffHand(null);
else if (m == 2) p.getInventory().removeItem(new ItemStack(Material.GLASS_BOTTLE, 1));
}
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
if (m == 0) p.getEquipment().setItemInMainHand(null);
else if (m == 1) p.getEquipment().setItemInOffHand(null);
else if (m == 2) p.getInventory().removeItem(new ItemStack(Material.GLASS_BOTTLE, 1));
}, 0L);
}
}