Compare commits

...

1 Commits
2.4.1 ... 2.4.2

Author SHA1 Message Date
Jikoo
1fbaa5b2a9 Reduce redundant saves for ender chests as well
While they don't suffer the same owner-related issues that player inventories did, there's no need to save so many times.
2016-04-11 18:45:23 -04:00
17 changed files with 194 additions and 146 deletions

View File

@@ -23,9 +23,9 @@ public interface ISpecialEnderChest {
public Inventory getBukkitInventory();
public boolean inventoryRemovalCheck();
public boolean inventoryRemovalCheck(boolean save);
public void setPlayerOnline(Player p);
public void setPlayerOnline(Player player);
/**
* Sets the Player associated with this ISpecialEnderChest offline.

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_4_5.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_4_6.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_5_R2.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_5_R3.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_6_R1.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_6_R2.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_7_R2.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_7_R3.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -41,7 +41,7 @@ import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftInventory;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false;
private final CraftPlayer owner;
private CraftPlayer owner;
private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK;
private final CraftInventory inventory = new CraftInventory(this);
@@ -60,22 +60,25 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
}
@Override
public boolean inventoryRemovalCheck() {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
}
return offline;
}
@Override
public void setPlayerOnline(Player p) {
public void setPlayerOnline(Player player) {
if (!playerOnline) {
try {
InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest();
owner = (CraftPlayer) player;
InventoryEnderChest playerEnderChest = owner.getHandle().getEnderChest();
Field field = playerEnderChest.getClass().getField("items");
field.setAccessible(true);
field.set(playerEnderChest, this.items);
}
catch (Exception e) {}
p.saveData();
playerOnline = true;
}
}
@@ -83,7 +86,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return inventoryRemovalCheck();
return inventoryRemovalCheck(false);
}
@Override
@@ -99,7 +102,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
@Override
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override