diff --git a/api/build.gradle.kts b/api/build.gradle.kts deleted file mode 100644 index b34fcab..0000000 --- a/api/build.gradle.kts +++ /dev/null @@ -1,23 +0,0 @@ -plugins { - `maven-publish` -} - -dependencies { - compileOnly("com.alttd:Galaxy-API:1.18.2-R0.1-SNAPSHOT") -} - -publishing { - publications { - create("mavenJava") { - from(components["java"]) - } - } - - repositories{ - maven { - name = "maven" - url = uri("https://repo.destro.xyz/snapshots") - credentials(PasswordCredentials::class) - } - } -} \ No newline at end of file diff --git a/api/src/main/java/com/alttd/playershops/api/Shop.java b/api/src/main/java/com/alttd/playershops/api/Shop.java deleted file mode 100644 index eaffe72..0000000 --- a/api/src/main/java/com/alttd/playershops/api/Shop.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.alttd.playershops.api; - -import org.bukkit.Location; -import org.bukkit.inventory.ItemStack; - -import java.util.UUID; - -public interface Shop { // TODO finish docs - - String getOwnerName(); - - UUID getOwnerUUID(); - - ShopType getType(); - - Location getSignLocation(); - - Location getContainerLocation(); - - String getServer(); - - double getPrice(); - - void setPrice(double price); - - int getAmount(); - - void setAmount(int amount); - - double getBalance(); - - void setBalance(double balance); - - ItemStack getItemStack(); - - void setItemStack(ItemStack itemStack); - - ItemStack getSecondaryItem(); - - void setSecondaryItem(ItemStack itemStack); - - boolean isInitialized(); -} diff --git a/api/src/main/java/com/alttd/playershops/api/ShopHandler.java b/api/src/main/java/com/alttd/playershops/api/ShopHandler.java deleted file mode 100644 index a122406..0000000 --- a/api/src/main/java/com/alttd/playershops/api/ShopHandler.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.alttd.playershops.api; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.UUID; - -public interface ShopHandler { // TODO finish docs - - /** - * Get the shop at a given location - * - * @param location Location of the shop - * @return Shop at the given location or null if no shop is found there - */ - Shop getShop(Location location); - - /** - * Get the shop at a given location - * - * @param signLocation Location of the shopSign - * @return Shop at the given location or null if no shop is found there - */ - Shop getShopBySignLocation(Location signLocation); - - /** - * Checks whether there is a shop at a given location - * @param location Location to check - * @return Whether there is a shop at the given location - */ - boolean isShop(Location location); - - /** - * Get a collection of all loaded shops - * - * This collection is safe to use for looping over and removing shops. - * - * @return Read-only collection of all shops - */ - Collection getShops(); - - /** - * Add a player's custom shop limit - * - * @param uuid The uuid linked to this player - * @param limit The new maximum amount of shops this player can have - */ - void addPlayerLimit(UUID uuid, int limit); - - /** - * Get the maximum amount of shops this player is allowed to have - * - * @param uuid The uuid linked to this player - * @return The limit of shops for this player - */ - int getShopLimit(UUID uuid); - - /** - * Checks wether this block is valid to be used as a shop - * - * @param block the block to check - * @return true if this block can be a shop - */ - boolean isShopMaterial(Block block); - - /** - * Get all the shops owned by a player - * - * @param uuid The uuid linked to this player - * @return List of shops this player owns - */ - List getShops(UUID uuid); - - ArrayList getShopMaterials(); -} diff --git a/build.gradle.kts b/build.gradle.kts index e0e81dc..1fa9fdb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,15 +2,15 @@ import java.io.ByteArrayOutputStream plugins { id("java") + id("net.minecrell.plugin-yml.bukkit") version "0.5.1" + id("com.github.johnrengelman.shadow") version "7.1.0" } allprojects { group = "com.alttd.playershops" version = "1.0-SNAPSHOT" description = "Player Shop plugin for Altitude." -} -subprojects { apply() java { @@ -30,6 +30,17 @@ subprojects { } } +dependencies { + compileOnly("com.alttd:Galaxy-API:1.18.2-R0.1-SNAPSHOT") + compileOnly("com.github.milkbowl:VaultAPI:1.7") { + exclude("org.bukkit","bukkit") + } + compileOnly("com.github.TechFortress:GriefPrevention:16.17.1") + + compileOnly("org.projectlombok:lombok:1.18.24") + annotationProcessor("org.projectlombok:lombok:1.18.24") +} + fun gitCommit(): String { val os = ByteArrayOutputStream() project.exec { @@ -37,4 +48,13 @@ fun gitCommit(): String { standardOutput = os } return String(os.toByteArray()).trim() +} + +bukkit { + name = rootProject.name + main = "$group.${rootProject.name}" + version = "${rootProject.version}-${gitCommit()}" + apiVersion = "1.18" + authors = listOf("destro174") + depend = listOf("Vault") } \ No newline at end of file diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts deleted file mode 100644 index 01ab6eb..0000000 --- a/plugin/build.gradle.kts +++ /dev/null @@ -1,50 +0,0 @@ -import java.io.ByteArrayOutputStream - -plugins { - id("java") - id("net.minecrell.plugin-yml.bukkit") version "0.5.1" - id("com.github.johnrengelman.shadow") version "7.1.0" -} - -dependencies { - implementation(project(":api")) - - compileOnly("com.alttd:Galaxy-API:1.18.2-R0.1-SNAPSHOT") - compileOnly("com.github.milkbowl:VaultAPI:1.7") { - exclude("org.bukkit","bukkit") - } - compileOnly("com.github.TechFortress:GriefPrevention:16.17.1") - - compileOnly("org.projectlombok:lombok:1.18.24") - annotationProcessor("org.projectlombok:lombok:1.18.24") -} - -bukkit { - name = rootProject.name - main = "$group.${rootProject.name}" - version = "${rootProject.version}-${gitCommit()}" - apiVersion = "1.18" - authors = listOf("destro174") - depend = listOf("Vault") -} - -fun gitCommit(): String { - val os = ByteArrayOutputStream() - project.exec { - commandLine = "git rev-parse --short HEAD".split(" ") - standardOutput = os - } - return String(os.toByteArray()).trim() -} - -tasks { - - shadowJar { - archiveFileName.set("${rootProject.name}-${project.version}.jar") - } - - build { - dependsOn(shadowJar) - } - -} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index e48384c..f8050ed 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -21,5 +21,3 @@ pluginManagement { gradlePluginPortal() } } -include("api") -include("plugin") diff --git a/plugin/src/main/java/com/alttd/playershops/PlayerShops.java b/src/main/java/com/alttd/playershops/PlayerShops.java similarity index 93% rename from plugin/src/main/java/com/alttd/playershops/PlayerShops.java rename to src/main/java/com/alttd/playershops/PlayerShops.java index 2d34956..7e73b5c 100644 --- a/plugin/src/main/java/com/alttd/playershops/PlayerShops.java +++ b/src/main/java/com/alttd/playershops/PlayerShops.java @@ -1,11 +1,10 @@ package com.alttd.playershops; -import com.alttd.playershops.api.ShopHandler; +import com.alttd.playershops.config.Config; import com.alttd.playershops.config.MessageConfig; +import com.alttd.playershops.handler.ShopHandler; import com.alttd.playershops.listener.PlayerListener; import com.alttd.playershops.listener.ShopListener; -import com.alttd.playershops.config.Config; -import com.alttd.playershops.handler.ShopHandlerImpl; import lombok.Getter; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; @@ -37,7 +36,7 @@ public class PlayerShops extends JavaPlugin { registerListeners(); registerCommands(); - shopHandler = new ShopHandlerImpl(instance); + shopHandler = new ShopHandler(instance); } private boolean setupEconomy() { diff --git a/plugin/src/main/java/com/alttd/playershops/config/Config.java b/src/main/java/com/alttd/playershops/config/Config.java similarity index 97% rename from plugin/src/main/java/com/alttd/playershops/config/Config.java rename to src/main/java/com/alttd/playershops/config/Config.java index 799b90f..08f65bf 100644 --- a/plugin/src/main/java/com/alttd/playershops/config/Config.java +++ b/src/main/java/com/alttd/playershops/config/Config.java @@ -1,7 +1,7 @@ package com.alttd.playershops.config; import com.alttd.galaxy.configuration.AbstractConfiguration; -import com.alttd.playershops.api.ShopType; +import com.alttd.playershops.shop.ShopType; import java.io.File; import java.util.HashMap; diff --git a/plugin/src/main/java/com/alttd/playershops/config/DatabaseConfig.java b/src/main/java/com/alttd/playershops/config/DatabaseConfig.java similarity index 97% rename from plugin/src/main/java/com/alttd/playershops/config/DatabaseConfig.java rename to src/main/java/com/alttd/playershops/config/DatabaseConfig.java index 35eda97..338f19c 100644 --- a/plugin/src/main/java/com/alttd/playershops/config/DatabaseConfig.java +++ b/src/main/java/com/alttd/playershops/config/DatabaseConfig.java @@ -1,7 +1,7 @@ package com.alttd.playershops.config; import com.alttd.galaxy.configuration.AbstractConfiguration; -import com.alttd.playershops.api.ShopType; +import com.alttd.playershops.shop.ShopType; import java.util.HashMap; diff --git a/plugin/src/main/java/com/alttd/playershops/config/MessageConfig.java b/src/main/java/com/alttd/playershops/config/MessageConfig.java similarity index 97% rename from plugin/src/main/java/com/alttd/playershops/config/MessageConfig.java rename to src/main/java/com/alttd/playershops/config/MessageConfig.java index 5f738a2..e65e161 100644 --- a/plugin/src/main/java/com/alttd/playershops/config/MessageConfig.java +++ b/src/main/java/com/alttd/playershops/config/MessageConfig.java @@ -1,7 +1,7 @@ package com.alttd.playershops.config; import com.alttd.galaxy.configuration.AbstractConfiguration; -import com.alttd.playershops.api.ShopType; +import com.alttd.playershops.shop.ShopType; import java.util.HashMap; diff --git a/plugin/src/main/java/com/alttd/playershops/config/ShopTypeConfig.java b/src/main/java/com/alttd/playershops/config/ShopTypeConfig.java similarity index 100% rename from plugin/src/main/java/com/alttd/playershops/config/ShopTypeConfig.java rename to src/main/java/com/alttd/playershops/config/ShopTypeConfig.java diff --git a/plugin/src/main/java/com/alttd/playershops/database/Database.java b/src/main/java/com/alttd/playershops/database/Database.java similarity index 100% rename from plugin/src/main/java/com/alttd/playershops/database/Database.java rename to src/main/java/com/alttd/playershops/database/Database.java diff --git a/plugin/src/main/java/com/alttd/playershops/database/ShopQueries.java b/src/main/java/com/alttd/playershops/database/ShopQueries.java similarity index 94% rename from plugin/src/main/java/com/alttd/playershops/database/ShopQueries.java rename to src/main/java/com/alttd/playershops/database/ShopQueries.java index b8b8880..26dd6eb 100644 --- a/plugin/src/main/java/com/alttd/playershops/database/ShopQueries.java +++ b/src/main/java/com/alttd/playershops/database/ShopQueries.java @@ -1,8 +1,7 @@ package com.alttd.playershops.database; -import com.alttd.playershops.api.Shop; -import com.alttd.playershops.api.ShopType; import com.alttd.playershops.shop.AbstractShop; +import com.alttd.playershops.shop.ShopType; import com.alttd.playershops.utils.AMath; import com.alttd.playershops.utils.Logger; import org.bukkit.Bukkit; @@ -63,7 +62,7 @@ public class ShopQueries { return false; } - public static Shop loadShop(int id) { + public static AbstractShop loadShop(int id) { String sql = "SELECT * FROM shops WHERE id = ?"; try { PreparedStatement statement = Database.getDatabase().getConnection().prepareStatement(sql); @@ -78,15 +77,15 @@ public class ShopQueries { return null; } - public static List loadShops() { + public static List loadShops() { String sql = "SELECT * FROM shops"; - ArrayList shops = new ArrayList<>(); + ArrayList shops = new ArrayList<>(); try { PreparedStatement statement = Database.getDatabase().getConnection().prepareStatement(sql); ResultSet resultSet = statement.executeQuery(); while (resultSet.next()) { - Shop shop = shopFromResultSet(resultSet); + AbstractShop shop = shopFromResultSet(resultSet); if (shop == null) { Logger.warn("Tried to load a shop but failed [" + resultSet + "]"); continue; @@ -105,7 +104,7 @@ public class ShopQueries { * @return A shop * @throws SQLException if data is missing or formatted incorrectly */ - private static Shop shopFromResultSet(ResultSet resultSet) throws SQLException { + private static AbstractShop shopFromResultSet(ResultSet resultSet) throws SQLException { int id = resultSet.getInt("id"); String ownerName = resultSet.getString("owner_name"); UUID ownerUuid = UUID.fromString(resultSet.getString("owner_uuid")); diff --git a/api/src/main/java/com/alttd/playershops/api/events/PlayerCreateShopEvent.java b/src/main/java/com/alttd/playershops/events/PlayerCreateShopEvent.java similarity index 78% rename from api/src/main/java/com/alttd/playershops/api/events/PlayerCreateShopEvent.java rename to src/main/java/com/alttd/playershops/events/PlayerCreateShopEvent.java index bce42a0..827bdde 100644 --- a/api/src/main/java/com/alttd/playershops/api/events/PlayerCreateShopEvent.java +++ b/src/main/java/com/alttd/playershops/events/PlayerCreateShopEvent.java @@ -1,6 +1,6 @@ -package com.alttd.playershops.api.events; +package com.alttd.playershops.events; -import com.alttd.playershops.api.Shop; +import com.alttd.playershops.shop.AbstractShop; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; @@ -9,7 +9,7 @@ public class PlayerCreateShopEvent extends ShopEvent { private static final HandlerList handlers = new HandlerList(); private final Player player; - public PlayerCreateShopEvent(Player player, Shop shop) { + public PlayerCreateShopEvent(Player player, AbstractShop shop) { super(shop); this.player = player; } diff --git a/api/src/main/java/com/alttd/playershops/api/events/PlayerDestroyShopEvent.java b/src/main/java/com/alttd/playershops/events/PlayerDestroyShopEvent.java similarity index 78% rename from api/src/main/java/com/alttd/playershops/api/events/PlayerDestroyShopEvent.java rename to src/main/java/com/alttd/playershops/events/PlayerDestroyShopEvent.java index a87d246..9f3f53a 100644 --- a/api/src/main/java/com/alttd/playershops/api/events/PlayerDestroyShopEvent.java +++ b/src/main/java/com/alttd/playershops/events/PlayerDestroyShopEvent.java @@ -1,6 +1,6 @@ -package com.alttd.playershops.api.events; +package com.alttd.playershops.events; -import com.alttd.playershops.api.Shop; +import com.alttd.playershops.shop.AbstractShop; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; @@ -10,7 +10,7 @@ public class PlayerDestroyShopEvent extends ShopEvent { private static final HandlerList handlers = new HandlerList(); private final Player player; - public PlayerDestroyShopEvent(Player player, Shop shop) { + public PlayerDestroyShopEvent(Player player, AbstractShop shop) { super(shop); this.player = player; } diff --git a/api/src/main/java/com/alttd/playershops/api/events/PlayerExchangeShopEvent.java b/src/main/java/com/alttd/playershops/events/PlayerExchangeShopEvent.java similarity index 78% rename from api/src/main/java/com/alttd/playershops/api/events/PlayerExchangeShopEvent.java rename to src/main/java/com/alttd/playershops/events/PlayerExchangeShopEvent.java index 118db1f..588b24d 100644 --- a/api/src/main/java/com/alttd/playershops/api/events/PlayerExchangeShopEvent.java +++ b/src/main/java/com/alttd/playershops/events/PlayerExchangeShopEvent.java @@ -1,6 +1,6 @@ -package com.alttd.playershops.api.events; +package com.alttd.playershops.events; -import com.alttd.playershops.api.Shop; +import com.alttd.playershops.shop.AbstractShop; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; @@ -10,7 +10,7 @@ public class PlayerExchangeShopEvent extends ShopEvent { private static final HandlerList handlers = new HandlerList(); private final Player player; - public PlayerExchangeShopEvent(Player player, Shop shop) { + public PlayerExchangeShopEvent(Player player, AbstractShop shop) { super(shop); this.player = player; } diff --git a/api/src/main/java/com/alttd/playershops/api/events/PlayerInitializeShopEvent.java b/src/main/java/com/alttd/playershops/events/PlayerInitializeShopEvent.java similarity index 78% rename from api/src/main/java/com/alttd/playershops/api/events/PlayerInitializeShopEvent.java rename to src/main/java/com/alttd/playershops/events/PlayerInitializeShopEvent.java index 0033807..1cadb05 100644 --- a/api/src/main/java/com/alttd/playershops/api/events/PlayerInitializeShopEvent.java +++ b/src/main/java/com/alttd/playershops/events/PlayerInitializeShopEvent.java @@ -1,6 +1,6 @@ -package com.alttd.playershops.api.events; +package com.alttd.playershops.events; -import com.alttd.playershops.api.Shop; +import com.alttd.playershops.shop.AbstractShop; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; @@ -10,7 +10,7 @@ public class PlayerInitializeShopEvent extends ShopEvent { private static final HandlerList handlers = new HandlerList(); private final Player player; - public PlayerInitializeShopEvent(Player player, Shop shop) { + public PlayerInitializeShopEvent(Player player, AbstractShop shop) { super(shop); this.player = player; } diff --git a/api/src/main/java/com/alttd/playershops/api/events/ShopBalanceChangeEvent.java b/src/main/java/com/alttd/playershops/events/ShopBalanceChangeEvent.java similarity index 81% rename from api/src/main/java/com/alttd/playershops/api/events/ShopBalanceChangeEvent.java rename to src/main/java/com/alttd/playershops/events/ShopBalanceChangeEvent.java index 1f31557..10fad83 100644 --- a/api/src/main/java/com/alttd/playershops/api/events/ShopBalanceChangeEvent.java +++ b/src/main/java/com/alttd/playershops/events/ShopBalanceChangeEvent.java @@ -1,6 +1,6 @@ -package com.alttd.playershops.api.events; +package com.alttd.playershops.events; -import com.alttd.playershops.api.Shop; +import com.alttd.playershops.shop.AbstractShop; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; @@ -8,7 +8,7 @@ public class ShopBalanceChangeEvent extends ShopEvent { private static final HandlerList handlers = new HandlerList(); private final ChangeReason changeReason; - public ShopBalanceChangeEvent(Shop shop, ChangeReason reason) { + public ShopBalanceChangeEvent(AbstractShop shop, ChangeReason reason) { super(shop); this.changeReason = reason; } diff --git a/api/src/main/java/com/alttd/playershops/api/events/ShopEvent.java b/src/main/java/com/alttd/playershops/events/ShopEvent.java similarity index 67% rename from api/src/main/java/com/alttd/playershops/api/events/ShopEvent.java rename to src/main/java/com/alttd/playershops/events/ShopEvent.java index 797531f..2da3c18 100644 --- a/api/src/main/java/com/alttd/playershops/api/events/ShopEvent.java +++ b/src/main/java/com/alttd/playershops/events/ShopEvent.java @@ -1,19 +1,19 @@ -package com.alttd.playershops.api.events; +package com.alttd.playershops.events; -import com.alttd.playershops.api.Shop; +import com.alttd.playershops.shop.AbstractShop; import org.bukkit.event.Cancellable; import org.bukkit.event.Event; public abstract class ShopEvent extends Event implements Cancellable { private boolean cancelled; - private final Shop shop; + private final AbstractShop shop; - public ShopEvent(Shop shop) { + public ShopEvent(AbstractShop shop) { this.shop = shop; } - public Shop getShop() { + public AbstractShop getShop() { return shop; } diff --git a/plugin/src/main/java/com/alttd/playershops/handler/ShopHandlerImpl.java b/src/main/java/com/alttd/playershops/handler/ShopHandler.java similarity index 66% rename from plugin/src/main/java/com/alttd/playershops/handler/ShopHandlerImpl.java rename to src/main/java/com/alttd/playershops/handler/ShopHandler.java index e5ba73f..53a93bc 100644 --- a/plugin/src/main/java/com/alttd/playershops/handler/ShopHandlerImpl.java +++ b/src/main/java/com/alttd/playershops/handler/ShopHandler.java @@ -2,8 +2,9 @@ package com.alttd.playershops.handler; import com.alttd.playershops.PlayerShops; import com.alttd.playershops.config.Config; -import com.alttd.playershops.api.Shop; -import com.alttd.playershops.api.ShopHandler; +import com.alttd.playershops.events.PlayerCreateShopEvent; +import com.alttd.playershops.shop.AbstractShop; +import com.alttd.playershops.shop.ShopType; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import lombok.Getter; @@ -12,21 +13,22 @@ import org.bukkit.Material; import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import org.bukkit.entity.Player; import java.util.*; import java.util.concurrent.ConcurrentHashMap; -public class ShopHandlerImpl implements ShopHandler { +public class ShopHandler { private final PlayerShops plugin; @Getter private final Object2IntMap shopBuildLimits; @Getter - private final Map shopLocation; + private final Map shopLocation; @Getter private final ArrayList shopMaterials; - public ShopHandlerImpl(PlayerShops instance) { + public ShopHandler(PlayerShops instance) { plugin = instance; shopLocation = new ConcurrentHashMap<>(); shopBuildLimits = new Object2IntOpenHashMap<>(); @@ -34,7 +36,7 @@ public class ShopHandlerImpl implements ShopHandler { shopMaterials = new ArrayList<>(); // TODO move into parent method where materials are loaded in. } - public Shop getShop(Location location) { + public AbstractShop getShop(Location location) { Location newLocation = new Location(location.getWorld(), location.getBlockX(), location.getBlockY(), location.getBlockZ()); return shopLocation.get(newLocation); @@ -44,7 +46,7 @@ public class ShopHandlerImpl implements ShopHandler { return getShop(location) != null; } - public Collection getShops() { + public Collection getShops() { return Collections.unmodifiableCollection(shopLocation.values()); } @@ -67,24 +69,24 @@ public class ShopHandlerImpl implements ShopHandler { return shopMaterials.contains(block.getType()); } - public List getShops(UUID uuid) { - List shops = new ArrayList<>(); - for (Shop shop : shopLocation.values()) { + public List getShops(UUID uuid) { + List shops = new ArrayList<>(); + for (AbstractShop shop : shopLocation.values()) { if (shop.getOwnerUUID().equals(uuid)) shops.add(shop); } return shops; } - public Shop getShopBySignLocation(Location signLocation) { - for (Shop shop : shopLocation.values()) { + public AbstractShop getShopBySignLocation(Location signLocation) { + for (AbstractShop shop : shopLocation.values()) { if (shop.getSignLocation().equals(signLocation)) return shop; } return null; } - public Shop getShopNearBlock(Block block) { + public AbstractShop getShopNearBlock(Block block) { BlockFace[] faces = {BlockFace.NORTH, BlockFace.SOUTH, BlockFace.EAST, BlockFace.WEST}; for (BlockFace face : faces) { if (this.isShopMaterial(block.getRelative(face))) { @@ -96,4 +98,15 @@ public class ShopHandlerImpl implements ShopHandler { return null; } + public AbstractShop createShop(Location signLocation, Player player, double price, int amount, ShopType shopType) { + AbstractShop shop = AbstractShop.create(signLocation, player.getUniqueId(), price, amount, shopType); + + PlayerCreateShopEvent playerCreateShopEvent = new PlayerCreateShopEvent(player, shop); + plugin.getServer().getPluginManager().callEvent(playerCreateShopEvent); + + if(playerCreateShopEvent.isCancelled()) + return null; + + return shop; + } } diff --git a/plugin/src/main/java/com/alttd/playershops/listener/EventListener.java b/src/main/java/com/alttd/playershops/listener/EventListener.java similarity index 100% rename from plugin/src/main/java/com/alttd/playershops/listener/EventListener.java rename to src/main/java/com/alttd/playershops/listener/EventListener.java diff --git a/plugin/src/main/java/com/alttd/playershops/listener/InventoryListener.java b/src/main/java/com/alttd/playershops/listener/InventoryListener.java similarity index 100% rename from plugin/src/main/java/com/alttd/playershops/listener/InventoryListener.java rename to src/main/java/com/alttd/playershops/listener/InventoryListener.java diff --git a/plugin/src/main/java/com/alttd/playershops/listener/PlayerListener.java b/src/main/java/com/alttd/playershops/listener/PlayerListener.java similarity index 94% rename from plugin/src/main/java/com/alttd/playershops/listener/PlayerListener.java rename to src/main/java/com/alttd/playershops/listener/PlayerListener.java index bad3661..5da955f 100644 --- a/plugin/src/main/java/com/alttd/playershops/listener/PlayerListener.java +++ b/src/main/java/com/alttd/playershops/listener/PlayerListener.java @@ -1,10 +1,10 @@ package com.alttd.playershops.listener; import com.alttd.playershops.PlayerShops; -import com.alttd.playershops.api.Shop; -import com.alttd.playershops.api.ShopHandler; import com.alttd.playershops.config.Config; import com.alttd.playershops.config.MessageConfig; +import com.alttd.playershops.handler.ShopHandler; +import com.alttd.playershops.shop.AbstractShop; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; @@ -68,7 +68,7 @@ public class PlayerListener extends EventListener { if (!(block.getState() instanceof Sign)) return; - Shop shop = plugin.getShopHandler().getShop(block.getLocation()); + AbstractShop shop = plugin.getShopHandler().getShop(block.getLocation()); if(shop == null) return; if(shop.isInitialized()) event.setCancelled(true); @@ -101,7 +101,7 @@ public class PlayerListener extends EventListener { if (!signLineString.equalsIgnoreCase(Config.shopCreationWord)) return; - Shop shop = shopHandler.getShop(bRelative.getLocation()); + AbstractShop shop = shopHandler.getShop(bRelative.getLocation()); Player player = event.getPlayer(); if(shop != null) { event.setCancelled(true); @@ -109,7 +109,6 @@ public class PlayerListener extends EventListener { return; } - UUID playerUUID = player.getUniqueId(); if (!player.hasPermission("shop.create")) { event.setCancelled(true); diff --git a/plugin/src/main/java/com/alttd/playershops/listener/ShopListener.java b/src/main/java/com/alttd/playershops/listener/ShopListener.java similarity index 94% rename from plugin/src/main/java/com/alttd/playershops/listener/ShopListener.java rename to src/main/java/com/alttd/playershops/listener/ShopListener.java index 8f870f6..46151e9 100644 --- a/plugin/src/main/java/com/alttd/playershops/listener/ShopListener.java +++ b/src/main/java/com/alttd/playershops/listener/ShopListener.java @@ -1,7 +1,7 @@ package com.alttd.playershops.listener; import com.alttd.playershops.PlayerShops; -import com.alttd.playershops.api.Shop; +import com.alttd.playershops.shop.AbstractShop; import org.bukkit.Location; import org.bukkit.Tag; import org.bukkit.block.Block; @@ -25,7 +25,7 @@ public class ShopListener extends EventListener { // This might be heavy when tnt is chained, would it be better to expand the unbreakable block api in galaxy and use that? // No need for slow bukkit events eating up cpu and memory Iterator blockIterator = event.blockList().iterator(); - Shop shop = null; + AbstractShop shop = null; while (blockIterator.hasNext()) { Block block = blockIterator.next(); diff --git a/plugin/src/main/java/com/alttd/playershops/shop/AbstractShop.java b/src/main/java/com/alttd/playershops/shop/AbstractShop.java similarity index 96% rename from plugin/src/main/java/com/alttd/playershops/shop/AbstractShop.java rename to src/main/java/com/alttd/playershops/shop/AbstractShop.java index cc9cb5a..ea91e28 100644 --- a/plugin/src/main/java/com/alttd/playershops/shop/AbstractShop.java +++ b/src/main/java/com/alttd/playershops/shop/AbstractShop.java @@ -1,7 +1,5 @@ package com.alttd.playershops.shop; -import com.alttd.playershops.api.Shop; -import com.alttd.playershops.api.ShopType; import lombok.Getter; import lombok.Setter; import org.bukkit.Bukkit; @@ -12,7 +10,7 @@ import org.bukkit.inventory.ItemStack; import java.util.UUID; -public abstract class AbstractShop implements Shop { +public abstract class AbstractShop { @Getter private int id; diff --git a/plugin/src/main/java/com/alttd/playershops/shop/BarterShop.java b/src/main/java/com/alttd/playershops/shop/BarterShop.java similarity index 95% rename from plugin/src/main/java/com/alttd/playershops/shop/BarterShop.java rename to src/main/java/com/alttd/playershops/shop/BarterShop.java index d06a5be..97c972c 100644 --- a/plugin/src/main/java/com/alttd/playershops/shop/BarterShop.java +++ b/src/main/java/com/alttd/playershops/shop/BarterShop.java @@ -1,6 +1,5 @@ package com.alttd.playershops.shop; -import com.alttd.playershops.api.ShopType; import org.bukkit.Location; import org.bukkit.inventory.ItemStack; diff --git a/plugin/src/main/java/com/alttd/playershops/shop/BuyShop.java b/src/main/java/com/alttd/playershops/shop/BuyShop.java similarity index 95% rename from plugin/src/main/java/com/alttd/playershops/shop/BuyShop.java rename to src/main/java/com/alttd/playershops/shop/BuyShop.java index 875e989..a324410 100644 --- a/plugin/src/main/java/com/alttd/playershops/shop/BuyShop.java +++ b/src/main/java/com/alttd/playershops/shop/BuyShop.java @@ -1,6 +1,5 @@ package com.alttd.playershops.shop; -import com.alttd.playershops.api.ShopType; import org.bukkit.Location; import org.bukkit.inventory.ItemStack; diff --git a/plugin/src/main/java/com/alttd/playershops/shop/GambleShop.java b/src/main/java/com/alttd/playershops/shop/GambleShop.java similarity index 95% rename from plugin/src/main/java/com/alttd/playershops/shop/GambleShop.java rename to src/main/java/com/alttd/playershops/shop/GambleShop.java index 66eb830..8968a11 100644 --- a/plugin/src/main/java/com/alttd/playershops/shop/GambleShop.java +++ b/src/main/java/com/alttd/playershops/shop/GambleShop.java @@ -1,6 +1,5 @@ package com.alttd.playershops.shop; -import com.alttd.playershops.api.ShopType; import org.bukkit.Location; import org.bukkit.inventory.ItemStack; diff --git a/plugin/src/main/java/com/alttd/playershops/shop/SellShop.java b/src/main/java/com/alttd/playershops/shop/SellShop.java similarity index 95% rename from plugin/src/main/java/com/alttd/playershops/shop/SellShop.java rename to src/main/java/com/alttd/playershops/shop/SellShop.java index 4ded4d6..38e1ad3 100644 --- a/plugin/src/main/java/com/alttd/playershops/shop/SellShop.java +++ b/src/main/java/com/alttd/playershops/shop/SellShop.java @@ -1,6 +1,5 @@ package com.alttd.playershops.shop; -import com.alttd.playershops.api.ShopType; import org.bukkit.Location; import org.bukkit.inventory.ItemStack; diff --git a/plugin/src/main/java/com/alttd/playershops/shop/ShopTransaction.java b/src/main/java/com/alttd/playershops/shop/ShopTransaction.java similarity index 100% rename from plugin/src/main/java/com/alttd/playershops/shop/ShopTransaction.java rename to src/main/java/com/alttd/playershops/shop/ShopTransaction.java diff --git a/plugin/src/main/java/com/alttd/playershops/shop/ShopTransactionError.java b/src/main/java/com/alttd/playershops/shop/ShopTransactionError.java similarity index 100% rename from plugin/src/main/java/com/alttd/playershops/shop/ShopTransactionError.java rename to src/main/java/com/alttd/playershops/shop/ShopTransactionError.java diff --git a/api/src/main/java/com/alttd/playershops/api/ShopType.java b/src/main/java/com/alttd/playershops/shop/ShopType.java similarity index 81% rename from api/src/main/java/com/alttd/playershops/api/ShopType.java rename to src/main/java/com/alttd/playershops/shop/ShopType.java index ed164bd..1916207 100644 --- a/api/src/main/java/com/alttd/playershops/api/ShopType.java +++ b/src/main/java/com/alttd/playershops/shop/ShopType.java @@ -1,7 +1,6 @@ -package com.alttd.playershops.api; +package com.alttd.playershops.shop; public enum ShopType { - SELL, BUY, GAMBLE, @@ -11,5 +10,4 @@ public enum ShopType { public String toString() { return name().toLowerCase(); } - } diff --git a/plugin/src/main/java/com/alttd/playershops/utils/AMath.java b/src/main/java/com/alttd/playershops/utils/AMath.java similarity index 100% rename from plugin/src/main/java/com/alttd/playershops/utils/AMath.java rename to src/main/java/com/alttd/playershops/utils/AMath.java diff --git a/plugin/src/main/java/com/alttd/playershops/utils/Logger.java b/src/main/java/com/alttd/playershops/utils/Logger.java similarity index 100% rename from plugin/src/main/java/com/alttd/playershops/utils/Logger.java rename to src/main/java/com/alttd/playershops/utils/Logger.java