Skip to content

Commit

Permalink
OpenInv 2.2.7
Browse files Browse the repository at this point in the history
Updated for Spigot 1.8.3
Dropped support for all other versions
Fixed lookup not working for players on first login/incomplete names
  • Loading branch information
Jikoo committed Mar 11, 2015
1 parent 21cd192 commit 4058463
Show file tree
Hide file tree
Showing 9 changed files with 104 additions and 56 deletions.
9 changes: 8 additions & 1 deletion src/com/lishid/openinv/commands/OpenEnderPluginCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package com.lishid.openinv.commands;

import java.util.HashMap;
import java.util.List;
import java.util.UUID;

import org.bukkit.Bukkit;
Expand All @@ -41,7 +42,8 @@ public OpenEnderPluginCommand(OpenInv 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)) {
sender.sendMessage(ChatColor.RED + "You can't use this from the console.");
return true;
Expand Down Expand Up @@ -82,6 +84,11 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
new BukkitRunnable() {
@Override
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);
if (Bukkit.getPlayer(senderID) == null) {
return;
Expand Down
10 changes: 8 additions & 2 deletions src/com/lishid/openinv/commands/OpenInvPluginCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package com.lishid.openinv.commands;

import java.util.HashMap;
import java.util.List;
import java.util.UUID;

import org.bukkit.Bukkit;
Expand All @@ -41,7 +42,8 @@ public OpenInvPluginCommand(OpenInv 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)) {
sender.sendMessage(ChatColor.RED + "You can't use this from the console.");
return true;
Expand Down Expand Up @@ -76,11 +78,15 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
name = args[0];
}

sender.sendMessage(ChatColor.GREEN + "Starting inventory lookup.");
final UUID senderID = player.getUniqueId();
new BukkitRunnable() {
@Override
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);
if (Bukkit.getPlayer(senderID) == null) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,30 @@
* 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.entity.Player;

import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.IAnySilentChest;






//Volatile
import net.minecraft.server.v1_8_R1.*;

import org.bukkit.craftbukkit.v1_8_R1.entity.*;
import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;

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 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
EntityPlayer player = ((CraftPlayer) p).getHandle();
World world = player.world;
Expand All @@ -56,10 +60,11 @@ public boolean IsAnyChestNeeded(Player p, int x, int y, int z) {
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();
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)
return true;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* 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;

Expand All @@ -25,12 +25,14 @@
import com.lishid.openinv.Permissions;
import com.lishid.openinv.internal.IInventoryAccess;

import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory;

//Volatile
import net.minecraft.server.v1_8_R1.*;
import org.bukkit.craftbukkit.v1_8_R1.inventory.*;
import net.minecraft.server.v1_8_R2.IInventory;

public class InventoryAccess implements IInventoryAccess {
public boolean check(Inventory inventory, HumanEntity player) {
@Override
public boolean check(Inventory inventory, HumanEntity player) {
IInventory inv = grabInventory(inventory);

if (inv instanceof SpecialPlayerInventory) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* 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.util.UUID;
Expand All @@ -27,13 +27,16 @@
import com.lishid.openinv.internal.IPlayerDataManager;
import com.mojang.authlib.GameProfile;

//Volatile
import net.minecraft.server.v1_8_R1.*;
import org.bukkit.craftbukkit.v1_8_R2.CraftServer;

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 Player loadPlayer(String name) {
@Override
public Player loadPlayer(String name) {
try {
UUID uuid = matchUser(name);
if (uuid == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@
* 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
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 IInventory inv;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,38 @@
* 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.util.ArrayList;
import java.util.List;

import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.ISpecialEnderChest;

import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
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
import net.minecraft.server.v1_8_R1.*;
import org.bukkit.craftbukkit.v1_8_R1.entity.*;
import org.bukkit.craftbukkit.v1_8_R1.inventory.*;
import net.minecraft.server.v1_8_R2.EntityHuman;
import net.minecraft.server.v1_8_R2.IInventory;
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 List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private CraftPlayer owner;
private InventoryEnderChest enderChest;
private final CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private CraftInventory inventory = new CraftInventory(this);
private final CraftInventory inventory = new CraftInventory(this);

public SpecialEnderChest(Player p, Boolean online) {
super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize());
Expand All @@ -50,18 +56,21 @@ public SpecialEnderChest(Player p, Boolean online) {
OpenInv.enderChests.put(owner.getName().toLowerCase(), this);
}

public Inventory getBukkitInventory() {
@Override
public Inventory getBukkitInventory() {
return inventory;
}

public void InventoryRemovalCheck() {
@Override
public void InventoryRemovalCheck() {
owner.saveData();
if (transaction.isEmpty() && !playerOnline) {
OpenInv.enderChests.remove(owner.getName().toLowerCase());
}
}

public void PlayerGoOnline(Player p) {
@Override
public void PlayerGoOnline(Player p) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
Expand All @@ -75,40 +84,49 @@ public void PlayerGoOnline(Player p) {
}
}

public void PlayerGoOffline() {
@Override
public void PlayerGoOffline() {
playerOnline = false;
}

public ItemStack[] getContents() {
@Override
public ItemStack[] getContents() {
return this.items;
}

public void onOpen(CraftHumanEntity who) {
@Override
public void onOpen(CraftHumanEntity who) {
transaction.add(who);
}

public void onClose(CraftHumanEntity who) {
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.InventoryRemovalCheck();
}

public List<HumanEntity> getViewers() {
@Override
public List<HumanEntity> getViewers() {
return transaction;
}

public InventoryHolder getOwner() {
@Override
public InventoryHolder getOwner() {
return this.owner;
}

public void setMaxStackSize(int size) {
@Override
public void setMaxStackSize(int size) {
maxStack = size;
}

public int getMaxStackSize() {
@Override
public int getMaxStackSize() {
return maxStack;
}

public boolean a(EntityHuman entityhuman) {
@Override
public boolean a(EntityHuman entityhuman) {
return true;
}

Expand All @@ -120,7 +138,8 @@ public void f() {

}

public void update() {
@Override
public void update() {
enderChest.update();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* 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.inventory.Inventory;
Expand All @@ -23,15 +23,19 @@
import com.lishid.openinv.internal.ISpecialPlayerInventory;

//Volatile
import net.minecraft.server.v1_8_R1.*;
import org.bukkit.craftbukkit.v1_8_R1.entity.*;
import org.bukkit.craftbukkit.v1_8_R1.inventory.*;
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;

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 {
CraftPlayer owner;
public boolean playerOnline = false;
private ItemStack[] extra = new ItemStack[5];
private CraftInventory inventory = new CraftInventory(this);
private final ItemStack[] extra = new ItemStack[5];
private final CraftInventory inventory = new CraftInventory(this);

public SpecialPlayerInventory(Player p, Boolean online) {
super(((CraftPlayer) p).getHandle());
Expand Down
2 changes: 1 addition & 1 deletion src/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: OpenInv
main: com.lishid.openinv.OpenInv
version: 2.2.6
version: 2.2.7
author: lishid
description: >
This plugin allows you to open a player's inventory as a chest and interact with it in real time.
Expand Down

0 comments on commit 4058463

Please sign in to comment.