From 306b3d390f94f6c6dbf6fea4b5205c99fbcbf0b2 Mon Sep 17 00:00:00 2001 From: Kiran Hart Date: Sat, 18 Feb 2023 07:50:49 -0500 Subject: [PATCH 1/7] =?UTF-8?q?=F0=9F=86=93=20add=20setting=20to=20disable?= =?UTF-8?q?=20permission=20checks=20except=20for=20admin=20options?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Took 12 minutes --- src/main/java/ca/tweetzy/skulls/Skulls.java | 8 ------ .../skulls/commands/InspectCommand.java | 3 +- .../skulls/commands/SearchCommand.java | 3 +- .../skulls/commands/SkullsCommand.java | 8 +++--- .../skulls/guis/CustomCategoryListGUI.java | 10 ++++--- .../java/ca/tweetzy/skulls/guis/MainGUI.java | 28 +++++++++++-------- .../ca/tweetzy/skulls/guis/SkullsViewGUI.java | 6 +++- .../tweetzy/skulls/manager/SkullManager.java | 1 - .../ca/tweetzy/skulls/settings/Settings.java | 1 + 9 files changed, 36 insertions(+), 32 deletions(-) diff --git a/src/main/java/ca/tweetzy/skulls/Skulls.java b/src/main/java/ca/tweetzy/skulls/Skulls.java index d5068a6..bd058a6 100644 --- a/src/main/java/ca/tweetzy/skulls/Skulls.java +++ b/src/main/java/ca/tweetzy/skulls/Skulls.java @@ -20,7 +20,6 @@ import ca.tweetzy.flight.FlightPlugin; import ca.tweetzy.flight.command.CommandManager; -import ca.tweetzy.flight.config.tweetzy.TweetzyYamlConfig; import ca.tweetzy.flight.database.DataMigrationManager; import ca.tweetzy.flight.database.DatabaseConnector; import ca.tweetzy.flight.database.SQLiteConnector; @@ -50,8 +49,6 @@ */ public final class Skulls extends FlightPlugin { - private final TweetzyYamlConfig coreConfig = new TweetzyYamlConfig(this, "config.yml"); - private final GuiManager guiManager = new GuiManager(this); private final CommandManager commandManager = new CommandManager(this); @@ -106,11 +103,6 @@ public static Skulls getInstance() { return (Skulls) FlightPlugin.getInstance(); } - - public static TweetzyYamlConfig getCoreConfig() { - return getInstance().coreConfig; - } - // gui manager public static GuiManager getGuiManager() { return getInstance().guiManager; diff --git a/src/main/java/ca/tweetzy/skulls/commands/InspectCommand.java b/src/main/java/ca/tweetzy/skulls/commands/InspectCommand.java index 5a27221..77442d7 100644 --- a/src/main/java/ca/tweetzy/skulls/commands/InspectCommand.java +++ b/src/main/java/ca/tweetzy/skulls/commands/InspectCommand.java @@ -29,6 +29,7 @@ import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.interfaces.PlacedSkull; import ca.tweetzy.skulls.api.interfaces.Skull; +import ca.tweetzy.skulls.settings.Settings; import ca.tweetzy.skulls.settings.Translations; import org.bukkit.block.Block; import org.bukkit.command.CommandSender; @@ -82,7 +83,7 @@ protected List tab(CommandSender sender, String... args) { @Override public String getPermissionNode() { - return "skulls.command.inspect"; + return Settings.GENERAL_USAGE_REQUIRES_NO_PERM.getBoolean() ? null : "skulls.command.inspect"; } @Override diff --git a/src/main/java/ca/tweetzy/skulls/commands/SearchCommand.java b/src/main/java/ca/tweetzy/skulls/commands/SearchCommand.java index cb89562..eccfcfa 100644 --- a/src/main/java/ca/tweetzy/skulls/commands/SearchCommand.java +++ b/src/main/java/ca/tweetzy/skulls/commands/SearchCommand.java @@ -26,6 +26,7 @@ import ca.tweetzy.skulls.api.interfaces.SkullUser; import ca.tweetzy.skulls.guis.SkullsViewGUI; import ca.tweetzy.skulls.impl.SkullPlayer; +import ca.tweetzy.skulls.settings.Settings; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -77,7 +78,7 @@ protected List tab(CommandSender commandSender, String... strings) { @Override public String getPermissionNode() { - return "skulls.command.search"; + return Settings.GENERAL_USAGE_REQUIRES_NO_PERM.getBoolean() ? null : "skulls.command.search"; } @Override diff --git a/src/main/java/ca/tweetzy/skulls/commands/SkullsCommand.java b/src/main/java/ca/tweetzy/skulls/commands/SkullsCommand.java index ad9844e..f9ff4c0 100644 --- a/src/main/java/ca/tweetzy/skulls/commands/SkullsCommand.java +++ b/src/main/java/ca/tweetzy/skulls/commands/SkullsCommand.java @@ -49,10 +49,10 @@ protected ReturnType execute(CommandSender commandSender, String... strings) { if (commandSender instanceof Player) { final Player player = (Player) commandSender; - if (Skulls.getSkullManager().isLoading()) { - Common.tell(player, TranslationManager.string(Translations.LOADING)); - return ReturnType.FAIL; - } +// if (Skulls.getSkullManager().isLoading()) { +// Common.tell(player, TranslationManager.string(Translations.LOADING)); +// return ReturnType.FAIL; +// } if (player.hasPermission("skulls.command.main") || Settings.MAIN_MENU_REQUIRES_NO_PERM.getBoolean()) Skulls.getGuiManager().showGUI(player, new MainGUI(player)); diff --git a/src/main/java/ca/tweetzy/skulls/guis/CustomCategoryListGUI.java b/src/main/java/ca/tweetzy/skulls/guis/CustomCategoryListGUI.java index dd9cd5c..f6e94cd 100644 --- a/src/main/java/ca/tweetzy/skulls/guis/CustomCategoryListGUI.java +++ b/src/main/java/ca/tweetzy/skulls/guis/CustomCategoryListGUI.java @@ -30,6 +30,7 @@ import ca.tweetzy.skulls.api.enums.ViewMode; import ca.tweetzy.skulls.api.interfaces.Category; import ca.tweetzy.skulls.impl.SkullCategory; +import ca.tweetzy.skulls.settings.Settings; import ca.tweetzy.skulls.settings.Translations; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -100,10 +101,11 @@ public boolean onResult(String string) { @Override protected void onClick(Category category, GuiClickEvent clickEvent) { - if (!clickEvent.player.hasPermission("skulls.customcategory." + category.getId().toLowerCase())) { - Common.tell(clickEvent.player, TranslationManager.string(Translations.CATEGORY_PERMISSION)); - return; - } + if (!Settings.GENERAL_USAGE_REQUIRES_NO_PERM.getBoolean()) + if (!clickEvent.player.hasPermission("skulls.customcategory." + category.getId().toLowerCase())) { + Common.tell(clickEvent.player, TranslationManager.string(Translations.CATEGORY_PERMISSION)); + return; + } clickEvent.manager.showGUI(clickEvent.player, new SkullsViewGUI(this, Skulls.getPlayerManager().findPlayer(clickEvent.player), category.getId(), ViewMode.LIST)); } diff --git a/src/main/java/ca/tweetzy/skulls/guis/MainGUI.java b/src/main/java/ca/tweetzy/skulls/guis/MainGUI.java index 466a6b6..2bd616c 100644 --- a/src/main/java/ca/tweetzy/skulls/guis/MainGUI.java +++ b/src/main/java/ca/tweetzy/skulls/guis/MainGUI.java @@ -29,6 +29,7 @@ import ca.tweetzy.skulls.api.enums.BaseCategory; import ca.tweetzy.skulls.api.enums.ViewMode; import ca.tweetzy.skulls.model.SkullItem; +import ca.tweetzy.skulls.settings.Settings; import ca.tweetzy.skulls.settings.Translations; import lombok.NonNull; import org.bukkit.entity.Player; @@ -60,10 +61,11 @@ protected void draw() { .lore(TranslationManager.list(Translations.GUI_MAIN_ITEMS_CATEGORY_LORE, "category_size", Skulls.getSkullManager().getSkullCount(baseCategory.getId()))) .make(), click -> { - if (!click.player.hasPermission("skulls.category." + baseCategory.getId().toLowerCase().replace(" ", "").replace("&", ""))) { - Common.tell(click.player, TranslationManager.string(Translations.CATEGORY_PERMISSION)); - return; - } + if (!Settings.GENERAL_USAGE_REQUIRES_NO_PERM.getBoolean()) + if (!click.player.hasPermission("skulls.category." + baseCategory.getId().toLowerCase().replace(" ", "").replace("&", ""))) { + Common.tell(click.player, TranslationManager.string(Translations.CATEGORY_PERMISSION)); + return; + } click.manager.showGUI(click.player, new SkullsViewGUI(this, Skulls.getPlayerManager().findPlayer(click.player), baseCategory.getId(), ViewMode.LIST)); }); @@ -74,10 +76,11 @@ protected void draw() { .lore(TranslationManager.list(Translations.GUI_MAIN_ITEMS_SEARCH_LORE)) .make(), click -> { - if (!click.player.hasPermission("skulls.search")) { - Common.tell(click.player, TranslationManager.string(Translations.NO_PERMISSION)); - return; - } + if (!Settings.GENERAL_USAGE_REQUIRES_NO_PERM.getBoolean()) + if (!click.player.hasPermission("skulls.search")) { + Common.tell(click.player, TranslationManager.string(Translations.NO_PERMISSION)); + return; + } new TitleInput(Skulls.getInstance(), click.player, TranslationManager.string(Translations.INPUT_SKULL_SEARCH_TITLE), TranslationManager.string(Translations.INPUT_SKULL_SEARCH_SUBTITLE)) { @@ -101,10 +104,11 @@ public boolean onResult(String string) { .lore(TranslationManager.list(Translations.GUI_MAIN_ITEMS_FAVOURITES_LORE)) .make(), click -> { - if (!click.player.hasPermission("skulls.favourites")) { - Common.tell(click.player, TranslationManager.string(Translations.NO_PERMISSION)); - return; - } + if (!Settings.GENERAL_USAGE_REQUIRES_NO_PERM.getBoolean()) + if (!click.player.hasPermission("skulls.favourites")) { + Common.tell(click.player, TranslationManager.string(Translations.NO_PERMISSION)); + return; + } click.manager.showGUI(click.player, new SkullsViewGUI(this, Skulls.getPlayerManager().findPlayer(click.player), "", ViewMode.FAVOURITE)); }); diff --git a/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java b/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java index a4ed043..e81a8e6 100644 --- a/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java +++ b/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java @@ -124,7 +124,11 @@ protected void onClick(Skull skull, GuiClickEvent event) { player.getInventory().addItem(skull.getItemStack()); } - if (event.clickType == ClickType.RIGHT && player.hasPermission("skulls.favourite")) { + if (event.clickType == ClickType.RIGHT) { + if (!Settings.GENERAL_USAGE_REQUIRES_NO_PERM.getBoolean() && !player.hasPermission("skulls.favourite")) + return; + + this.skullPlayer.toggleFavourite(skull.getId()); this.skullPlayer.sync(); diff --git a/src/main/java/ca/tweetzy/skulls/manager/SkullManager.java b/src/main/java/ca/tweetzy/skulls/manager/SkullManager.java index 74c8bf3..1db63b8 100644 --- a/src/main/java/ca/tweetzy/skulls/manager/SkullManager.java +++ b/src/main/java/ca/tweetzy/skulls/manager/SkullManager.java @@ -253,7 +253,6 @@ public void downloadHistorySkulls(@NonNull final History history, Consumer Date: Sun, 19 Feb 2023 10:55:16 -0500 Subject: [PATCH 2/7] 3.9.0 Took 6 minutes --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d87ba07..9c4fc29 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ skulls Skulls - 3.8.0 + 3.9.0 jar @@ -15,7 +15,7 @@ Skulls ${project.groupId}.${project.artifactId}.${project.name} 1.8 - 3.10.0 + 3.10.1 ca.tweetzy UTF-8 From e4a6d2f8b9fda3e7a27402b2e86a52b389b3f772 Mon Sep 17 00:00:00 2001 From: Kiran Hart Date: Fri, 3 Mar 2023 14:27:18 -0500 Subject: [PATCH 3/7] adjust worldguard check for actual block break perm Took 4 minutes --- src/main/java/ca/tweetzy/skulls/hooks/WorldGuardHook.java | 2 +- src/main/resources/plugin.yml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/ca/tweetzy/skulls/hooks/WorldGuardHook.java b/src/main/java/ca/tweetzy/skulls/hooks/WorldGuardHook.java index caa4378..5adee25 100644 --- a/src/main/java/ca/tweetzy/skulls/hooks/WorldGuardHook.java +++ b/src/main/java/ca/tweetzy/skulls/hooks/WorldGuardHook.java @@ -58,7 +58,7 @@ public boolean isAllowedBreak(@NonNull final Player player, @NonNull final Block return true; - return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), Flags.BUILD); + return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), Flags.BUILD) || query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), Flags.BLOCK_BREAK); } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 04ea707..c2f296b 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -6,4 +6,7 @@ api-version: 1.13 softdepend: - Vault - UltraEconomy + - WorldGuard + - WorldEdit + - FastAsyncWorldEdit commands: \ No newline at end of file From 086f71d22d54f7afc314975b38d3164ee6474808 Mon Sep 17 00:00:00 2001 From: Kiran Hart Date: Fri, 31 Mar 2023 15:07:10 -0400 Subject: [PATCH 4/7] =?UTF-8?q?=F0=9F=AA=B2=20Fixed=20issue=20with=20skull?= =?UTF-8?q?s=20not=20registering=20on=20block=20faces?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Took 26 minutes --- .../skulls/listeners/SkullBlockListener.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/main/java/ca/tweetzy/skulls/listeners/SkullBlockListener.java b/src/main/java/ca/tweetzy/skulls/listeners/SkullBlockListener.java index db02e62..c73e908 100644 --- a/src/main/java/ca/tweetzy/skulls/listeners/SkullBlockListener.java +++ b/src/main/java/ca/tweetzy/skulls/listeners/SkullBlockListener.java @@ -28,7 +28,6 @@ import ca.tweetzy.skulls.impl.PlacedSkullLocation; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; @@ -48,13 +47,16 @@ public void onSkullPlace(final BlockPlaceEvent event) { } final ItemStack item = PlayerUtil.getHand(event.getPlayer()); - if (!NBTEditor.contains(item, "Skulls:ID")) return; + if (!NBTEditor.contains(item, "Skulls:ID")) { + return; + } final Block block = event.getBlockPlaced(); - if (block.getType() != CompMaterial.PLAYER_HEAD.parseMaterial()) return; + if (block.getType() == CompMaterial.PLAYER_HEAD.parseMaterial() || block.getType() == CompMaterial.PLAYER_WALL_HEAD.parseMaterial()) { + final int skullId = Integer.parseInt(NBTEditor.getString(item, "Skulls:ID")); + Skulls.getSkullManager().addPlacedSkull(new PlacedSkullLocation(UUID.randomUUID(), skullId, block.getLocation())); + } - final int skullId = Integer.parseInt(NBTEditor.getString(item, "Skulls:ID")); - Skulls.getSkullManager().addPlacedSkull(new PlacedSkullLocation(UUID.randomUUID(), skullId, block.getLocation())); } @EventHandler() @@ -66,16 +68,17 @@ public void onSkullBreak(final BlockBreakEvent event) { } final Block block = event.getBlock(); - if (block.getType() != CompMaterial.PLAYER_HEAD.parseMaterial()) return; - if (!Skulls.getSkullManager().getPlacedSkulls().containsKey(block.getLocation())) return; + if (block.getType() == CompMaterial.PLAYER_HEAD.parseMaterial() || block.getType() == CompMaterial.PLAYER_WALL_HEAD.parseMaterial()) { + if (!Skulls.getSkullManager().getPlacedSkulls().containsKey(block.getLocation())) return; - final PlacedSkull placedSkull = Skulls.getSkullManager().getPlacedSkulls().get(block.getLocation()); - Skulls.getSkullManager().removePlacedSkull(placedSkull); + final PlacedSkull placedSkull = Skulls.getSkullManager().getPlacedSkulls().get(block.getLocation()); + Skulls.getSkullManager().removePlacedSkull(placedSkull); - event.setDropItems(false); - final Skull skull = Skulls.getSkullManager().getSkull(placedSkull.getSkullId()); - block.getWorld().dropItemNaturally(block.getLocation(), skull.getItemStack()); + event.setDropItems(false); + final Skull skull = Skulls.getSkullManager().getSkull(placedSkull.getSkullId()); + block.getWorld().dropItemNaturally(block.getLocation(), skull.getItemStack()); + } } } From 19a6514f2b9620427d439fbce88df0f68659670b Mon Sep 17 00:00:00 2001 From: Kiran Hart Date: Fri, 31 Mar 2023 15:09:20 -0400 Subject: [PATCH 5/7] 3.9.1 Took 2 minutes --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 9c4fc29..440527f 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ skulls Skulls - 3.9.0 + 3.9.1 jar @@ -15,7 +15,7 @@ Skulls ${project.groupId}.${project.artifactId}.${project.name} 1.8 - 3.10.1 + 3.11.0 ca.tweetzy UTF-8 @@ -139,10 +139,10 @@ copy-resources - C:\Dev\Minecraft\latest\plugins + D:\Development\Spigot Servers\Latest Version\plugins - C:\Users\Kiran\Documents\Development\Minecraft\Active\${project.name}\target + ${project.build.directory} ${project.name}.jar false From 0c0e85409bba99b84d102b867c046a2f5e82d570 Mon Sep 17 00:00:00 2001 From: Kiran Hart Date: Fri, 12 May 2023 15:03:27 -0400 Subject: [PATCH 6/7] slight adjustment to withdraw and has methods in item economy provider Took 20 minutes --- .../ca/tweetzy/skulls/guis/SkullsViewGUI.java | 2 ++ .../tweetzy/skulls/impl/economy/ItemEconomy.java | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java b/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java index e81a8e6..f3b9e05 100644 --- a/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java +++ b/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java @@ -18,11 +18,13 @@ package ca.tweetzy.skulls.guis; +import ca.tweetzy.flight.comp.enums.CompMaterial; import ca.tweetzy.flight.gui.Gui; import ca.tweetzy.flight.gui.events.GuiClickEvent; import ca.tweetzy.flight.gui.template.PagedGUI; import ca.tweetzy.flight.settings.TranslationManager; import ca.tweetzy.flight.utils.Common; +import ca.tweetzy.flight.utils.PlayerUtil; import ca.tweetzy.flight.utils.QuickItem; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.enums.ViewMode; diff --git a/src/main/java/ca/tweetzy/skulls/impl/economy/ItemEconomy.java b/src/main/java/ca/tweetzy/skulls/impl/economy/ItemEconomy.java index 5eeccbf..e88e539 100644 --- a/src/main/java/ca/tweetzy/skulls/impl/economy/ItemEconomy.java +++ b/src/main/java/ca/tweetzy/skulls/impl/economy/ItemEconomy.java @@ -18,11 +18,14 @@ package ca.tweetzy.skulls.impl.economy; -import ca.tweetzy.skulls.model.PlayerInventoryHelper; +import ca.tweetzy.flight.utils.Common; +import ca.tweetzy.flight.utils.PlayerUtil; import ca.tweetzy.skulls.api.interfaces.Economy; +import ca.tweetzy.skulls.model.PlayerInventoryHelper; import ca.tweetzy.skulls.settings.Settings; import lombok.NonNull; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; /** * Date Created: April 21 2022 @@ -32,6 +35,10 @@ */ public final class ItemEconomy implements Economy { + public ItemEconomy() { + Common.log("&aSetting up item economy provider"); + } + @Override public String getName() { return "Item"; @@ -44,12 +51,15 @@ public boolean requiresExternalPlugin() { @Override public boolean has(@NonNull Player player, double amount) { - return PlayerInventoryHelper.getItemCountInPlayerInventory(player, Settings.ITEM_ECONOMY_ITEM.getMaterial().parseItem()) >= (int) amount; + final ItemStack item = Settings.ITEM_ECONOMY_ITEM.getItemStack(); + final int total = PlayerUtil.getItemCountInPlayerInventory(player, item); + return total >= (int) amount; } @Override public void withdraw(@NonNull Player player, double amount) { - PlayerInventoryHelper.removeSpecificItemQuantityFromPlayer(player, Settings.ITEM_ECONOMY_ITEM.getMaterial().parseItem(), (int) amount); + final ItemStack item = Settings.ITEM_ECONOMY_ITEM.getItemStack(); + PlayerInventoryHelper.removeSpecificItemQuantityFromPlayer(player, item, (int) amount); } @Override From e00500653bd05dfaf5ee6aa552941d24b8b6202a Mon Sep 17 00:00:00 2001 From: Kiran Hart Date: Fri, 12 May 2023 15:03:50 -0400 Subject: [PATCH 7/7] 3.9.2 Took 24 seconds --- pom.xml | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 440527f..2185b89 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ skulls Skulls - 3.9.1 + 3.9.2 jar @@ -15,7 +15,7 @@ Skulls ${project.groupId}.${project.artifactId}.${project.name} 1.8 - 3.11.0 + 3.12.0 ca.tweetzy UTF-8 @@ -26,6 +26,10 @@ Tweetzy Maven Repo On Repsy https://repo.repsy.io/mvn/kiran/tweetzy + + nms-repo + https://repo.codemc.io/repository/nms/ + jitpack.io https://jitpack.io @@ -45,6 +49,11 @@ + org.spigotmc + spigot + 1.19.4-R0.1-SNAPSHOT + provided + ${flight.path} flight ${flight.version} @@ -66,7 +75,12 @@ VaultAPI 1.7 provided - + + + org.bukkit + bukkit + + me.TechsCode UltraEconomyAPI @@ -149,23 +163,6 @@ - - copy-to-ready-jars - package - - copy-resources - - - C:\Users\Kiran\Documents\Development\Minecraft\Ready Jars\ - - - C:\Users\Kiran\Documents\Development\Minecraft\Active\${project.name}\target - ${project.name}.jar - false - - - -