diff --git a/src/main/java/io/github/simplexdev/strike/StrikeCommand.java b/src/main/java/io/github/simplexdev/strike/StrikeCommand.java index 18906bc..16f7007 100644 --- a/src/main/java/io/github/simplexdev/strike/StrikeCommand.java +++ b/src/main/java/io/github/simplexdev/strike/StrikeCommand.java @@ -3,9 +3,12 @@ package io.github.simplexdev.strike; import io.github.simplexdev.strike.api.ConfigUser; import java.util.Arrays; +import io.github.simplexdev.strike.api.utils.InventoryEditConfigManager; +import io.github.simplexdev.strike.listeners.InventoryEditGUI; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; @@ -27,9 +30,19 @@ public class StrikeCommand implements CommandExecutor { if (args[0].isEmpty() || args.length > 1) { return true; } - if ("reload".equals(args[0].toLowerCase())) { + if ("reload".equalsIgnoreCase(args[0])) { this.plugin.reloadConfig(); - Arrays.stream(configUsers).forEach(configUser -> configUser.refresh()); + Arrays.stream(configUsers).forEach(configUser -> configUser.refresh()); + } + + else if ("edit".equalsIgnoreCase(args[0]) && sender instanceof Player) { + new InventoryEditGUI(plugin).openInventory((Player) sender); + } + + else if ("get".equalsIgnoreCase(args[0]) && sender instanceof Player) { + Player player = (Player) sender; + + player.getInventory().setContents(new InventoryEditConfigManager(plugin).getInventory(player)); } diff --git a/src/main/java/io/github/simplexdev/strike/StrikePlugin.java b/src/main/java/io/github/simplexdev/strike/StrikePlugin.java index f9e2477..96057ab 100644 --- a/src/main/java/io/github/simplexdev/strike/StrikePlugin.java +++ b/src/main/java/io/github/simplexdev/strike/StrikePlugin.java @@ -1,14 +1,21 @@ package io.github.simplexdev.strike; -import io.github.simplexdev.strike.api.ConfigUser; import io.github.simplexdev.strike.api.Spawn; +import io.github.simplexdev.strike.api.utils.InventoryEditConfigManager; import io.github.simplexdev.strike.listeners.*; -import org.bukkit.event.Listener; -import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; public final class StrikePlugin extends JavaPlugin { + //TODO + // Full Ammo after dead + // Fall Damage Disable + // Health Pack head not working + // Bullet through Grass + // Ammo CHat Remove + // NPC Edit + // SetSpawn + // LaunchPad @Override public void onEnable() { @@ -19,17 +26,19 @@ public final class StrikePlugin extends JavaPlugin { Jumper jumper = new Jumper(this); SpawnController spawnController = new SpawnController(this); HealthPackage healthPackage = new HealthPackage(this); + Grenade grenade = new Grenade(this); getServer().getPluginManager().registerEvents(gun, this); getServer().getPluginManager().registerEvents(jumper, this); getServer().getPluginManager().registerEvents(spawnController, this); getServer().getPluginManager().registerEvents(healthPackage, this); + getServer().getPluginManager().registerEvents(grenade, this); - getServer().getPluginManager().registerEvents(new Grenade(this), this); + getServer().getPluginManager().registerEvents(new InventoryEditGUI(this), this); getCommand("strike").setExecutor(new StrikeCommand(this)); - StrikeCommand.loadInstances(gun, jumper, spawnController); + StrikeCommand.loadInstances(gun, jumper, spawnController, grenade); } @Override diff --git a/src/main/java/io/github/simplexdev/strike/api/utils/InventoryEdit.java b/src/main/java/io/github/simplexdev/strike/api/utils/InstanceStorage.java similarity index 59% rename from src/main/java/io/github/simplexdev/strike/api/utils/InventoryEdit.java rename to src/main/java/io/github/simplexdev/strike/api/utils/InstanceStorage.java index 339e63d..c01553b 100644 --- a/src/main/java/io/github/simplexdev/strike/api/utils/InventoryEdit.java +++ b/src/main/java/io/github/simplexdev/strike/api/utils/InstanceStorage.java @@ -1,4 +1,7 @@ package io.github.simplexdev.strike.api.utils; -public class InventoryEdit { +public class InstanceStorage { + + + } diff --git a/src/main/java/io/github/simplexdev/strike/api/utils/InventoryEditConfigManager.java b/src/main/java/io/github/simplexdev/strike/api/utils/InventoryEditConfigManager.java new file mode 100644 index 0000000..3bfb9d5 --- /dev/null +++ b/src/main/java/io/github/simplexdev/strike/api/utils/InventoryEditConfigManager.java @@ -0,0 +1,111 @@ +package io.github.simplexdev.strike.api.utils; + +import io.github.simplexdev.strike.listeners.Grenade; +import io.github.simplexdev.strike.listeners.Gun; +import io.github.simplexdev.strike.listeners.HealthPackage; +import org.bukkit.Material; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.MemorySection; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.Set; + +public class InventoryEditConfigManager { + + private final JavaPlugin plugin; + private final FileConfiguration dataConfig; + private final File dataFile; + + public InventoryEditConfigManager(JavaPlugin plugin) { + this.plugin = plugin; + + dataFile = new File("plugins\\Strike\\inventories.yml"); + + if (!dataFile.isFile()) { + try { + dataFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + dataConfig = new YamlConfiguration(); + try { + dataConfig.load(dataFile); + } catch (IOException e) { + e.printStackTrace(); + } catch (InvalidConfigurationException e) { + e.printStackTrace(); + } + } + + + public void setInventory(Player player, ItemStack[] items) throws IOException { + + if (items.length != 9) + throw new IllegalArgumentException("The length of the items can be only 9"); + + for (int i = 0; i < items.length; i++) { + dataConfig.set(player.getUniqueId().toString() + "." + i, items[i]); + dataConfig.save(dataFile); + } + } + + + public ItemStack[] getInventory(Player player) { + ItemStack[] items = new ItemStack[9]; + String uuid = player.getUniqueId().toString(); + + if (dataConfig.get(uuid) == null) { + ItemStack[] defaultItems = new ItemStack[9]; + + defaultItems[0] = new ItemStack(Material.WOODEN_SWORD); + defaultItems[1] = new Gun(plugin).createItem(); + defaultItems[2] = new Grenade(plugin).createItem(); + defaultItems[8] = new HealthPackage(plugin).createItem(); + + try { + setInventory(player, defaultItems); + } catch (IOException e) { + e.printStackTrace(); + } + + return defaultItems; + } + + Set setString = dataConfig.getKeys(true); + + for (String string : setString) { + if (string.startsWith(uuid) && !string.equalsIgnoreCase(uuid)) { + + Integer integer = Integer.parseInt(string.replace(uuid + ".", "").trim()); + + items[integer] = dataConfig.getItemStack(uuid + "." + integer); + + } + } + + + return items; + + } + + public int getItemSlot(ItemStack itemStack, Player player) { + + ItemStack[] itemStacks = getInventory(player); + + for (int i = 0; i < itemStacks.length; i++) + if (itemStacks[i].isSimilar(itemStack)) + return i; + + return 0; + }; + +} diff --git a/src/main/java/io/github/simplexdev/strike/listeners/Grenade.java b/src/main/java/io/github/simplexdev/strike/listeners/Grenade.java index 6692685..35b4946 100644 --- a/src/main/java/io/github/simplexdev/strike/listeners/Grenade.java +++ b/src/main/java/io/github/simplexdev/strike/listeners/Grenade.java @@ -45,7 +45,7 @@ public class Grenade implements ConfigUser { this.plugin.getServer().getOnlinePlayers().forEach(player -> player.getInventory().addItem(new ItemStack[]{stack})); - return stack; + return stack.clone(); } @@ -108,7 +108,7 @@ public class Grenade implements ConfigUser { if (player.getHealth() <= e.getFinalDamage()) killer = entry.getKey(); - + entry.getValue().remove(player); } } diff --git a/src/main/java/io/github/simplexdev/strike/listeners/Gun.java b/src/main/java/io/github/simplexdev/strike/listeners/Gun.java index 5e70471..0b3f2ea 100644 --- a/src/main/java/io/github/simplexdev/strike/listeners/Gun.java +++ b/src/main/java/io/github/simplexdev/strike/listeners/Gun.java @@ -1,185 +1,155 @@ -/* */ package io.github.simplexdev.strike.listeners; -/* */ import io.github.simplexdev.strike.api.ConfigUser; +package io.github.simplexdev.strike.listeners; + +import io.github.simplexdev.strike.api.ConfigUser; import io.github.simplexdev.strike.api.Spawn; -/* */ import java.util.Collection; -/* */ import java.util.HashMap; -/* */ import io.github.simplexdev.strike.events.GunKillEvent; +import io.github.simplexdev.strike.events.GunKillEvent; import org.bukkit.*; -/* */ -/* */ -/* */ -/* */ import org.bukkit.entity.Entity; -/* */ import org.bukkit.entity.LivingEntity; -/* */ import org.bukkit.entity.Player; -/* */ import org.bukkit.event.Event; -/* */ import org.bukkit.event.EventHandler; -/* */ import org.bukkit.event.block.Action; -/* */ import org.bukkit.event.player.PlayerInteractEvent; -/* */ import org.bukkit.event.player.PlayerItemHeldEvent; -/* */ import org.bukkit.inventory.ItemStack; -/* */ import org.bukkit.inventory.meta.ItemMeta; -/* */ import org.bukkit.plugin.Plugin; -/* */ import org.bukkit.plugin.java.JavaPlugin; -/* */ import org.bukkit.scheduler.BukkitRunnable; -/* */ -/* */ public class Gun implements ConfigUser { -/* 24 */ private static final HashMap ammoMap = new HashMap<>(); -/* */ -/* */ private final ItemStack gunItemStack; -/* */ -/* */ private final JavaPlugin plugin; -/* */ -/* */ private int maxAmmo; -/* */ -/* */ private int maxDistance; -/* */ -/* */ -/* */ public Gun(JavaPlugin plugin) { -/* 36 */ this.plugin = plugin; -/* 37 */ this.gunItemStack = createItem(); -/* 38 */ this.maxAmmo = plugin.getConfig().getInt("gun.ammo"); -/* 39 */ this.maxDistance = plugin.getConfig().getInt("gun.range"); -/* */ } -/* */ -/* */ public ItemStack createItem() { -/* 43 */ ItemStack stack = new ItemStack(Material.IRON_HORSE_ARMOR, 1); -/* 44 */ ItemMeta meta = this.plugin.getServer().getItemFactory().getItemMeta(Material.IRON_HORSE_ARMOR); -/* */ -/* 46 */ meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("gun.name"))); -/* */ -/* 48 */ stack.setItemMeta(meta); -/* */ -/* 50 */ this.plugin.getServer().getOnlinePlayers().forEach(player -> player.getInventory().addItem(new ItemStack[] { stack })); -/* */ -/* 52 */ return stack; -/* */ } -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ @EventHandler -/* */ private void activeActionBar(PlayerItemHeldEvent e) { -/* 75 */ final Player player = e.getPlayer(); -/* */ -/* 77 */ if (!player.getWorld().equals(Spawn.getWorld()) || player.getInventory().getItem(e.getNewSlot()) == null || !player.getInventory().getItem(e.getNewSlot()).equals(this.gunItemStack)) { -/* */ return; -/* */ } -/* 80 */ (new BukkitRunnable() -/* */ { -/* */ public void run() { -/* 83 */ ItemStack mainHandItem = player.getInventory().getItemInMainHand(); -/* 84 */ if (!mainHandItem.isSimilar(Gun.this.gunItemStack)) { -/* 85 */ cancel(); -/* */ -/* */ return; -/* */ } -/* 89 */ String ammoText = (Gun.ammoMap.containsKey(mainHandItem) ? ((Integer)Gun.ammoMap.get(mainHandItem)).intValue() : Gun.this.maxAmmo) + " | " + Gun.this.maxAmmo; -/* */ -/* 91 */ player.sendActionBar(ammoText); -/* */ } -/* 94 */ }).runTaskTimer((Plugin)this.plugin, 0L, 7L); -/* */ } -/* */ -/* */ -/* */ -/* */ @EventHandler -/* */ private void onRightClick(PlayerInteractEvent e) { -/* 101 */ final ItemStack itemStack = e.getItem(); -/* 102 */ Player player = e.getPlayer(); -/* 103 */ Action action = e.getAction(); -/* */ -/* 105 */ if (!player.getWorld().equals(Spawn.getWorld()) || itemStack == null || !itemStack.equals(this.gunItemStack) || !action.toString().startsWith("RIGHT_CLICK")) { -/* */ return; -/* */ } -/* 108 */ int ammo = this.maxAmmo; -/* */ -/* 110 */ if (!ammoMap.containsKey(itemStack)) { -/* 111 */ ammoMap.put(itemStack, Integer.valueOf(this.maxAmmo - 1)); -/* */ } else { -/* */ -/* 114 */ ammo = ((Integer)ammoMap.get(itemStack)).intValue(); -/* */ -/* 116 */ if (ammo == 1) -/* */ { -/* 118 */ (new BukkitRunnable() -/* */ { -/* */ public void run() { -/* 121 */ Gun.ammoMap.replace(itemStack, Integer.valueOf(Gun.this.maxAmmo)); -/* */ } -/* 123 */ }).runTaskLater((Plugin)this.plugin, 20L * this.plugin.getConfig().getInt("gun.reload-time")); -/* */ } -/* */ -/* 126 */ if (((Integer)ammoMap.get(itemStack)).intValue() != 0) { -/* 127 */ ammoMap.replace(itemStack, Integer.valueOf(ammo - 1)); -/* */ } -/* */ } -/* 130 */ if (ammo <= 0) { -/* */ return; -/* */ } -/* 133 */ player.sendMessage(String.valueOf(ammo)); -/* */ -/* 135 */ spawnParticle(player, player.getEyeLocation().clone(), 0.0D); -/* 136 */ Entity entity = player.getTargetEntity(this.maxDistance); -/* */ -/* 138 */ if (!(entity instanceof LivingEntity)) { -/* */ return; -/* */ } -/* 141 */ LivingEntity livingEntity = (LivingEntity)entity; -/* 142 */ double currentHealth = livingEntity.getHealth(); -/* 143 */ double damageHealth = this.plugin.getConfig().getInt("gun.damage"); -/* */ -/* 145 */ if (currentHealth <= damageHealth) { -/* 146 */ Bukkit.getServer().getPluginManager().callEvent((Event)new GunKillEvent(player, livingEntity)); -/* */ } -/* 148 */ livingEntity.damage(damageHealth); -/* */ } -/* */ -/* */ -/* */ -/* */ private void spawnParticle(Player player, Location location, double distance) { -/* 154 */ World world = location.getWorld(); -/* */ -/* 156 */ location.add(location.getDirection().multiply(0.1D)); -/* 157 */ world.spawnParticle(Particle.CRIT, location, 1, 0.0D, 0.0D, 0.0D, 0.001D); -/* */ -/* 159 */ distance += 0.1D; -/* */ -/* 161 */ if (location.getBlock().getType() != Material.AIR || distance > this.maxDistance) { -/* */ return; -/* */ } -/* 164 */ Collection entities = location.getNearbyLivingEntities(0.1D); -/* */ -/* 166 */ if (!entities.isEmpty() && entities.size() == 1 && !entities.contains(player)) { -/* */ return; -/* */ } -/* 169 */ spawnParticle(player, location, distance); -/* */ } -/* */ -/* */ -/* */ -/* */ public void refresh() { -/* 175 */ this.maxAmmo = this.plugin.getConfig().getInt("gun.ammo"); -/* 176 */ this.maxDistance = this.plugin.getConfig().getInt("gun.range"); -/* */ } -/* */ } +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.Action; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerItemHeldEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.Collection; +import java.util.HashMap; + +public class Gun implements ConfigUser { + private static final HashMap ammoMap = new HashMap<>(); + + private final ItemStack gunItemStack; + + private final JavaPlugin plugin; + + private int maxAmmo; + + private int maxDistance; -/* Location: E:\Rishi\Codes\Java Projects\Minecraft Plugins\PaperMC\1.16.4\Server Testing\plugins\strike-1.0-SNAPSHOT.jar!\io\github\simplexdev\simplexcore\strike\listeners\Gun.class - * Java compiler version: 8 (52.0) - * JD-Core Version: 1.1.3 - */ \ No newline at end of file + public Gun(JavaPlugin plugin) { + this.plugin = plugin; + this.gunItemStack = createItem(); + this.maxAmmo = plugin.getConfig().getInt("gun.ammo"); + this.maxDistance = plugin.getConfig().getInt("gun.range"); + } + + public ItemStack createItem() { + ItemStack stack = new ItemStack(Material.IRON_HORSE_ARMOR, 1); + ItemMeta meta = this.plugin.getServer().getItemFactory().getItemMeta(Material.IRON_HORSE_ARMOR); + + meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("gun.name"))); + + stack.setItemMeta(meta); + + this.plugin.getServer().getOnlinePlayers().forEach(player -> player.getInventory().addItem(new ItemStack[]{stack})); + + return stack.clone(); + } + + + @EventHandler + private void activeActionBar(PlayerItemHeldEvent e) { + final Player player = e.getPlayer(); + + if (!player.getWorld().equals(Spawn.getWorld()) || player.getInventory().getItem(e.getNewSlot()) == null || !player.getInventory().getItem(e.getNewSlot()).equals(this.gunItemStack)) { + return; + } + (new BukkitRunnable() { + public void run() { + ItemStack mainHandItem = player.getInventory().getItemInMainHand(); + if (!mainHandItem.isSimilar(Gun.this.gunItemStack)) { + cancel(); + + return; + } + String ammoText = (Gun.ammoMap.containsKey(mainHandItem) ? ((Integer) Gun.ammoMap.get(mainHandItem)).intValue() : Gun.this.maxAmmo) + " | " + Gun.this.maxAmmo; + + player.sendActionBar(ammoText); + } + }).runTaskTimer((Plugin) this.plugin, 0L, 7L); + } + + + @EventHandler + private void onRightClick(PlayerInteractEvent e) { + final ItemStack itemStack = e.getItem(); + Player player = e.getPlayer(); + Action action = e.getAction(); + + if (!player.getWorld().equals(Spawn.getWorld()) || itemStack == null || !itemStack.equals(this.gunItemStack) || !action.toString().startsWith("RIGHT_CLICK")) { + return; + } + int ammo = this.maxAmmo; + + if (!ammoMap.containsKey(itemStack)) { + ammoMap.put(itemStack, Integer.valueOf(this.maxAmmo - 1)); + } else { + + ammo = ((Integer) ammoMap.get(itemStack)).intValue(); + + if (ammo == 1) { + (new BukkitRunnable() { + public void run() { + Gun.ammoMap.replace(itemStack, Integer.valueOf(Gun.this.maxAmmo)); + } + }).runTaskLater((Plugin) this.plugin, 20L * this.plugin.getConfig().getInt("gun.reload-time")); + } + + if (((Integer) ammoMap.get(itemStack)).intValue() != 0) { + ammoMap.replace(itemStack, Integer.valueOf(ammo - 1)); + } + } + if (ammo <= 0) { + return; + } + player.sendMessage(String.valueOf(ammo)); + + spawnParticle(player, player.getEyeLocation().clone(), 0.0D); + Entity entity = player.getTargetEntity(this.maxDistance); + + if (!(entity instanceof LivingEntity)) { + return; + } + LivingEntity livingEntity = (LivingEntity) entity; + double currentHealth = livingEntity.getHealth(); + double damageHealth = this.plugin.getConfig().getInt("gun.damage"); + + if (currentHealth <= damageHealth) { + Bukkit.getServer().getPluginManager().callEvent((Event) new GunKillEvent(player, livingEntity)); + } + livingEntity.damage(damageHealth); + } + + + private void spawnParticle(Player player, Location location, double distance) { + World world = location.getWorld(); + + location.add(location.getDirection().multiply(0.1D)); + world.spawnParticle(Particle.CRIT, location, 1, 0.0D, 0.0D, 0.0D, 0.001D); + + distance += 0.1D; + + if (location.getBlock().getType() != Material.AIR || distance > this.maxDistance) { + return; + } + Collection entities = location.getNearbyLivingEntities(0.1D); + + if (!entities.isEmpty() && entities.size() == 1 && !entities.contains(player)) { + return; + } + spawnParticle(player, location, distance); + } + + + public void refresh() { + this.maxAmmo = this.plugin.getConfig().getInt("gun.ammo"); + this.maxDistance = this.plugin.getConfig().getInt("gun.range"); + } +} diff --git a/src/main/java/io/github/simplexdev/strike/listeners/HealthPackage.java b/src/main/java/io/github/simplexdev/strike/listeners/HealthPackage.java index 433abfa..25cb70a 100644 --- a/src/main/java/io/github/simplexdev/strike/listeners/HealthPackage.java +++ b/src/main/java/io/github/simplexdev/strike/listeners/HealthPackage.java @@ -53,7 +53,7 @@ } } - public ItemStack createHealthPackage() { + public ItemStack createItem() { String base64 = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGExNTU4YTgzZjQwMjZkYjIzMmY4MGJjOTYxNWNjM2JhNDE1ZGM0MDk0MGE1YTEzYWUyYThjOTBiMTVjM2MzZSJ9fX0="; ItemStack healthPackage = SkullCreator.itemFromBase64(base64); @@ -63,7 +63,7 @@ healthPackage.setItemMeta(meta); - return healthPackage; + return healthPackage.clone(); } @EventHandler @@ -93,6 +93,6 @@ public void refresh() { this.usedMessage = plugin.getConfig().getString("health-package.restore-health-message", "You have restored your health"); this.regainHealth = plugin.getConfig().getInt("health-package.restore-health"); - this.healthPackage = createHealthPackage(); + this.healthPackage = createItem(); } } \ No newline at end of file diff --git a/src/main/java/io/github/simplexdev/strike/listeners/InventoryEditGUI.java b/src/main/java/io/github/simplexdev/strike/listeners/InventoryEditGUI.java new file mode 100644 index 0000000..a4c8179 --- /dev/null +++ b/src/main/java/io/github/simplexdev/strike/listeners/InventoryEditGUI.java @@ -0,0 +1,60 @@ +package io.github.simplexdev.strike.listeners; + +import io.github.simplexdev.strike.api.utils.InventoryEditConfigManager; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class InventoryEditGUI implements Listener { + + private static List inventories = new ArrayList<>(); + private final InventoryEditConfigManager configManager; + private final JavaPlugin plugin; + + public InventoryEditGUI(JavaPlugin plugin) { + configManager = new InventoryEditConfigManager(plugin); + this.plugin = plugin; + } + + + public void openInventory(Player player) { + Inventory inventory = Bukkit.createInventory(null, 9); + inventories.add(inventory); + + inventory.setContents(configManager.getInventory(player)); + player.openInventory(inventory); + } + + + @EventHandler + private void onCloseInventory(InventoryCloseEvent e) { + if (!inventories.contains(e.getInventory())) + return; + + try { + configManager.setInventory((Player) e.getPlayer(), e.getInventory().getContents()); + } catch (IOException ioException) { + ioException.printStackTrace(); + } + } + + @EventHandler + private void onClick(InventoryClickEvent e) { + Player player = (Player) e.getWhoClicked(); + Inventory openedInventory = player.getOpenInventory().getTopInventory(); + + if (inventories.contains(openedInventory) && !e.getClickedInventory().equals(openedInventory)) + e.setCancelled(true); + + } + +} diff --git a/src/main/java/io/github/simplexdev/strike/listeners/SpawnController.java b/src/main/java/io/github/simplexdev/strike/listeners/SpawnController.java index 13bfe0e..032a6db 100644 --- a/src/main/java/io/github/simplexdev/strike/listeners/SpawnController.java +++ b/src/main/java/io/github/simplexdev/strike/listeners/SpawnController.java @@ -1,58 +1,41 @@ -/* */ package io.github.simplexdev.strike.listeners; -/* */ -/* */ import io.github.simplexdev.strike.api.ConfigUser; -/* */ import io.github.simplexdev.strike.api.Spawn; -/* */ -import org.bukkit.Material; -/* */ import org.bukkit.entity.Player; -/* */ import org.bukkit.event.EventHandler; -/* */ import org.bukkit.event.EventPriority; -/* */ import org.bukkit.event.entity.PlayerDeathEvent; -/* */ import org.bukkit.event.player.PlayerRespawnEvent; -/* */ import org.bukkit.inventory.ItemStack; -/* */ import org.bukkit.plugin.java.JavaPlugin; -/* */ -/* */ -/* */ public class SpawnController -/* */ implements ConfigUser -/* */ { -/* */ private final JavaPlugin plugin; -/* */ -/* */ public SpawnController(JavaPlugin plugin) { -/* 21 */ this.plugin = plugin; -/* */ } -/* */ -/* */ @EventHandler -/* */ private void onDeath(PlayerDeathEvent e) { -/* 26 */ Player player = e.getEntity(); -/* */ -/* 28 */ if (player.getWorld().equals(Spawn.getWorld())) -/* 29 */ player.getInventory().clear(); -/* */ } -/* */ -/* */ @EventHandler(priority = EventPriority.HIGH) -/* */ private void onRespawn(PlayerRespawnEvent e) { -/* 34 */ if (e.getPlayer().getWorld().equals(Spawn.getWorld())) { -/* 35 */ e.setRespawnLocation(Spawn.getSpawn()); -/* 36 */ giveItems(e.getPlayer()); -/* */ } -/* */ } -/* */ -/* */ -/* */ private void giveItems(Player player) { -/* 42 */ player.getInventory().addItem(new ItemStack[] { (new Gun(this.plugin)).createItem() }); -/* 43 */ player.getInventory().addItem(new ItemStack[] { (new Grenade(this.plugin)).createItem() }); -/* 44 */ player.getInventory().addItem(new ItemStack[] { new ItemStack(Material.WOODEN_SWORD) }); -/* */ } -/* */ -/* */ -/* */ public void refresh() { -/* 49 */ Spawn.loadConfig(this.plugin); -/* */ } -/* */ } +package io.github.simplexdev.strike.listeners; + +import io.github.simplexdev.strike.api.ConfigUser; +import io.github.simplexdev.strike.api.Spawn; +import io.github.simplexdev.strike.api.utils.InventoryEditConfigManager; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.plugin.java.JavaPlugin; -/* Location: E:\Rishi\Codes\Java Projects\Minecraft Plugins\PaperMC\1.16.4\Server Testing\plugins\strike-1.0-SNAPSHOT.jar!\io\github\simplexdev\simplexcore\strike\listeners\SpawnController.class - * Java compiler version: 8 (52.0) - * JD-Core Version: 1.1.3 - */ \ No newline at end of file +public class SpawnController + implements ConfigUser { + private final JavaPlugin plugin; + + public SpawnController(JavaPlugin plugin) { + this.plugin = plugin; + } + + @EventHandler + private void onDeath(PlayerDeathEvent e) { + Player player = e.getEntity(); + + if (player.getWorld().equals(Spawn.getWorld())) + player.getInventory().clear(); + } + + @EventHandler(priority = EventPriority.HIGH) + private void onRespawn(PlayerRespawnEvent e) { + if (e.getPlayer().getWorld().equals(Spawn.getWorld())) { + e.setRespawnLocation(Spawn.getSpawn()); + e.getPlayer().getInventory().setContents(new InventoryEditConfigManager(plugin).getInventory(e.getPlayer())); + } + } + + public void refresh() { + Spawn.loadConfig(this.plugin); + } +} \ No newline at end of file