Reintroduce full OpenInv #20

Closed
Phoenix616 wants to merge 4 commits from master into master
83 changed files with 474 additions and 8558 deletions
Showing only changes of commit 4058463f7f - Show all commits

View File

@@ -17,6 +17,7 @@
package com.lishid.openinv.commands; package com.lishid.openinv.commands;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -41,7 +42,8 @@ public class OpenEnderPluginCommand implements CommandExecutor {
this.plugin = plugin; this.plugin = plugin;
} }
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "You can't use this from the console."); sender.sendMessage(ChatColor.RED + "You can't use this from the console.");
return true; return true;
@@ -82,6 +84,11 @@ public class OpenEnderPluginCommand implements CommandExecutor {
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
List<Player> matches = Bukkit.matchPlayer(name);
if (!matches.isEmpty()) {
openInventory(player, matches.get(0).getUniqueId());
return;
}
final OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name); final OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name);
if (Bukkit.getPlayer(senderID) == null) { if (Bukkit.getPlayer(senderID) == null) {
return; return;

View File

@@ -17,6 +17,7 @@
package com.lishid.openinv.commands; package com.lishid.openinv.commands;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -41,7 +42,8 @@ public class OpenInvPluginCommand implements CommandExecutor {
this.plugin = plugin; this.plugin = plugin;
} }
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "You can't use this from the console."); sender.sendMessage(ChatColor.RED + "You can't use this from the console.");
return true; return true;
@@ -76,11 +78,15 @@ public class OpenInvPluginCommand implements CommandExecutor {
name = args[0]; name = args[0];
} }
sender.sendMessage(ChatColor.GREEN + "Starting inventory lookup.");
final UUID senderID = player.getUniqueId(); final UUID senderID = player.getUniqueId();
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
List<Player> matches = Bukkit.matchPlayer(name);
if (!matches.isEmpty()) {
openInventory(player, matches.get(0).getUniqueId());
return;
}
final OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name); final OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name);
if (Bukkit.getPlayer(senderID) == null) { if (Bukkit.getPlayer(senderID) == null) {
return; return;

View File

@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R2;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -22,18 +22,22 @@ import org.bukkit.entity.Player;
import com.lishid.openinv.OpenInv; import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.IAnySilentChest; import com.lishid.openinv.internal.IAnySilentChest;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_8_R1.entity.*; import net.minecraft.server.v1_8_R2.Block;
import net.minecraft.server.v1_8_R2.BlockPosition;
import net.minecraft.server.v1_8_R2.EntityPlayer;
import net.minecraft.server.v1_8_R2.IInventory;
import net.minecraft.server.v1_8_R2.ITileInventory;
import net.minecraft.server.v1_8_R2.InventoryLargeChest;
import net.minecraft.server.v1_8_R2.PacketPlayOutOpenWindow;
import net.minecraft.server.v1_8_R2.TileEntityChest;
import net.minecraft.server.v1_8_R2.World;
public class AnySilentChest implements IAnySilentChest { public class AnySilentChest implements IAnySilentChest {
public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { @Override
public boolean IsAnyChestNeeded(Player p, int x, int y, int z) {
// FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest
EntityPlayer player = ((CraftPlayer) p).getHandle(); EntityPlayer player = ((CraftPlayer) p).getHandle();
World world = player.world; World world = player.world;
@@ -56,10 +60,11 @@ public class AnySilentChest implements IAnySilentChest {
return false; return false;
} }
public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { @Override
public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) {
EntityPlayer player = ((CraftPlayer) p).getHandle(); EntityPlayer player = ((CraftPlayer) p).getHandle();
World world = player.world; World world = player.world;
Object chest = (TileEntityChest) world.getTileEntity(new BlockPosition(x, y, z)); Object chest = world.getTileEntity(new BlockPosition(x, y, z));
if (chest == null) if (chest == null)
return true; return true;

View File

@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R2;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@@ -25,12 +25,14 @@ import com.lishid.openinv.OpenInv;
import com.lishid.openinv.Permissions; import com.lishid.openinv.Permissions;
import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.IInventoryAccess;
import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import net.minecraft.server.v1_8_R2.IInventory;
import org.bukkit.craftbukkit.v1_8_R1.inventory.*;
public class InventoryAccess implements IInventoryAccess { public class InventoryAccess implements IInventoryAccess {
public boolean check(Inventory inventory, HumanEntity player) { @Override
public boolean check(Inventory inventory, HumanEntity player) {
IInventory inv = grabInventory(inventory); IInventory inv = grabInventory(inventory);
if (inv instanceof SpecialPlayerInventory) { if (inv instanceof SpecialPlayerInventory) {

View File

@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R2;
import java.io.File; import java.io.File;
import java.util.UUID; import java.util.UUID;
@@ -27,13 +27,16 @@ import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.IPlayerDataManager; import com.lishid.openinv.internal.IPlayerDataManager;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
//Volatile import org.bukkit.craftbukkit.v1_8_R2.CraftServer;
import net.minecraft.server.v1_8_R1.*;
import org.bukkit.craftbukkit.v1_8_R1.*; import net.minecraft.server.v1_8_R2.EntityPlayer;
//Volatile
import net.minecraft.server.v1_8_R2.MinecraftServer;
import net.minecraft.server.v1_8_R2.PlayerInteractManager;
public class PlayerDataManager implements IPlayerDataManager { public class PlayerDataManager implements IPlayerDataManager {
public Player loadPlayer(String name) { @Override
public Player loadPlayer(String name) {
try { try {
UUID uuid = matchUser(name); UUID uuid = matchUser(name);
if (uuid == null) { if (uuid == null) {

View File

@@ -14,10 +14,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R2;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import net.minecraft.server.v1_8_R2.ContainerChest;
import net.minecraft.server.v1_8_R2.EntityHuman;
import net.minecraft.server.v1_8_R2.IInventory;
public class SilentContainerChest extends ContainerChest { public class SilentContainerChest extends ContainerChest {
public IInventory inv; public IInventory inv;

View File

@@ -14,32 +14,38 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R2;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.ISpecialEnderChest;
import org.bukkit.entity.HumanEntity; import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.InventoryHolder;
import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.ISpecialEnderChest;
import org.bukkit.craftbukkit.v1_8_R2.entity.CraftHumanEntity;
import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import net.minecraft.server.v1_8_R2.EntityHuman;
import org.bukkit.craftbukkit.v1_8_R1.entity.*; import net.minecraft.server.v1_8_R2.IInventory;
import org.bukkit.craftbukkit.v1_8_R1.inventory.*; import net.minecraft.server.v1_8_R2.InventoryEnderChest;
import net.minecraft.server.v1_8_R2.InventorySubcontainer;
import net.minecraft.server.v1_8_R2.ItemStack;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>(); public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false; public boolean playerOnline = false;
private CraftPlayer owner; private final CraftPlayer owner;
private InventoryEnderChest enderChest; private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK; private int maxStack = MAX_STACK;
private CraftInventory inventory = new CraftInventory(this); private final CraftInventory inventory = new CraftInventory(this);
public SpecialEnderChest(Player p, Boolean online) { public SpecialEnderChest(Player p, Boolean online) {
super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize());
@@ -50,18 +56,21 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
OpenInv.enderChests.put(owner.getName().toLowerCase(), this); OpenInv.enderChests.put(owner.getName().toLowerCase(), this);
} }
public Inventory getBukkitInventory() { @Override
public Inventory getBukkitInventory() {
return inventory; return inventory;
} }
public void InventoryRemovalCheck() { @Override
public void InventoryRemovalCheck() {
owner.saveData(); owner.saveData();
if (transaction.isEmpty() && !playerOnline) { if (transaction.isEmpty() && !playerOnline) {
OpenInv.enderChests.remove(owner.getName().toLowerCase()); OpenInv.enderChests.remove(owner.getName().toLowerCase());
} }
} }
public void PlayerGoOnline(Player p) { @Override
public void PlayerGoOnline(Player p) {
if (!playerOnline) { if (!playerOnline) {
try { try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
@@ -75,40 +84,49 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
} }
} }
public void PlayerGoOffline() { @Override
public void PlayerGoOffline() {
playerOnline = false; playerOnline = false;
} }
public ItemStack[] getContents() { @Override
public ItemStack[] getContents() {
return this.items; return this.items;
} }
public void onOpen(CraftHumanEntity who) { @Override
public void onOpen(CraftHumanEntity who) {
transaction.add(who); transaction.add(who);
} }
public void onClose(CraftHumanEntity who) { @Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who); transaction.remove(who);
this.InventoryRemovalCheck(); this.InventoryRemovalCheck();
} }
public List<HumanEntity> getViewers() { @Override
public List<HumanEntity> getViewers() {
return transaction; return transaction;
} }
public InventoryHolder getOwner() { @Override
public InventoryHolder getOwner() {
return this.owner; return this.owner;
} }
public void setMaxStackSize(int size) { @Override
public void setMaxStackSize(int size) {
maxStack = size; maxStack = size;
} }
public int getMaxStackSize() { @Override
public int getMaxStackSize() {
return maxStack; return maxStack;
} }
public boolean a(EntityHuman entityhuman) { @Override
public boolean a(EntityHuman entityhuman) {
return true; return true;
} }
@@ -120,7 +138,8 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
} }
public void update() { @Override
public void update() {
enderChest.update(); enderChest.update();
} }
} }

View File

@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R2;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
@@ -23,15 +23,19 @@ import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.internal.ISpecialPlayerInventory;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import org.bukkit.craftbukkit.v1_8_R2.entity.CraftHumanEntity;
import org.bukkit.craftbukkit.v1_8_R1.entity.*; import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_8_R1.inventory.*; import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory;
import net.minecraft.server.v1_8_R2.EntityHuman;
import net.minecraft.server.v1_8_R2.ItemStack;
import net.minecraft.server.v1_8_R2.PlayerInventory;
public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory {
CraftPlayer owner; CraftPlayer owner;
public boolean playerOnline = false; public boolean playerOnline = false;
private ItemStack[] extra = new ItemStack[5]; private final ItemStack[] extra = new ItemStack[5];
private CraftInventory inventory = new CraftInventory(this); private final CraftInventory inventory = new CraftInventory(this);
public SpecialPlayerInventory(Player p, Boolean online) { public SpecialPlayerInventory(Player p, Boolean online) {
super(((CraftPlayer) p).getHandle()); super(((CraftPlayer) p).getHandle());

View File

@@ -1,6 +1,6 @@
name: OpenInv name: OpenInv
main: com.lishid.openinv.OpenInv main: com.lishid.openinv.OpenInv
version: 2.2.6 version: 2.2.7
author: lishid author: lishid
description: > description: >
This plugin allows you to open a player's inventory as a chest and interact with it in real time. This plugin allows you to open a player's inventory as a chest and interact with it in real time.