From a929eeeb694072929a03fba37f38ab42953b6417 Mon Sep 17 00:00:00 2001 From: Jikoo Date: Mon, 18 Apr 2016 14:37:05 -0400 Subject: [PATCH] Configuration to disable saving of offline players, bugfixing Edits made to online players will still work. Edits made to offline players will work if they log in before the ISpecialPlayerInventory is unloaded (currently before the plugin unloads). Closes #6 Refactored IPlayerDataManager to PlayerDataManager, it's no longer an interface. Fixed a bug with players' online state initially being inverted --- README.MD | 3 +- src/main/java/com/lishid/openinv/OpenInv.java | 38 ++++++++++++++----- .../openinv/OpenInvInventoryListener.java | 4 -- .../commands/OpenEnderPluginCommand.java | 6 ++- .../commands/OpenInvPluginCommand.java | 5 ++- .../openinv/internal/InternalAccessor.java | 12 ++++-- ...ataManager.java => PlayerDataManager.java} | 2 +- .../internal/v1_4_5/PlayerDataManager.java | 4 +- .../internal/v1_4_5/SpecialEnderChest.java | 12 ++++-- .../v1_4_5/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_4_6/PlayerDataManager.java | 4 +- .../internal/v1_4_6/SpecialEnderChest.java | 12 ++++-- .../v1_4_6/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_4_R1/PlayerDataManager.java | 4 +- .../internal/v1_4_R1/SpecialEnderChest.java | 12 ++++-- .../v1_4_R1/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_5_R2/PlayerDataManager.java | 4 +- .../internal/v1_5_R2/SpecialEnderChest.java | 12 ++++-- .../v1_5_R2/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_5_R3/PlayerDataManager.java | 4 +- .../internal/v1_5_R3/SpecialEnderChest.java | 12 ++++-- .../v1_5_R3/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_6_R1/PlayerDataManager.java | 4 +- .../internal/v1_6_R1/SpecialEnderChest.java | 12 ++++-- .../v1_6_R1/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_6_R2/PlayerDataManager.java | 4 +- .../internal/v1_6_R2/SpecialEnderChest.java | 12 ++++-- .../v1_6_R2/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_6_R3/PlayerDataManager.java | 4 +- .../internal/v1_6_R3/SpecialEnderChest.java | 12 ++++-- .../v1_6_R3/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_7_R1/PlayerDataManager.java | 4 +- .../internal/v1_7_R1/SpecialEnderChest.java | 12 ++++-- .../v1_7_R1/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_7_R2/PlayerDataManager.java | 4 +- .../internal/v1_7_R2/SpecialEnderChest.java | 12 ++++-- .../v1_7_R2/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_7_R3/PlayerDataManager.java | 4 +- .../internal/v1_7_R3/SpecialEnderChest.java | 12 ++++-- .../v1_7_R3/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_7_R4/PlayerDataManager.java | 4 +- .../internal/v1_7_R4/SpecialEnderChest.java | 12 ++++-- .../v1_7_R4/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_8_R1/PlayerDataManager.java | 3 +- .../internal/v1_8_R1/SpecialEnderChest.java | 12 ++++-- .../v1_8_R1/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_8_R2/PlayerDataManager.java | 3 +- .../internal/v1_8_R2/SpecialEnderChest.java | 12 ++++-- .../v1_8_R2/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_8_R3/PlayerDataManager.java | 3 +- .../internal/v1_8_R3/SpecialEnderChest.java | 12 ++++-- .../v1_8_R3/SpecialPlayerInventory.java | 12 ++++-- .../internal/v1_9_R1/PlayerDataManager.java | 3 +- .../internal/v1_9_R1/SpecialEnderChest.java | 12 ++++-- .../v1_9_R1/SpecialPlayerInventory.java | 12 ++++-- src/main/resources/plugin.yml | 2 +- 56 files changed, 319 insertions(+), 197 deletions(-) rename src/main/java/com/lishid/openinv/internal/{IPlayerDataManager.java => PlayerDataManager.java} (96%) diff --git a/README.MD b/README.MD index 170d2d1..e6549f3 100644 --- a/README.MD +++ b/README.MD @@ -4,9 +4,10 @@ This fork of OpenInv was created when the lag caused by offline player lookups p ### Changes of Note - Removed updater - Removed wand +- New configuration option `DisableSaving`: Inventory edits will not be saved unless the user is online. ## Previous Versions -Any version of Minecraft this fork has been existent for should have a [release](https://github.com/Jikoo/OpenInv/releases) tagged. Features are not backported, however. +This fork supports any version after 1.4.5. Binaries are available in the [releases tab](https://github.com/Jikoo/OpenInv/releases). Please allow a brief period after the release of a new version for updates. ## License ``` diff --git a/src/main/java/com/lishid/openinv/OpenInv.java b/src/main/java/com/lishid/openinv/OpenInv.java index 8af86d4..3e6c20e 100644 --- a/src/main/java/com/lishid/openinv/OpenInv.java +++ b/src/main/java/com/lishid/openinv/OpenInv.java @@ -34,10 +34,10 @@ import com.lishid.openinv.commands.SearchInvPluginCommand; import com.lishid.openinv.commands.SilentChestPluginCommand; import com.lishid.openinv.internal.IAnySilentChest; import com.lishid.openinv.internal.IInventoryAccess; -import com.lishid.openinv.internal.IPlayerDataManager; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.internal.InternalAccessor; +import com.lishid.openinv.internal.PlayerDataManager; /** * Open other player's inventory @@ -50,7 +50,7 @@ public class OpenInv extends JavaPlugin { private final Map enderChests = new HashMap(); private InternalAccessor accessor; - private IPlayerDataManager playerLoader; + private PlayerDataManager playerLoader; private IInventoryAccess inventoryAccess; private IAnySilentChest anySilentChest; @@ -73,12 +73,26 @@ public class OpenInv extends JavaPlugin { anySilentChest = accessor.newAnySilentChest(); FileConfiguration config = getConfig(); - config.set("NotifySilentChest", config.getBoolean("NotifySilentChest", true)); - config.set("NotifyAnyChest", config.getBoolean("NotifyAnyChest", true)); + boolean dirtyConfig = false; + if (!config.isBoolean("NotifySilentChest")) { + config.set("NotifySilentChest", true); + dirtyConfig = true; + } + if (!config.isBoolean("NotifyAnyChest")) { + config.set("NotifyAnyChest", true); + dirtyConfig = true; + } + if (!config.isBoolean("DisableSaving")) { + config.set("DisableSaving", false); + dirtyConfig = true; + } config.addDefault("NotifySilentChest", true); config.addDefault("NotifyAnyChest", true); + config.addDefault("DisableSaving", false); config.options().copyDefaults(true); - saveConfig(); + if (dirtyConfig) { + saveConfig(); + } pm.registerEvents(new OpenInvPlayerListener(this), this); pm.registerEvents(new OpenInvInventoryListener(this), this); @@ -95,7 +109,7 @@ public class OpenInv extends JavaPlugin { return this.accessor; } - public IPlayerDataManager getPlayerLoader() { + public PlayerDataManager getPlayerLoader() { return this.playerLoader; } @@ -115,12 +129,12 @@ public class OpenInv extends JavaPlugin { return null; } - public ISpecialPlayerInventory getOrCreateInventoryFor(Player player, boolean offline) { + public ISpecialPlayerInventory getOrCreateInventoryFor(Player player, boolean online) { String id = getPlayerLoader().getPlayerDataID(player); if (inventories.containsKey(id)) { return inventories.get(id); } - ISpecialPlayerInventory inv = getInternalAccessor().newSpecialPlayerInventory(player, offline); + ISpecialPlayerInventory inv = getInternalAccessor().newSpecialPlayerInventory(player, online); inventories.put(id, inv); return inv; } @@ -140,12 +154,12 @@ public class OpenInv extends JavaPlugin { return null; } - public ISpecialEnderChest getOrCreateEnderChestFor(Player player, boolean offline) { + public ISpecialEnderChest getOrCreateEnderChestFor(Player player, boolean online) { String id = getPlayerLoader().getPlayerDataID(player); if (enderChests.containsKey(id)) { return enderChests.get(id); } - ISpecialEnderChest inv = getInternalAccessor().newSpecialEnderChest(player, offline); + ISpecialEnderChest inv = getInternalAccessor().newSpecialEnderChest(player, online); enderChests.put(id, inv); return inv; } @@ -157,6 +171,10 @@ public class OpenInv extends JavaPlugin { } } + public boolean disableSaving() { + return getConfig().getBoolean("DisableSaving", false); + } + public boolean notifySilentChest() { return getConfig().getBoolean("NotifySilentChest", true); } diff --git a/src/main/java/com/lishid/openinv/OpenInvInventoryListener.java b/src/main/java/com/lishid/openinv/OpenInvInventoryListener.java index 9b2ef0f..7bf30cc 100644 --- a/src/main/java/com/lishid/openinv/OpenInvInventoryListener.java +++ b/src/main/java/com/lishid/openinv/OpenInvInventoryListener.java @@ -32,13 +32,9 @@ public class OpenInvInventoryListener implements Listener { @EventHandler(priority = EventPriority.NORMAL) public void onInventoryClick(InventoryClickEvent event) { - // If this is the top inventory - // if (event.getView().convertSlot(event.getRawSlot()) == event.getRawSlot()) - // { if (!plugin.getInventoryAccess().check(event.getInventory(), event.getWhoClicked())) { event.setCancelled(true); } - // } } @EventHandler(priority = EventPriority.NORMAL) diff --git a/src/main/java/com/lishid/openinv/commands/OpenEnderPluginCommand.java b/src/main/java/com/lishid/openinv/commands/OpenEnderPluginCommand.java index 19b35ac..4ff24fa 100644 --- a/src/main/java/com/lishid/openinv/commands/OpenEnderPluginCommand.java +++ b/src/main/java/com/lishid/openinv/commands/OpenEnderPluginCommand.java @@ -107,7 +107,9 @@ public class OpenEnderPluginCommand implements CommandExecutor { private void openInventory(Player player, OfflinePlayer target) { Player onlineTarget; - if (!target.isOnline()) { + boolean online = target.isOnline(); + + if (!online) { // Try loading the player's data onlineTarget = plugin.getPlayerLoader().loadPlayer(target); @@ -129,7 +131,7 @@ public class OpenEnderPluginCommand implements CommandExecutor { openEnderHistory.put(player, onlineTarget.getName()); // Create the inventory - ISpecialEnderChest chest = plugin.getOrCreateEnderChestFor(onlineTarget, !target.isOnline()); + ISpecialEnderChest chest = plugin.getOrCreateEnderChestFor(onlineTarget, online); // Open the inventory player.openInventory(chest.getBukkitInventory()); diff --git a/src/main/java/com/lishid/openinv/commands/OpenInvPluginCommand.java b/src/main/java/com/lishid/openinv/commands/OpenInvPluginCommand.java index cf243be..2a97a07 100644 --- a/src/main/java/com/lishid/openinv/commands/OpenInvPluginCommand.java +++ b/src/main/java/com/lishid/openinv/commands/OpenInvPluginCommand.java @@ -108,8 +108,9 @@ public class OpenInvPluginCommand implements CommandExecutor { Player onlineTarget; + boolean online = target.isOnline(); - if (!target.isOnline()) { + if (!online) { // Try loading the player's data onlineTarget = plugin.getPlayerLoader().loadPlayer(target); @@ -143,7 +144,7 @@ public class OpenInvPluginCommand implements CommandExecutor { openInvHistory.put(player, onlineTarget.getName()); // Create the inventory - ISpecialPlayerInventory inv = plugin.getOrCreateInventoryFor(onlineTarget, !target.isOnline()); + ISpecialPlayerInventory inv = plugin.getOrCreateInventoryFor(onlineTarget, online); // Open the inventory player.openInventory(inv.getBukkitInventory()); diff --git a/src/main/java/com/lishid/openinv/internal/InternalAccessor.java b/src/main/java/com/lishid/openinv/internal/InternalAccessor.java index 8ed3969..3e52450 100644 --- a/src/main/java/com/lishid/openinv/internal/InternalAccessor.java +++ b/src/main/java/com/lishid/openinv/internal/InternalAccessor.java @@ -55,8 +55,8 @@ public class InternalAccessor { plugin.getLogger().warning("OpenInv encountered an error with the CraftBukkit version \"" + version + "\". Please look for an updated version of OpenInv."); } - public IPlayerDataManager newPlayerDataManager() { - return (IPlayerDataManager) createObject(IPlayerDataManager.class, "PlayerDataManager"); + public PlayerDataManager newPlayerDataManager() { + return (PlayerDataManager) createObject(PlayerDataManager.class, "PlayerDataManager"); } public IInventoryAccess newInventoryAccess() { @@ -71,7 +71,9 @@ public class InternalAccessor { try { Class internalClass = Class.forName("com.lishid.openinv.internal." + version + ".SpecialPlayerInventory"); if (ISpecialPlayerInventory.class.isAssignableFrom(internalClass)) { - return (ISpecialPlayerInventory) internalClass.getConstructor(Player.class, Boolean.class).newInstance(player, offline); + return (ISpecialPlayerInventory) internalClass + .getConstructor(OpenInv.class, Player.class, Boolean.class) + .newInstance(this.plugin, player, offline); } } catch (Exception e) { @@ -86,7 +88,9 @@ public class InternalAccessor { try { Class internalClass = Class.forName("com.lishid.openinv.internal." + version + ".SpecialEnderChest"); if (ISpecialEnderChest.class.isAssignableFrom(internalClass)) { - return (ISpecialEnderChest) internalClass.getConstructor(Player.class, Boolean.class).newInstance(player, offline); + return (ISpecialEnderChest) internalClass + .getConstructor(OpenInv.class, Player.class, Boolean.class) + .newInstance(this.plugin, player, offline); } } catch (Exception e) { diff --git a/src/main/java/com/lishid/openinv/internal/IPlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/PlayerDataManager.java similarity index 96% rename from src/main/java/com/lishid/openinv/internal/IPlayerDataManager.java rename to src/main/java/com/lishid/openinv/internal/PlayerDataManager.java index a8dd4e2..d61cb4a 100644 --- a/src/main/java/com/lishid/openinv/internal/IPlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/PlayerDataManager.java @@ -19,7 +19,7 @@ package com.lishid.openinv.internal; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -public abstract class IPlayerDataManager { +public abstract class PlayerDataManager { public final Player loadPlayer(OfflinePlayer offline) { if (offline.isOnline()) { return offline.getPlayer(); diff --git a/src/main/java/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java index d5c7061..ece7585 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_4_5.EntityPlayer; import net.minecraft.server.v1_4_5.ItemInWorldManager; @@ -29,7 +27,7 @@ import net.minecraft.server.v1_4_5.MinecraftServer; import org.bukkit.craftbukkit.v1_4_5.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java index c34b534..b9c43ad 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_4_5.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_4_5.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java index 41c7ecf..486568a 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_4_5; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_4_5.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_4_5.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java index 604e6d8..706cdf8 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_4_6.EntityPlayer; import net.minecraft.server.v1_4_6.MinecraftServer; @@ -29,7 +27,7 @@ import net.minecraft.server.v1_4_6.PlayerInteractManager; import org.bukkit.craftbukkit.v1_4_6.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java index ad2edbd..d5107fd 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_4_6.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_4_6.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java index cd5f667..1d8114d 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_4_6; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_4_6.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_4_6.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java index 21b2c5a..41a3bbd 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - import net.minecraft.server.v1_4_R1.EntityPlayer; import net.minecraft.server.v1_4_R1.MinecraftServer; import net.minecraft.server.v1_4_R1.PlayerInteractManager; @@ -30,7 +28,7 @@ import net.minecraft.server.v1_4_R1.PlayerInteractManager; import org.bukkit.craftbukkit.v1_4_R1.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java index 28f59d7..8ce7356 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java @@ -25,6 +25,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; +import com.lishid.openinv.OpenInv; // Volatile import com.lishid.openinv.internal.ISpecialEnderChest; @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_4_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java index 52614a9..7d3064c 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_4_R1; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; import net.minecraft.server.v1_4_R1.EntityHuman; @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_4_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java index 59d14d8..1eb2e37 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_5_R2.EntityPlayer; import net.minecraft.server.v1_5_R2.MinecraftServer; @@ -29,7 +27,7 @@ import net.minecraft.server.v1_5_R2.PlayerInteractManager; import org.bukkit.craftbukkit.v1_5_R2.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java index f6a7da4..1676c70 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_5_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_5_R2.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java index d90f3bf..b679046 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_5_R2; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_5_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_5_R2.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java index 3f6589c..b902c3c 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_5_R3.EntityPlayer; import net.minecraft.server.v1_5_R3.MinecraftServer; @@ -29,7 +27,7 @@ import net.minecraft.server.v1_5_R3.PlayerInteractManager; import org.bukkit.craftbukkit.v1_5_R3.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java index 055472c..c738357 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_5_R3.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java index 0796b8b..4e7445f 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_5_R3; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_5_R3.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java index e0f2b73..ee2ae25 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_6_R1.EntityPlayer; import net.minecraft.server.v1_6_R1.MinecraftServer; @@ -29,7 +27,7 @@ import net.minecraft.server.v1_6_R1.PlayerInteractManager; import org.bukkit.craftbukkit.v1_6_R1.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java index 404e313..242cebe 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_6_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_6_R1.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java index 85ee0a4..aa34c54 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_6_R1; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -32,13 +33,16 @@ import org.bukkit.craftbukkit.v1_6_R1.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -53,7 +57,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java index 5256ea6..ec810fc 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_6_R2.EntityPlayer; import net.minecraft.server.v1_6_R2.MinecraftServer; @@ -29,7 +27,7 @@ import net.minecraft.server.v1_6_R2.PlayerInteractManager; import org.bukkit.craftbukkit.v1_6_R2.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java index f113e68..608e30c 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_6_R2.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java index 99c9405..0f3bbae 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_6_R2; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_6_R2.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java index c96aea2..f5fa7d1 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_6_R3.EntityPlayer; import net.minecraft.server.v1_6_R3.MinecraftServer; @@ -29,7 +27,7 @@ import net.minecraft.server.v1_6_R3.PlayerInteractManager; import org.bukkit.craftbukkit.v1_6_R3.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java index bbcc1ac..3c5763f 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java index fb17a42..b13a5ed 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_6_R3; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java index d9d173a..7f33619 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_7_R1.EntityPlayer; import net.minecraft.server.v1_7_R1.MinecraftServer; @@ -30,7 +28,7 @@ import net.minecraft.util.com.mojang.authlib.GameProfile; import org.bukkit.craftbukkit.v1_7_R1.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java index e33d914..a3fc748 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getInventoryName(), ((CraftPlayer) p).getHandle().getEnderChest().k_(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java index d3f0771..3e6beb2 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_7_R1; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java index c262a0a..57b899c 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - //Volatile import net.minecraft.server.v1_7_R2.EntityPlayer; import net.minecraft.server.v1_7_R2.MinecraftServer; @@ -30,7 +28,7 @@ import net.minecraft.util.com.mojang.authlib.GameProfile; import org.bukkit.craftbukkit.v1_7_R2.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java index 64c7b26..14c67cc 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_7_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R2.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getInventoryName(), ((CraftPlayer) p).getHandle().getEnderChest().k_(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java index c8b9b0d..ab19a62 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_7_R2; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_7_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R2.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java index 7ccc30e..e16bb46 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_7_R3.EntityPlayer; import net.minecraft.server.v1_7_R3.MinecraftServer; @@ -30,7 +28,7 @@ import net.minecraft.util.com.mojang.authlib.GameProfile; import org.bukkit.craftbukkit.v1_7_R3.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java index 5f8d441..7b369a4 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R3.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getInventoryName(), ((CraftPlayer) p).getHandle().getEnderChest().k_(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java index fd7f3e4..9746831 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_7_R3; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R3.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java index c9d7b43..a0c28db 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java @@ -20,8 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; - // Volatile import net.minecraft.server.v1_7_R4.EntityPlayer; import net.minecraft.server.v1_7_R4.MinecraftServer; @@ -30,7 +28,7 @@ import net.minecraft.util.com.mojang.authlib.GameProfile; import org.bukkit.craftbukkit.v1_7_R4.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java index e63bb69..2634a7f 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; //Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getInventoryName(), ((CraftPlayer) p).getHandle().getEnderChest().k_(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java index d8463e8..637952f 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_7_R4; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java index 4364ae4..823fba1 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java @@ -20,7 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; import com.mojang.authlib.GameProfile; import net.minecraft.server.v1_8_R1.EntityPlayer; @@ -30,7 +29,7 @@ import net.minecraft.server.v1_8_R1.PlayerInteractManager; //Volatile import org.bukkit.craftbukkit.v1_8_R1.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java index 29d9661..1d9c891 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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 net.minecraft.server.v1_8_R1.EntityHuman; @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java index fcded9d..24e8fdf 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_8_R1; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; import net.minecraft.server.v1_8_R1.EntityHuman; @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_8_R2/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_8_R2/PlayerDataManager.java index 0b61df4..b724cb1 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_8_R2/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_8_R2/PlayerDataManager.java @@ -20,7 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; import com.mojang.authlib.GameProfile; // Volatile @@ -30,7 +29,7 @@ import net.minecraft.server.v1_8_R2.PlayerInteractManager; import org.bukkit.craftbukkit.v1_8_R2.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialEnderChest.java index c45ea1c..2a9a2df 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialPlayerInventory.java index 60b22ed..603377a 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_8_R2; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_8_R3/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_8_R3/PlayerDataManager.java index e3f2dd4..cb449fe 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_8_R3/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_8_R3/PlayerDataManager.java @@ -20,7 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; import com.mojang.authlib.GameProfile; import net.minecraft.server.v1_8_R3.EntityPlayer; @@ -30,7 +29,7 @@ import net.minecraft.server.v1_8_R3.PlayerInteractManager; //Volatile import org.bukkit.craftbukkit.v1_8_R3.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialEnderChest.java index 92142ba..ee41e9a 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialPlayerInventory.java index e0ed3cb..a5af339 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialPlayerInventory.java @@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_8_R3; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; //Volatile @@ -31,13 +32,16 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[5]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; this.items = player.inventory.items; @@ -52,7 +56,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_9_R1/PlayerDataManager.java b/src/main/java/com/lishid/openinv/internal/v1_9_R1/PlayerDataManager.java index b6aa87c..83bedd8 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_9_R1/PlayerDataManager.java +++ b/src/main/java/com/lishid/openinv/internal/v1_9_R1/PlayerDataManager.java @@ -20,7 +20,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.lishid.openinv.internal.IPlayerDataManager; import com.mojang.authlib.GameProfile; // Volatile @@ -30,7 +29,7 @@ import net.minecraft.server.v1_9_R1.PlayerInteractManager; import org.bukkit.craftbukkit.v1_9_R1.CraftServer; -public class PlayerDataManager extends IPlayerDataManager { +public class PlayerDataManager extends com.lishid.openinv.internal.PlayerDataManager { @Override public Player loadOfflinePlayer(OfflinePlayer offline) { diff --git a/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialEnderChest.java b/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialEnderChest.java index 34abfee..a52391b 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialEnderChest.java +++ b/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialEnderChest.java @@ -25,6 +25,7 @@ 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; // Volatile @@ -39,15 +40,18 @@ import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftInventory; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + + private final OpenInv plugin; + private final InventoryEnderChest enderChest; + private final CraftInventory inventory = new CraftInventory(this); public List transaction = new ArrayList(); public boolean playerOnline = false; private CraftPlayer owner; - private final InventoryEnderChest enderChest; private int maxStack = MAX_STACK; - private final CraftInventory inventory = new CraftInventory(this); - public SpecialEnderChest(Player p, Boolean online) { + public SpecialEnderChest(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + this.plugin = plugin; CraftPlayer player = (CraftPlayer) p; this.enderChest = player.getHandle().getEnderChest(); this.owner = player; @@ -62,7 +66,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialPlayerInventory.java b/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialPlayerInventory.java index 880eaa8..4b49371 100644 --- a/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialPlayerInventory.java +++ b/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialPlayerInventory.java @@ -22,6 +22,7 @@ import java.lang.reflect.Modifier; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; +import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; // Volatile @@ -34,13 +35,16 @@ import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftInventory; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; + + private final OpenInv plugin; private final ItemStack[] extra = new ItemStack[4]; private final CraftInventory inventory = new CraftInventory(this); + private CraftPlayer owner; + private boolean playerOnline = false; - public SpecialPlayerInventory(Player p, Boolean online) { + public SpecialPlayerInventory(OpenInv plugin, Player p, Boolean online) { super(((CraftPlayer) p).getHandle()); + this.plugin = plugin; this.owner = ((CraftPlayer) p); this.playerOnline = online; setItemArrays(this, player.inventory.items, player.inventory.armor, player.inventory.extraSlots); @@ -91,7 +95,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP @Override public boolean inventoryRemovalCheck(boolean save) { boolean offline = transaction.isEmpty() && !playerOnline; - if (offline && save) { + if (offline && save && !plugin.disableSaving()) { owner.saveData(); } return offline; diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 2c03b6e..0b8dadf 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: OpenInv main: com.lishid.openinv.OpenInv -version: 2.4.3 +version: 2.4.4 author: lishid authors: [Jikoo] description: >