mirror of
https://github.com/songoda/UltimateStacker.git
synced 2024-11-27 12:35:17 +01:00
fix null errors, migrate internal API to new methods
This commit is contained in:
parent
413c26c914
commit
71f9636e07
@ -445,15 +445,13 @@ public class UltimateStacker extends SongodaPlugin {
|
|||||||
* @return true if this material will not stack
|
* @return true if this material will not stack
|
||||||
*/
|
*/
|
||||||
public static boolean isMaterialBlacklisted(ItemStack item) {
|
public static boolean isMaterialBlacklisted(ItemStack item) {
|
||||||
if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) {
|
CompatibleMaterial mat = CompatibleMaterial.getMaterial(item);
|
||||||
return isMaterialBlacklisted(item.getType());
|
if(mat == null) {
|
||||||
|
return true;
|
||||||
|
} else if (mat.usesData()) {
|
||||||
|
return isMaterialBlacklisted(mat.getMaterial(), mat.getData());
|
||||||
} else {
|
} else {
|
||||||
CompatibleMaterial mat = CompatibleMaterial.getMaterial(item);
|
return isMaterialBlacklisted(mat.getMaterial());
|
||||||
if (mat.usesData()) {
|
|
||||||
return isMaterialBlacklisted(mat.getMaterial(), mat.getData());
|
|
||||||
} else {
|
|
||||||
return isMaterialBlacklisted(mat.getMaterial());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -461,7 +459,7 @@ public class UltimateStacker extends SongodaPlugin {
|
|||||||
* Check to see if this material is not permitted to stack
|
* Check to see if this material is not permitted to stack
|
||||||
*
|
*
|
||||||
* @param type Material to check
|
* @param type Material to check
|
||||||
* @param data daya value for this item (for 1.12 and older servers)
|
* @param data data value for this item (for 1.12 and older servers)
|
||||||
* @return true if this material will not stack
|
* @return true if this material will not stack
|
||||||
*/
|
*/
|
||||||
public static boolean isMaterialBlacklisted(Material type, byte data) {
|
public static boolean isMaterialBlacklisted(Material type, byte data) {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.songoda.ultimatestacker.listeners;
|
package com.songoda.ultimatestacker.listeners;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.CompatibleSound;
|
import com.songoda.core.compatibility.CompatibleSound;
|
||||||
import com.songoda.core.compatibility.ServerVersion;
|
|
||||||
import com.songoda.core.utils.BlockUtils;
|
import com.songoda.core.utils.BlockUtils;
|
||||||
import com.songoda.ultimatestacker.UltimateStacker;
|
import com.songoda.ultimatestacker.UltimateStacker;
|
||||||
import com.songoda.ultimatestacker.settings.Settings;
|
import com.songoda.ultimatestacker.settings.Settings;
|
||||||
@ -37,28 +36,27 @@ public class ItemListeners implements Listener {
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
int specific = instance.getItemFile().getInt("Items." + itemStack.getType().name() + ".Max Stack Size");
|
int specific = instance.getItemFile().getInt("Items." + itemStack.getType().name() + ".Max Stack Size");
|
||||||
int max = specific == -1 && new ItemStack(itemStack.getType()).getMaxStackSize() != 1 ? maxItemStackSize : specific;
|
int max;
|
||||||
|
|
||||||
if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13) && Methods.isMaterialBlacklisted(itemStack.getType()))
|
if (UltimateStacker.isMaterialBlacklisted(itemStack))
|
||||||
max = new ItemStack(itemStack.getType()).getMaxStackSize();
|
|
||||||
|
|
||||||
if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13) && Methods.isMaterialBlacklisted(itemStack.getType(), itemStack.getData().getData()))
|
|
||||||
max = new ItemStack(itemStack.getType()).getMaxStackSize();
|
max = new ItemStack(itemStack.getType()).getMaxStackSize();
|
||||||
|
else
|
||||||
|
max = specific == -1 && new ItemStack(itemStack.getType()).getMaxStackSize() != 1 ? maxItemStackSize : specific;
|
||||||
|
|
||||||
if (max == -1) max = 1;
|
if (max == -1) max = 1;
|
||||||
|
|
||||||
int newAmount = Methods.getActualItemAmount(event.getEntity())
|
int newAmount = UltimateStacker.getActualItemAmount(event.getEntity())
|
||||||
+ Methods.getActualItemAmount(item);
|
+ UltimateStacker.getActualItemAmount(item);
|
||||||
|
|
||||||
if (newAmount > max) return;
|
if (newAmount > max) return;
|
||||||
|
|
||||||
Methods.updateItemAmount(item, itemStack, newAmount);
|
UltimateStacker.updateItemAmount(item, itemStack, newAmount);
|
||||||
event.getEntity().remove();
|
event.getEntity().remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
public void onInvPickup(InventoryPickupItemEvent event) {
|
public void onInvPickup(InventoryPickupItemEvent event) {
|
||||||
if (!Settings.STACK_ITEMS.getBoolean() || !Methods.hasCustomAmount(event.getItem())) return;
|
if (!Settings.STACK_ITEMS.getBoolean() || !UltimateStacker.hasCustomAmount(event.getItem())) return;
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
Methods.updateInventory(event.getItem(), event.getInventory());
|
Methods.updateInventory(event.getItem(), event.getInventory());
|
||||||
@ -77,7 +75,7 @@ public class ItemListeners implements Listener {
|
|||||||
return; //Compatibility with Shop instance: https://www.spigotmc.org/resources/shop-a-simple-intuitive-shop-instance.9628/
|
return; //Compatibility with Shop instance: https://www.spigotmc.org/resources/shop-a-simple-intuitive-shop-instance.9628/
|
||||||
}
|
}
|
||||||
|
|
||||||
Methods.updateItemAmount(event.getEntity(), itemStack, event.getEntity().getItemStack().getAmount());
|
UltimateStacker.updateItemAmount(event.getEntity(), itemStack, event.getEntity().getItemStack().getAmount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
|
@ -32,7 +32,7 @@ import org.bukkit.util.Vector;
|
|||||||
public class Methods {
|
public class Methods {
|
||||||
|
|
||||||
public static void updateInventory(Item item, Inventory inventory) {
|
public static void updateInventory(Item item, Inventory inventory) {
|
||||||
int amount = Methods.getActualItemAmount(item);
|
int amount = UltimateStacker.getActualItemAmount(item);
|
||||||
ItemStack itemStack = item.getItemStack();
|
ItemStack itemStack = item.getItemStack();
|
||||||
final int maxStack = itemStack.getMaxStackSize();
|
final int maxStack = itemStack.getMaxStackSize();
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ public class Methods {
|
|||||||
if (amount <= 0)
|
if (amount <= 0)
|
||||||
item.remove();
|
item.remove();
|
||||||
else
|
else
|
||||||
Methods.updateItemAmount(item, itemStack, amount);
|
UltimateStacker.updateItemAmount(item, itemStack, amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do not touch! API for older plugins
|
// Do not touch! API for older plugins
|
||||||
|
Loading…
Reference in New Issue
Block a user