Attempt to fix username.yml issues

This commit is contained in:
Trent Hensler
2017-12-21 18:01:11 -08:00
parent d6ff97462e
commit 5255a5a601
@@ -20,7 +20,6 @@ import com.drtshock.playervaults.PlayerVaults;
import com.drtshock.playervaults.util.Lang; import com.drtshock.playervaults.util.Lang;
import com.drtshock.playervaults.vaultmanagement.UUIDVaultManager; import com.drtshock.playervaults.vaultmanagement.UUIDVaultManager;
import com.drtshock.playervaults.vaultmanagement.VaultViewInfo; import com.drtshock.playervaults.vaultmanagement.VaultViewInfo;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
@@ -40,8 +39,6 @@ import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import java.io.IOException;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class Listeners implements Listener { public class Listeners implements Listener {
@@ -55,17 +52,20 @@ public class Listeners implements Listener {
public void saveVault(Player player, Inventory inventory) { public void saveVault(Player player, Inventory inventory) {
if (plugin.getInVault().containsKey(player.getUniqueId().toString())) { if (plugin.getInVault().containsKey(player.getUniqueId().toString())) {
Inventory inv = Bukkit.createInventory(null, 6 * 9); VaultViewInfo info = plugin.getInVault().get(player.getUniqueId().toString());
inv.setContents(inventory.getContents().clone()); Inventory inv = Bukkit.createInventory(null, 6 * 9);
inv.setContents(inventory.getContents().clone());
if (inventory.getViewers().size() == 1) { if (inventory.getViewers().size() == 1 || info.getHolderUUID() == null) {
VaultViewInfo info = plugin.getInVault().get(player.getUniqueId().toString()); // DON'T save when others are viewing. Caused saving as username.yml
String target = info.getHolderUUID() != null ? info.getHolderUUID().toString() : info.getHolder(); // TODO: verify this doesn't break faction / group vaults.
vaultManager.saveVault(inv, target, info.getNumber()); return;
}
plugin.getOpenInventories().remove(info.toString()); String target = info.getHolderUUID().toString();
} vaultManager.saveVault(inv, target, info.getNumber());
plugin.getOpenInventories().remove(info.toString());
plugin.getInVault().remove(player.getUniqueId().toString()); plugin.getInVault().remove(player.getUniqueId().toString());
} }
} }