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 Inventory getBukkitInventory();
public boolean inventoryRemovalCheck(); public boolean inventoryRemovalCheck(boolean save);
public void setPlayerOnline(Player player); public void setPlayerOnline(Player player);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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