Update StorageUtils.java

Storage Info now creates a new group if it detects one that doesnt exist.
This commit is contained in:
jameslfc19 2020-07-02 14:10:17 +01:00
parent 7847ef1997
commit 186cb18b2a

View File

@ -2,6 +2,9 @@ package com.jamesdpeters.minecraft.chests.storage;
import com.jamesdpeters.minecraft.chests.misc.Values;
import com.jamesdpeters.minecraft.chests.serialize.Config;
import com.jamesdpeters.minecraft.chests.storage.abstracts.AbstractStorage;
import com.jamesdpeters.minecraft.chests.storage.abstracts.StorageInfo;
import com.jamesdpeters.minecraft.chests.storage.abstracts.StorageType;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@ -11,33 +14,18 @@ import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.Sign;
import org.bukkit.block.data.Directional;
import org.bukkit.entity.Player;
import org.bukkit.persistence.PersistentDataType;
import java.util.UUID;
public class StorageUtils<T extends StorageInfo<S>, S extends AbstractStorage> {
// private static StorageUtils<StorageInfo<AutoCraftingStorage>, AutoCraftingStorage> AUTO_CRAFT;
// private static StorageUtils<StorageInfo<ChestLinkStorage>, ChestLinkStorage> CHEST_LINK;
//
// public static StorageUtils<StorageInfo<AutoCraftingStorage>, AutoCraftingStorage> getAutoCraft() {
// return AUTO_CRAFT;
// }
//
// public static StorageUtils<StorageInfo<ChestLinkStorage>, ChestLinkStorage> getChestLink() {
// return CHEST_LINK;
// }
private StorageType<S> storageType;
public StorageUtils(StorageType<S> storageType){
this.storageType = storageType;
}
// public static void init(){
// AUTO_CRAFT = new StorageUtils<>(Config.AUTO_CRAFT);
// CHEST_LINK = new StorageUtils<>(Config.CHEST_LINK);
// }
public StorageInfo<S> getStorageInfo(Sign sign, String[] lines, UUID uuid){
if(lines != null) {
if (lines.length >= 2 && lines[0].contains(storageType.getSignTag())) {
@ -49,11 +37,12 @@ public class StorageUtils<T extends StorageInfo<S>, S extends AbstractStorage> {
OfflinePlayer owner = Config.getOfflinePlayer(lines[2]);
if(owner != null){
AbstractStorage storage = storageType.getStorage(owner.getUniqueId(), group);
if(storage.hasPermission(Bukkit.getPlayer(uuid))) playerUUID = owner.getUniqueId().toString();
Player player = Bukkit.getPlayer(uuid);
if(player != null && storage.hasPermission(player)) playerUUID = owner.getUniqueId().toString();
}
}
}
return new StorageInfo<S>(playerUUID, group, storageType);
return new StorageInfo<>(playerUUID, group, storageType, sign);
}
}
return null;