mirror of
https://github.com/songoda/EpicHoppers.git
synced 2024-09-19 19:41:04 +02:00
update US API
This commit is contained in:
parent
a2781265a4
commit
c04b6b261b
@ -14,7 +14,11 @@ import com.songoda.epichoppers.hopper.HopperBuilder;
|
||||
import com.songoda.epichoppers.hopper.HopperManager;
|
||||
import com.songoda.epichoppers.hopper.levels.Level;
|
||||
import com.songoda.epichoppers.hopper.levels.LevelManager;
|
||||
import com.songoda.epichoppers.hopper.levels.modules.*;
|
||||
import com.songoda.epichoppers.hopper.levels.modules.Module;
|
||||
import com.songoda.epichoppers.hopper.levels.modules.ModuleAutoCrafting;
|
||||
import com.songoda.epichoppers.hopper.levels.modules.ModuleAutoSell;
|
||||
import com.songoda.epichoppers.hopper.levels.modules.ModuleBlockBreak;
|
||||
import com.songoda.epichoppers.hopper.levels.modules.ModuleSuction;
|
||||
import com.songoda.epichoppers.listeners.*;
|
||||
import com.songoda.epichoppers.player.PlayerDataManager;
|
||||
import com.songoda.epichoppers.storage.Storage;
|
||||
|
@ -6,6 +6,8 @@ import com.songoda.epichoppers.hopper.Hopper;
|
||||
import com.songoda.epichoppers.utils.Methods;
|
||||
import com.songoda.epichoppers.utils.ServerVersion;
|
||||
import com.songoda.epichoppers.utils.StorageContainerCache;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
@ -20,6 +22,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ModuleSuction extends Module {
|
||||
@ -30,6 +34,19 @@ public class ModuleSuction extends Module {
|
||||
|
||||
private final static boolean wildStacker = Bukkit.getPluginManager().isPluginEnabled("WildStacker");
|
||||
private final static boolean ultimateStacker = Bukkit.getPluginManager().isPluginEnabled("UltimateStacker");
|
||||
private static boolean oldUltimateStacker;
|
||||
private static Method oldUltimateStacker_updateItemAmount;
|
||||
static {
|
||||
if (ultimateStacker) {
|
||||
try {
|
||||
oldUltimateStacker_updateItemAmount = com.songoda.ultimatestacker.utils.Methods.class.getDeclaredMethod("updateItemAmount", Item.class, int.class);
|
||||
oldUltimateStacker = true;
|
||||
} catch (NoSuchMethodException | SecurityException ex) {
|
||||
}
|
||||
} else {
|
||||
oldUltimateStacker = false;
|
||||
}
|
||||
}
|
||||
|
||||
public ModuleSuction(EpicHoppers plugin, int amount) {
|
||||
super(plugin);
|
||||
@ -134,9 +151,17 @@ public class ModuleSuction extends Module {
|
||||
}
|
||||
|
||||
private void updateAmount(Item item, int amount) {
|
||||
if (ultimateStacker)
|
||||
com.songoda.ultimatestacker.utils.Methods.updateItemAmount(item, amount);
|
||||
else if (wildStacker)
|
||||
if (ultimateStacker) {
|
||||
if (oldUltimateStacker) {
|
||||
try {
|
||||
oldUltimateStacker_updateItemAmount.invoke(null, item, amount);
|
||||
} catch (Exception ex) {
|
||||
item.remove(); // not the best solution, but they should update, anyway..
|
||||
}
|
||||
} else {
|
||||
com.songoda.ultimatestacker.utils.Methods.updateItemAmount(item, item.getItemStack(), amount);
|
||||
}
|
||||
} else if (wildStacker)
|
||||
WildStackerAPI.getStackedItem(item).setStackAmount(amount, true);
|
||||
else
|
||||
item.getItemStack().setAmount(amount > item.getItemStack().getMaxStackSize()
|
||||
|
@ -20,7 +20,6 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
/**
|
||||
* Created by songoda on 2/24/2017.
|
||||
@ -298,10 +297,14 @@ public class Methods {
|
||||
private static Method getHandle, updateAdjacentComparators, getNMSBlock;
|
||||
|
||||
public static void updateAdjacentComparators(Location location) {
|
||||
if(location == null || location.getWorld() == null) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
// Cache reflection.
|
||||
if (clazzCraftWorld == null) {
|
||||
String ver = Bukkit.getServer().getClass().getPackage().getName().substring(23);
|
||||
String serverPackagePath = Bukkit.getServer().getClass().getPackage().getName();
|
||||
String ver = serverPackagePath.substring(serverPackagePath.lastIndexOf('.') + 1);
|
||||
clazzCraftWorld = Class.forName("org.bukkit.craftbukkit." + ver + ".CraftWorld");
|
||||
clazzCraftBlock = Class.forName("org.bukkit.craftbukkit." + ver + ".block.CraftBlock");
|
||||
clazzBlockPosition = Class.forName("net.minecraft.server." + ver + ".BlockPosition");
|
||||
|
Loading…
Reference in New Issue
Block a user