update US API

This commit is contained in:
jascotty2 2019-08-25 16:42:06 -05:00
parent a2781265a4
commit c04b6b261b
3 changed files with 38 additions and 6 deletions

View File

@ -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;

View File

@ -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()

View File

@ -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");