Advertisement
JackOUT

Untitled

Apr 2nd, 2023
582
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 19.78 KB | None | 0 0
  1. package games.coob.laserturrets.model;
  2.  
  3. import games.coob.laserturrets.settings.Settings;
  4. import games.coob.laserturrets.settings.TurretSettings;
  5. import games.coob.laserturrets.util.Hologram;
  6. import games.coob.laserturrets.util.Lang;
  7. import games.coob.laserturrets.util.TurretUtil;
  8. import lombok.*;
  9. import org.bukkit.Location;
  10. import org.bukkit.block.Block;
  11. import org.bukkit.block.BlockFace;
  12. import org.bukkit.entity.EntityType;
  13. import org.bukkit.entity.Player;
  14. import org.bukkit.inventory.ItemStack;
  15. import org.mineacademy.fo.Common;
  16. import org.mineacademy.fo.MathUtil;
  17. import org.mineacademy.fo.SerializeUtil;
  18. import org.mineacademy.fo.Valid;
  19. import org.mineacademy.fo.collection.SerializedMap;
  20. import org.mineacademy.fo.model.ConfigSerializable;
  21. import org.mineacademy.fo.model.Tuple;
  22. import org.mineacademy.fo.remain.CompMaterial;
  23. import org.mineacademy.fo.remain.Remain;
  24. import org.mineacademy.fo.settings.ConfigItems;
  25. import org.mineacademy.fo.settings.YamlConfig;
  26.  
  27. import javax.annotation.Nullable;
  28. import java.util.*;
  29.  
  30. @Getter
  31. @Setter
  32. public class TurretData extends YamlConfig {
  33.  
  34.     /**
  35.      * The folder name where all items are stored
  36.      */
  37.     private static final String FOLDER = "turrets";
  38.  
  39.     private static final ConfigItems<TurretData> loadedFiles = ConfigItems.fromFolder(FOLDER, TurretData.class);
  40.  
  41.     private Location location;
  42.  
  43.     private CompMaterial material;
  44.  
  45.     private String id;
  46.  
  47.     private String type;
  48.  
  49.     private UUID owner;
  50.  
  51.     private boolean broken;
  52.  
  53.     private List<ItemStack> currentLoot;
  54.  
  55.     private Set<UUID> playerBlacklist = new HashSet<>();
  56.  
  57.     private Set<EntityType> mobBlacklist = new HashSet<>();
  58.  
  59.     private boolean mobWhitelistEnabled;
  60.  
  61.     private boolean playerWhitelistEnabled;
  62.  
  63.     private List<TurretLevel> turretLevels = new ArrayList<>();
  64.  
  65.     private double currentHealth;
  66.  
  67.     private int currentLevel;
  68.  
  69.     @Nullable
  70.     private ItemStack unplacedTurret;
  71.  
  72.     private Hologram hologram;
  73.  
  74.     protected TurretData(final String type, final String id) {
  75.         this.loadConfiguration(NO_DEFAULT, FOLDER + "/" + type.toLowerCase() + "-" + id + ".yml");
  76.     }
  77.  
  78.     public void register(final Player player, final Block block, final String type, final String uniqueID) { // TODO register and create file
  79.         Valid.checkBoolean(!loadedFiles.isItemLoaded(uniqueID), Lang.of("Tool.Already_Registered", "{location}", Common.shortLocation(block.getLocation())));
  80.  
  81.         this.setLocation(block.getLocation());
  82.         this.setMaterial(CompMaterial.fromMaterial(block.getType()));
  83.         this.setType(type);
  84.         this.setOwner(player.getUniqueId());
  85.         this.setId(uniqueID);
  86.         this.setCurrentLevel(1);
  87.  
  88.         final TurretSettings turretSettings = TurretSettings.findByName(type);
  89.  
  90.         this.setMobBlacklist(turretSettings.getMobList());
  91.         this.setPlayerBlacklist(turretSettings.getPlayerList());
  92.         this.setPlayerWhitelistEnabled(turretSettings.isEnablePlayerWhitelist());
  93.         this.setMobWhitelistEnabled(turretSettings.isEnableMobWhitelist());
  94.  
  95.         if (!this.isPlayerWhitelistEnabled())
  96.             this.addPlayerToBlacklist(player.getUniqueId());
  97.  
  98.         for (final TurretSettings.LevelData levelData : turretSettings.getLevels()) {
  99.             final TurretData.TurretLevel level = addLevel();
  100.             levelData.setLevelData(level);
  101.         }
  102.  
  103.         this.setCurrentHealth(this.getLevel(1).getMaxHealth());
  104.         this.setHologram(createHologram());
  105.  
  106.         this.save();
  107.     }
  108.  
  109.     public void unregister() {
  110.         if (this.getHologram() != null)
  111.             this.getHologram().remove();
  112.  
  113.         this.getLocation().getBlock().getRelative(BlockFace.UP).setType(CompMaterial.AIR.getMaterial());
  114.         removeTurret(this.id);
  115.  
  116.         this.save();
  117.     }
  118.  
  119.     public void registerUnplacedTurret(final Block block) {
  120.         if (this.unplacedTurret != null) {
  121.             this.setUnplacedTurret(null);
  122.             this.setLocation(block.getLocation());
  123.             this.setMaterial(CompMaterial.fromMaterial(block.getType()));
  124.             this.setHologram(createHologram());
  125.         }
  126.  
  127.         this.save();
  128.     }
  129.  
  130.     /*public void registerTurretById(final Block block, final String turretId) { // TODO create unplaced boolean value
  131.         final TurretData turretData = getUnplacedTurretById(turretId);
  132.  
  133.         this.registeredUnplacedTurrets.removeIf(tuple -> tuple.getKey().equals(turretData));
  134.  
  135.         turretData.setLocation(block.getLocation());
  136.         turretData.setMaterial(CompMaterial.fromMaterial(block.getType()));
  137.         turretData.setHologram(createHologram(turretData));
  138.  
  139.         this.registeredTurrets.add(turretData);
  140.         this.save();
  141.     }*/
  142.  
  143.     private Hologram createHologram() {
  144.         final List<String> lore = Lang.ofList("Turret_Display.Hologram", "{turretType}", TurretUtil.capitalizeWord(this.getType()), "{owner}", Remain.getOfflinePlayerByUUID(this.getOwner()).getName(), "{level}", MathUtil.toRoman(this.getCurrentLevel()), "{health}", this.getCurrentHealth());
  145.         final List<String> loreList = new ArrayList<>(lore);
  146.  
  147.         if (!Settings.TurretSection.ENABLE_DAMAGEABLE_TURRETS)
  148.             loreList.removeIf(line -> line.contains(String.valueOf(this.getCurrentHealth())));
  149.  
  150.         final Object[] objects = loreList.toArray();
  151.         final String[] lines = Arrays.copyOf(objects, objects.length, String[].class);
  152.         final int linesLength = objects.length;
  153.         final Hologram hologram = new Hologram(this.getLocation().clone().add(0.5, TurretUtil.getYForLines(linesLength), 0.5));
  154.  
  155.         hologram.setLore(lines);
  156.  
  157.         return hologram;
  158.     }
  159.  
  160.     /*public void unregister(final Block block) {
  161.         final TurretData turretData = getTurretByBlock(block);
  162.  
  163.         if (turretData.getHologram() != null)
  164.             turretData.getHologram().remove();
  165.  
  166.         block.getRelative(BlockFace.UP).setType(CompMaterial.AIR.getMaterial());
  167.         this.registeredTurrets.remove(turretData);
  168.  
  169.         this.save();
  170.     }*/
  171.  
  172.     /*public void unregister(final TurretData turretData) {
  173.         if (turretData.getHologram() != null)
  174.             turretData.getHologram().remove();
  175.  
  176.         turretData.getLocation().getBlock().getRelative(BlockFace.UP).setType(CompMaterial.AIR.getMaterial());
  177.         this.registeredTurrets.remove(turretData);
  178.  
  179.         this.save();
  180.     }*/
  181.  
  182.     /*public void unregister(final String turretID) {
  183.         final TurretData turretData = getTurretByID(turretID);
  184.  
  185.         if (turretData.getHologram() != null)
  186.             turretData.getHologram().remove();
  187.  
  188.         turretData.getLocation().getBlock().getRelative(BlockFace.UP).setType(CompMaterial.AIR.getMaterial());
  189.         this.registeredTurrets.remove(turretData);
  190.  
  191.         this.save();
  192.     }*/
  193.  
  194.     public void setUnplacedTurret(@Nullable final ItemStack turretItem) {
  195.         this.unplacedTurret = turretItem;
  196.  
  197.         this.save();
  198.     }
  199.  
  200.     public void addPlayerToBlacklist(final UUID uuid) {
  201.         this.playerBlacklist.add(uuid);
  202.  
  203.         this.save();
  204.     }
  205.  
  206.     public void removePlayerFromBlacklist(final UUID uuid) {
  207.         if (this.playerBlacklist != null)
  208.             this.playerBlacklist.remove(uuid);
  209.  
  210.         this.save();
  211.     }
  212.  
  213.     public void addMobToBlacklist(final EntityType entityType) {
  214.         this.mobBlacklist.add(entityType);
  215.  
  216.         this.save();
  217.     }
  218.  
  219.     public void removeMobFromBlacklist(final EntityType entityType) {
  220.         this.mobBlacklist.remove(entityType);
  221.  
  222.         this.save();
  223.     }
  224.  
  225.     public void enableMobWhitelist(final boolean enableWhitelist) {
  226.         this.mobWhitelistEnabled = enableWhitelist;
  227.  
  228.         this.save();
  229.     }
  230.  
  231.     public boolean isMobListedAsAlly(final EntityType entityType) {
  232.         return this.mobBlacklist.contains(entityType);
  233.     }
  234.  
  235.     public void enablePlayerWhitelist(final boolean enableWhitelist) {
  236.         this.playerWhitelistEnabled = enableWhitelist;
  237.  
  238.         this.save();
  239.     }
  240.  
  241.     public boolean isPlayerListedAsAlly(final UUID uuid) {
  242.         if (this.playerBlacklist != null)
  243.             return this.playerBlacklist.contains(uuid);
  244.         else return false;
  245.     }
  246.  
  247.     public void setRange(final int level, final int range) {
  248.         this.getLevel(level).setRange(range);
  249.  
  250.         this.save();
  251.     }
  252.  
  253.     public void setLaserEnabled(final int level, final boolean laserEnabled) {
  254.         this.getLevel(level).setLaserEnabled(laserEnabled);
  255.  
  256.         this.save();
  257.     }
  258.  
  259.     public void setLaserDamage(final int level, final double damage) {
  260.         this.getLevel(level).setLaserDamage(damage);
  261.  
  262.         this.save();
  263.     }
  264.  
  265.     public void updateHologram() {
  266.         this.getHologram().remove();
  267.         this.setHologram(createHologram());
  268.  
  269.         this.save();
  270.     }
  271.  
  272.     public void setLevelPrice(final int level, final double price) {
  273.         this.getLevel(level).setPrice(price);
  274.  
  275.         this.save();
  276.     }
  277.  
  278.     public TurretLevel getLevel(final int level) {
  279.         final boolean outOfBounds = level <= 0 || level >= this.turretLevels.size() + 1;
  280.  
  281.         if (!outOfBounds)
  282.             return this.turretLevels.get(level - 1);
  283.  
  284.         return null;
  285.     }
  286.  
  287.     public void createLevel() {
  288.         final TurretLevel level = addLevel();
  289.         final List<TurretSettings.LevelData> levels = TurretSettings.findByName(this.type).getLevels();
  290.  
  291.         levels.get(levels.size() - 1).setLevelData(level);
  292.  
  293.         this.save();
  294.     }
  295.  
  296.     public void removeLevel(final int level) {
  297.         Valid.checkBoolean(getLevels() >= level, "Cannot remove level " + level + " because the turret only has " + getLevels() + " levels.");
  298.         this.turretLevels.remove(level - 1);
  299.  
  300.         this.save();
  301.     }
  302.  
  303.     public int getLevels() {
  304.         return this.turretLevels.size();
  305.     }
  306.  
  307.     public void setCurrentTurretLevel(final int level) {
  308.         this.currentLevel = level;
  309.  
  310.         this.save();
  311.     }
  312.  
  313.     public TurretLevel addLevel() {
  314.         final TurretLevel level = new TurretLevel(this);
  315.  
  316.         turretLevels.add(level);
  317.  
  318.         return this.turretLevels.get(this.turretLevels.size() - 1);
  319.     }
  320.  
  321.     public void setTurretHealth(final Block block, final double health) {
  322.         if (isRegistered(block))
  323.             this.setCurrentHealth(health);
  324.  
  325.         this.save();
  326.     }
  327.  
  328.     public void setTurretHealth(final double health) {
  329.         this.currentHealth = health;
  330.  
  331.         this.save();
  332.     }
  333.  
  334.     public void setBrokenAndFill(final Block block, final boolean broken) {
  335.         if (isRegistered(block)) {
  336.             this.broken = broken;
  337.  
  338.             if (this.isBroken()) {
  339.                 final List<Tuple<ItemStack, Double>> lootChances = this.turretLevels.get(this.currentLevel - 1).getLootChances();
  340.                 this.currentLoot = randomItemPercentageList(lootChances);
  341.             }
  342.  
  343.             this.save();
  344.         }
  345.     }
  346.  
  347.     private List<ItemStack> randomItemPercentageList(final List<Tuple<ItemStack, Double>> lootChanceList) {
  348.         final List<ItemStack> items = new ArrayList<>();
  349.  
  350.         for (final Tuple<ItemStack, Double> lootChance : lootChanceList) {
  351.             if (lootChance != null) {
  352.                 final Random random = new Random();
  353.                 final double randomPercentage = random.nextDouble();
  354.  
  355.                 if (lootChance.getValue() >= randomPercentage)
  356.                     items.add(lootChance.getKey());
  357.             }
  358.         }
  359.  
  360.         return items;
  361.     }
  362.  
  363.     public void setBroken(final boolean broken) {
  364.         this.broken = broken;
  365.  
  366.         if (!this.isBroken())
  367.             setTurretHealth(this.getLevel(this.getCurrentLevel()).getMaxHealth());
  368.  
  369.         this.save();
  370.     }
  371.  
  372.     public List<Tuple<ItemStack, Double>> getTurretLootChances(final int level) {
  373.         return this.getLevel(level).getLootChances();
  374.     }
  375.  
  376.     public void setTurretLootChances(final int level, final List<Tuple<ItemStack, Double>> lootChances) {
  377.         this.getLevel(level).setLootChances(lootChances);
  378.  
  379.         this.save();
  380.     }
  381.  
  382.     public void setCurrentLoot(@Nullable final List<ItemStack> items) {
  383.         this.currentLoot = items;
  384.  
  385.         this.save();
  386.     }
  387.  
  388.     public void removeCurrentLoot(final ItemStack item) {
  389.         this.currentLoot.remove(item);
  390.  
  391.         this.save();
  392.     }
  393.  
  394.     @Override
  395.     protected boolean saveComments() {
  396.         return false;
  397.     }
  398.  
  399.     @Override
  400.     protected void onLoad() {
  401.         final String hash = this.getString("Block");
  402.  
  403.         final String[] split = hash.split(" \\| ");
  404.         final Location location = SerializeUtil.deserializeLocation(split[0]);
  405.         final CompMaterial material = CompMaterial.valueOf(split[1]);
  406.  
  407.         this.location = location;
  408.         this.material = material;
  409.         this.id = this.getString("Id");
  410.         this.type = this.getString("Type");
  411.         this.owner = this.get("Owner", UUID.class);
  412.         this.playerBlacklist = this.getSet("Player_Blacklist", UUID.class);
  413.         this.mobBlacklist = this.getSet("Mob_Blacklist", EntityType.class);
  414.         this.currentLoot = this.getList("Current_Loot", ItemStack.class);
  415.         this.playerWhitelistEnabled = this.getBoolean("Use_Player_Whitelist", false);
  416.         this.mobWhitelistEnabled = this.getBoolean("Use_Mob_Whitelist", false); // Add default value to load it if the key doesn't exist
  417.         this.currentHealth = this.getDouble("Current_Health");
  418.         this.currentLevel = this.getInteger("Current_Level");
  419.         this.broken = this.getBoolean("Broken", false);
  420.         this.unplacedTurret = this.getItemStack("Unplaced_Turret");
  421.     }
  422.  
  423.     private String toHash(final Location location, final CompMaterial material) {
  424.         return SerializeUtil.serializeLoc(location) + " | " + material;
  425.     }
  426.  
  427.     @Override
  428.     protected void onSave() {
  429.         this.set("Block", toHash(this.location, this.material));
  430.         this.set("Id", this.id);
  431.         this.set("Type", this.type);
  432.         this.set("Owner", this.owner);
  433.         this.set("Player_Blacklist", this.playerBlacklist);
  434.         this.set("Mob_Blacklist", this.mobBlacklist);
  435.         this.set("Current_Loot", this.currentLoot);
  436.         this.set("Use_Player_Whitelist", this.playerWhitelistEnabled);
  437.         this.set("Use_Mob_Whitelist", this.mobWhitelistEnabled);
  438.         this.set("Current_Health", this.currentHealth);
  439.         this.set("Current_Level", this.currentLevel);
  440.         this.set("Broken", this.broken);
  441.         this.set("Hologram", this.hologram);
  442.         this.set("Unplaced_Turret", this.unplacedTurret);
  443.         this.set("Levels", this.turretLevels);
  444.     }
  445.  
  446.     // -----------------------------------------------------------------
  447.     // Turret levels
  448.     // -----------------------------------------------------------------
  449.  
  450.     @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
  451.     public final static class TurretLevel implements ConfigSerializable {
  452.  
  453.         private final TurretData turretData;
  454.  
  455.         @Getter
  456.         private double price;
  457.  
  458.         @Getter
  459.         private List<Tuple<ItemStack, Double>> lootChances = new ArrayList<>();
  460.  
  461.         @Getter
  462.         private int range;
  463.  
  464.         @Getter
  465.         private boolean laserEnabled;
  466.  
  467.         @Getter
  468.         private double laserDamage;
  469.  
  470.         @Getter
  471.         private double maxHealth;
  472.  
  473.         public void setPrice(final double price) {
  474.             this.price = price;
  475.         }
  476.  
  477.         public void setRange(final int range) {
  478.             this.range = range;
  479.         }
  480.  
  481.         public void setLaserEnabled(final boolean laserEnabled) {
  482.             this.laserEnabled = laserEnabled;
  483.         }
  484.  
  485.         public void setLaserDamage(final double laserDamage) {
  486.             this.laserDamage = laserDamage;
  487.         }
  488.  
  489.         public void setLootChances(final @Nullable List<Tuple<ItemStack, Double>> lootChances) {
  490.             this.lootChances = lootChances;
  491.         }
  492.  
  493.         public void setMaxHealth(final double health) {
  494.             this.maxHealth = health;
  495.         }
  496.  
  497.         public static TurretLevel deserialize(final SerializedMap map, final TurretData turretData) {
  498.             final double price = map.getDouble("Price");
  499.             final List<Tuple<ItemStack, Double>> lootChances = map.getTupleList("Loot_Chances", ItemStack.class, Double.class);
  500.             final int range = map.getInteger("Range");
  501.             final boolean laserEnabled = map.getBoolean("Laser_Enabled");
  502.             final double laserDamage = map.getDouble("Laser_Damage");
  503.             final double maxHealth = map.getDouble("Max_Health");
  504.  
  505.             final TurretLevel level = new TurretLevel(turretData);
  506.  
  507.             level.setPrice(price);
  508.             level.setLootChances(lootChances);
  509.             level.setRange(range);
  510.             level.setLaserEnabled(laserEnabled);
  511.             level.setLaserDamage(laserDamage);
  512.             level.setMaxHealth(maxHealth);
  513.  
  514.             return level;
  515.         }
  516.  
  517.         @Override
  518.         public SerializedMap serialize() {
  519.             final SerializedMap map = new SerializedMap();
  520.  
  521.             map.put("Price", this.price);
  522.             map.put("Range", this.range);
  523.             map.put("Max_Health", this.maxHealth);
  524.             map.put("Laser_Enabled", this.laserEnabled);
  525.             map.put("Laser_Damage", this.laserDamage);
  526.             map.putIf("Loot_Chances", this.lootChances);
  527.  
  528.             return map;
  529.         }
  530.     }
  531.  
  532.     // -----------------------------------------------------------------
  533.     // Static
  534.     // -----------------------------------------------------------------
  535.  
  536.     public static void syncTurretDataWithSettings(final TurretSettings settings, final TurretData turretData) {
  537.         turretData.setMobBlacklist(settings.getMobList());
  538.         turretData.setPlayerBlacklist(settings.getPlayerList());
  539.         turretData.setPlayerWhitelistEnabled(settings.isEnablePlayerWhitelist());
  540.         turretData.setMobWhitelistEnabled(settings.isEnableMobWhitelist());
  541.  
  542.         if (!turretData.isPlayerWhitelistEnabled())
  543.             turretData.addPlayerToBlacklist(turretData.getOwner());
  544.  
  545.         for (int i = 1; i <= turretData.getLevels() + 2; i++)
  546.             turretData.removeLevel(1);
  547.  
  548.         for (final TurretSettings.LevelData levelData : settings.getLevels()) {
  549.             final TurretLevel level = turretData.addLevel();
  550.             levelData.setLevelData(level);
  551.         }
  552.  
  553.         final double maxHealth = turretData.getLevel(turretData.getCurrentLevel()).getMaxHealth();
  554.  
  555.         if (turretData.getCurrentHealth() > maxHealth)
  556.             turretData.setCurrentHealth(maxHealth);
  557.  
  558.         TurretUtil.updateHologramAndTexture(turretData);
  559.  
  560.         turretData.save();
  561.     }
  562.  
  563.     public static boolean isRegistered(final Block block) {
  564.         for (final TurretData turretData : getTurrets())
  565.             return turretData.getLocation().getBlock().getLocation().equals(block.getLocation());
  566.  
  567.         return false;
  568.     }
  569.  
  570.     public static boolean isRegistered(final String turretID) {
  571.         for (final TurretData turretData : getTurrets()) {
  572.             if (turretData.getId().equals(turretID))
  573.                 return true;
  574.         }
  575.  
  576.         return false;
  577.     }
  578.  
  579.     public static TurretData findByBlock(final Block block) {
  580.         for (final TurretData turretData : getTurrets())
  581.             if (turretData.getLocation().getBlock().getLocation().equals(block.getLocation()))
  582.                 return turretData;
  583.  
  584.         return null;
  585.     }
  586.  
  587.     public static Set<TurretData> getTurretsOfType(final String turretType) {
  588.         final Set<TurretData> dataList = new HashSet<>();
  589.  
  590.         for (final TurretData turretData : getTurrets())
  591.             if (turretData.getType().equals(turretType))
  592.                 dataList.add(turretData);
  593.  
  594.         return dataList;
  595.     }
  596.  
  597.     public static Set<TurretData> getRegisteredTurrets() {
  598.         return new HashSet<>(getTurrets());
  599.     }
  600.  
  601.     public static List<Location> getTurretLocations() {
  602.         final List<Location> locations = new ArrayList<>();
  603.  
  604.         for (final TurretData turretData : getTurrets())
  605.             locations.add(turretData.getLocation());
  606.  
  607.         return locations;
  608.     }
  609.  
  610.     public static List<TurretData> getUnplacedTurrets() {
  611.         final List<TurretData> turretDataList = new ArrayList<>();
  612.  
  613.         for (final TurretData turretData : getTurrets())
  614.             if (turretData.getUnplacedTurret() != null)
  615.                 turretDataList.add(turretData);
  616.  
  617.         return turretDataList;
  618.     }
  619.  
  620.     public static Set<String> getTurretIDs() {
  621.         final Set<String> turretIDs = new HashSet<>();
  622.  
  623.         for (final TurretData turretData : getTurrets())
  624.             turretIDs.add(turretData.getId());
  625.  
  626.         return turretIDs;
  627.     }
  628.  
  629.     public static List<Location> getTurretLocationsOfType(final String type) {
  630.         final List<Location> locations = new ArrayList<>();
  631.  
  632.         for (final TurretData turretData : getTurretsOfType(type))
  633.             locations.add(turretData.getLocation());
  634.  
  635.         return locations;
  636.     }
  637.  
  638.     public static boolean isTurretOfType(final Block block, final String type) {
  639.         for (final TurretData turretData : getTurretsOfType(type))
  640.             if (turretData.getLocation().getBlock().getLocation().equals(block.getLocation()))
  641.                 return true;
  642.  
  643.         return false;
  644.     }
  645.  
  646.     /**
  647.      * @return
  648.      * @see ConfigItems#getItems()
  649.      */
  650.     public static List<? extends TurretData> getTurrets() {
  651.         return loadedFiles.getItems();
  652.     }
  653.  
  654.     /**
  655.      * @return
  656.      * @see ConfigItems#getItemNames()
  657.      */
  658.     public static Set<String> getTurretNames() {
  659.         return loadedFiles.getItemNames();
  660.     }
  661.  
  662.     public static void createTurret(@NonNull final String turretId) {
  663.         loadedFiles.loadOrCreateItem(turretId);
  664.     }
  665.  
  666.     /**
  667.      * @see ConfigItems#loadItems()
  668.      */
  669.     public static void loadTurrets() {
  670.         loadedFiles.loadItems();
  671.     }
  672.  
  673.     public static void removeTurret(final String turretId) {
  674.         loadedFiles.removeItemByName(turretId);
  675.     }
  676.  
  677.     /**
  678.      * @see ConfigItems#isItemLoaded(String)
  679.      */
  680.     public static boolean isTurretLoaded(final String id) {
  681.         return loadedFiles.isItemLoaded(id);
  682.     }
  683.  
  684.     /**
  685.      * @return
  686.      * @see ConfigItems#findItem(String)
  687.      */
  688.     public static TurretData findById(@NonNull final String id) {
  689.         return loadedFiles.findItem(id);
  690.     }
  691. }
  692.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement