Reduce duplicate saves and fix for owner coming online for all versions

This commit is contained in:
Jikoo
2016-04-11 18:12:21 -04:00
parent 0ebe6fe132
commit eeb28b4210
17 changed files with 189 additions and 142 deletions

View File

@@ -23,7 +23,7 @@ public interface ISpecialPlayerInventory {
public Inventory getBukkitInventory();
public boolean inventoryRemovalCheck();
public boolean inventoryRemovalCheck(boolean save);
public void setPlayerOnline(Player player);

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -51,18 +51,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -70,13 +73,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -50,18 +50,21 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
public void setPlayerOnline(Player player) {
if (!playerOnline) {
CraftPlayer p = (CraftPlayer) player;
p.getHandle().inventory.items = this.items;
p.getHandle().inventory.armor = this.armor;
p.saveData();
owner = (CraftPlayer) player;
this.player = owner.getHandle();
this.player.inventory.items = this.items;
this.player.inventory.armor = this.armor;
playerOnline = true;
}
}
@@ -69,13 +72,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override

View File

@@ -89,9 +89,12 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
}
@Override
public boolean inventoryRemovalCheck() {
public boolean inventoryRemovalCheck(boolean save) {
boolean offline = transaction.isEmpty() && !playerOnline;
if (offline && save) {
owner.saveData();
return transaction.isEmpty() && !playerOnline;
}
return offline;
}
@Override
@@ -100,7 +103,6 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
owner = (CraftPlayer) player;
this.player = owner.getHandle();
setItemArrays(this.player.inventory, items, armor, extraSlots);
owner.saveData();
playerOnline = true;
}
}
@@ -108,13 +110,13 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP
@Override
public boolean setPlayerOffline() {
playerOnline = false;
return this.inventoryRemovalCheck();
return this.inventoryRemovalCheck(false);
}
@Override
public void onClose(CraftHumanEntity who) {
super.onClose(who);
this.inventoryRemovalCheck();
this.inventoryRemovalCheck(true);
}
@Override