Add an InventoryMixin to prepare nms removal
This commit is contained in:
parent
8b175ba9a6
commit
5908636ef2
@ -2,14 +2,12 @@ package com.massivecraft.massivecore.adapter;
|
|||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
|
||||||
import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventoryCustom;
|
|
||||||
import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventoryPlayer;
|
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.PlayerInventory;
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
|
|
||||||
import com.massivecraft.massivecore.MassiveCore;
|
import com.massivecraft.massivecore.MassiveCore;
|
||||||
import com.massivecraft.massivecore.inventory.MassiveCorePlayerInventory;
|
import com.massivecraft.massivecore.mixin.Mixin;
|
||||||
import com.massivecraft.massivecore.xlib.gson.JsonDeserializationContext;
|
import com.massivecraft.massivecore.xlib.gson.JsonDeserializationContext;
|
||||||
import com.massivecraft.massivecore.xlib.gson.JsonDeserializer;
|
import com.massivecraft.massivecore.xlib.gson.JsonDeserializer;
|
||||||
import com.massivecraft.massivecore.xlib.gson.JsonElement;
|
import com.massivecraft.massivecore.xlib.gson.JsonElement;
|
||||||
@ -162,7 +160,7 @@ public class InventoryAdapter implements JsonDeserializer<Inventory>, JsonSerial
|
|||||||
size = 36;
|
size = 36;
|
||||||
|
|
||||||
// This is a PlayerInventory
|
// This is a PlayerInventory
|
||||||
ret = new CraftInventoryPlayer(new MassiveCorePlayerInventory());
|
ret = Mixin.createPlayerInventory();
|
||||||
PlayerInventory pret = (PlayerInventory)ret;
|
PlayerInventory pret = (PlayerInventory)ret;
|
||||||
|
|
||||||
// helmet
|
// helmet
|
||||||
@ -203,7 +201,7 @@ public class InventoryAdapter implements JsonDeserializer<Inventory>, JsonSerial
|
|||||||
size = jsonSize.getAsInt();
|
size = jsonSize.getAsInt();
|
||||||
|
|
||||||
// This is a "Custom" Inventory (content only).
|
// This is a "Custom" Inventory (content only).
|
||||||
ret = new CraftInventoryCustom(null, size);
|
ret = Mixin.createInventory(null, size, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now process content
|
// Now process content
|
||||||
|
14
src/com/massivecraft/massivecore/mixin/InventoryMixin.java
Normal file
14
src/com/massivecraft/massivecore/mixin/InventoryMixin.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package com.massivecraft.massivecore.mixin;
|
||||||
|
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
|
|
||||||
|
public interface InventoryMixin
|
||||||
|
{
|
||||||
|
// Create a Player Inventory without a Player
|
||||||
|
public PlayerInventory createPlayerInventory();
|
||||||
|
|
||||||
|
// Create an arbitrary size standard chest-like inventory
|
||||||
|
public Inventory createInventory(InventoryHolder holder, int size, String title);
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
package com.massivecraft.massivecore.mixin;
|
||||||
|
|
||||||
|
public abstract class InventoryMixinAbstract implements InventoryMixin
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.massivecraft.massivecore.mixin;
|
||||||
|
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
|
import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventoryCustom;
|
||||||
|
import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventoryPlayer;
|
||||||
|
|
||||||
|
public class InventoryMixinDefault extends InventoryMixinAbstract
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// INSTANCE & CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private static InventoryMixinDefault i = new InventoryMixinDefault();
|
||||||
|
public static InventoryMixinDefault get() { return i; }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// OVERRIDE
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PlayerInventory createPlayerInventory()
|
||||||
|
{
|
||||||
|
return new CraftInventoryPlayer(new MassiveCorePlayerInventory());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Inventory createInventory(InventoryHolder holder, int size, String title)
|
||||||
|
{
|
||||||
|
if (title == null)
|
||||||
|
{
|
||||||
|
title = "Chest";
|
||||||
|
}
|
||||||
|
return new CraftInventoryCustom(holder, size, title);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package com.massivecraft.massivecore.inventory;
|
package com.massivecraft.massivecore.mixin;
|
||||||
|
|
||||||
import net.minecraft.server.v1_7_R4.EntityHuman;
|
import net.minecraft.server.v1_7_R4.EntityHuman;
|
||||||
import net.minecraft.server.v1_7_R4.ItemStack;
|
import net.minecraft.server.v1_7_R4.ItemStack;
|
@ -7,6 +7,9 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
import org.bukkit.permissions.Permissible;
|
import org.bukkit.permissions.Permissible;
|
||||||
|
|
||||||
import com.massivecraft.massivecore.Predictate;
|
import com.massivecraft.massivecore.Predictate;
|
||||||
@ -29,6 +32,10 @@ public class Mixin
|
|||||||
public static DisplayNameMixin getDisplayNameMixin() { return displayNameMixin; }
|
public static DisplayNameMixin getDisplayNameMixin() { return displayNameMixin; }
|
||||||
public static void setDisplayNameMixin(DisplayNameMixin val) { displayNameMixin = val; }
|
public static void setDisplayNameMixin(DisplayNameMixin val) { displayNameMixin = val; }
|
||||||
|
|
||||||
|
private static InventoryMixin inventoryMixin = InventoryMixinDefault.get();
|
||||||
|
public static InventoryMixin getInventoryMixin() { return inventoryMixin; }
|
||||||
|
public static void setDisplayNameMixin(InventoryMixin val) { inventoryMixin = val; }
|
||||||
|
|
||||||
private static SenderPsMixin senderPsMixin = SenderPsMixinDefault.get();
|
private static SenderPsMixin senderPsMixin = SenderPsMixinDefault.get();
|
||||||
public static SenderPsMixin getSenderPsMixin() { return senderPsMixin; }
|
public static SenderPsMixin getSenderPsMixin() { return senderPsMixin; }
|
||||||
public static void setSenderPsMixin(SenderPsMixin val) { senderPsMixin = val; }
|
public static void setSenderPsMixin(SenderPsMixin val) { senderPsMixin = val; }
|
||||||
@ -130,6 +137,20 @@ public class Mixin
|
|||||||
return getDisplayNameMixin().getDisplayName(senderObject, watcherObject);
|
return getDisplayNameMixin().getDisplayName(senderObject, watcherObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// STATIC EXPOSE: INVENTORY
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public static PlayerInventory createPlayerInventory()
|
||||||
|
{
|
||||||
|
return getInventoryMixin().createPlayerInventory();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Inventory createInventory(InventoryHolder holder, int size, String title)
|
||||||
|
{
|
||||||
|
return getInventoryMixin().createInventory(holder, size, title);
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// STATIC EXPOSE: SENDER PS
|
// STATIC EXPOSE: SENDER PS
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
@ -4,8 +4,6 @@ import java.util.HashMap;
|
|||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventoryCustom;
|
|
||||||
import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventoryPlayer;
|
|
||||||
import org.bukkit.entity.HumanEntity;
|
import org.bukkit.entity.HumanEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
@ -18,7 +16,8 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.PlayerInventory;
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
|
|
||||||
import com.massivecraft.massivecore.MassiveCore;
|
import com.massivecraft.massivecore.MassiveCore;
|
||||||
import com.massivecraft.massivecore.inventory.MassiveCorePlayerInventory;
|
import com.massivecraft.massivecore.mixin.MassiveCorePlayerInventory;
|
||||||
|
import com.massivecraft.massivecore.mixin.Mixin;
|
||||||
|
|
||||||
public class InventoryUtil
|
public class InventoryUtil
|
||||||
{
|
{
|
||||||
@ -202,15 +201,6 @@ public class InventoryUtil
|
|||||||
System.out.println("===== DEBUG END =====");
|
System.out.println("===== DEBUG END =====");
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
|
||||||
// CREATE PLAYER INVENTORY
|
|
||||||
// -------------------------------------------- //
|
|
||||||
|
|
||||||
public static PlayerInventory createPlayerInventory()
|
|
||||||
{
|
|
||||||
return new CraftInventoryPlayer(new MassiveCorePlayerInventory());
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// IS EMPTY?
|
// IS EMPTY?
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
@ -278,7 +268,7 @@ public class InventoryUtil
|
|||||||
|
|
||||||
if (inventory instanceof PlayerInventory)
|
if (inventory instanceof PlayerInventory)
|
||||||
{
|
{
|
||||||
PlayerInventory pret = createPlayerInventory();
|
PlayerInventory pret = Mixin.createPlayerInventory();
|
||||||
ret = pret;
|
ret = pret;
|
||||||
|
|
||||||
PlayerInventory pinventory = (PlayerInventory)inventory;
|
PlayerInventory pinventory = (PlayerInventory)inventory;
|
||||||
@ -290,7 +280,7 @@ public class InventoryUtil
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ret = new CraftInventoryCustom(holder, size, title);
|
ret = Mixin.createInventory(holder, size, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack[] contents = cloneItemStacks(inventory.getContents());
|
ItemStack[] contents = cloneItemStacks(inventory.getContents());
|
||||||
|
Loading…
Reference in New Issue
Block a user