diff --git a/common/src/main/java/io/github/flemmli97/flan/Flan.java b/common/src/main/java/io/github/flemmli97/flan/Flan.java index 505f485..9d0a692 100644 --- a/common/src/main/java/io/github/flemmli97/flan/Flan.java +++ b/common/src/main/java/io/github/flemmli97/flan/Flan.java @@ -15,7 +15,7 @@ public class Flan { public static final Logger logger = LogManager.getLogger("flan"); - public static boolean permissionAPI, gunpowder, playerAbilityLib, ftbRanks, diceMCMoneySign, octoEconomy; + public static boolean permissionAPI, gunpowder, playerAbilityLib, ftbRanks, diceMCMoneySign, octoEconomy, diamondCurrency; public static final DateTimeFormatter onlineTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); diff --git a/fabric/build.gradle b/fabric/build.gradle index f417bbd..7c197e1 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -65,6 +65,7 @@ dependencies { }*/ modImplementation octo_economy_api //modRuntimeOnly eights_economy + modImplementation diamond_economy //modImplementation "io.github.ladysnake:PlayerAbilityLib:${rootProject.player_ability_lib}" modCompileOnly "io.github.ladysnake:PlayerAbilityLib:${rootProject.player_ability_lib}" diff --git a/fabric/src/main/java/io/github/flemmli97/flan/fabric/FlanFabric.java b/fabric/src/main/java/io/github/flemmli97/flan/fabric/FlanFabric.java index e1f1a13..d748b02 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/fabric/FlanFabric.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/FlanFabric.java @@ -60,6 +60,7 @@ public class FlanFabric implements ModInitializer { Flan.playerAbilityLib = FabricLoader.getInstance().isModLoaded("playerabilitylib"); Flan.ftbRanks = FabricLoader.getInstance().isModLoaded("ftbranks"); Flan.octoEconomy = FabricLoader.getInstance().isModLoaded("octo-economy-api"); + Flan.diamondCurrency = FabricLoader.getInstance().isModLoaded("diamondeconomy"); if (Flan.playerAbilityLib) PlayerAbilityEvents.register(); if (FabricLoader.getInstance().isModLoaded("dynmap")) diff --git a/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/currency/CommandCurrencyImpl.java b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/currency/CommandCurrencyImpl.java index 547ef03..a6fe807 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/currency/CommandCurrencyImpl.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/currency/CommandCurrencyImpl.java @@ -3,6 +3,7 @@ package io.github.flemmli97.flan.fabric.platform.integration.currency; import com.epherical.octoecon.OctoEconomy; import com.epherical.octoecon.api.Currency; import com.epherical.octoecon.api.user.UniqueUser; +import com.gmail.sneakdevs.diamondeconomy.DiamondUtils; import io.github.flemmli97.flan.Flan; import io.github.flemmli97.flan.claim.PermHelper; import io.github.flemmli97.flan.config.ConfigHandler; @@ -58,6 +59,17 @@ public class CommandCurrencyImpl implements CommandCurrency { data.setAdditionalClaims(data.getAdditionalClaims() - blocks); message.accept(PermHelper.simpleColoredText(String.format(ConfigHandler.langManager.get("sellSuccess"), blocks, price), ChatFormatting.GOLD)); } + if (Flan.diamondCurrency) { + PlayerClaimData data = PlayerClaimData.get(player); + if (data.getAdditionalClaims() - Math.max(0, data.usedClaimBlocks() - data.getClaimBlocks()) < blocks) { + message.accept(PermHelper.simpleColoredText(ConfigHandler.langManager.get("sellFail"), ChatFormatting.DARK_RED)); + return false; + } + double price = blocks * value; + DiamondUtils.getDatabaseManager().changeBalance(player.getUUID().toString(), (int) price); + data.setAdditionalClaims(data.getAdditionalClaims() - blocks); + message.accept(PermHelper.simpleColoredText(String.format(ConfigHandler.langManager.get("sellSuccess"), blocks, price), ChatFormatting.GOLD)); + } message.accept(PermHelper.simpleColoredText(ConfigHandler.langManager.get("currencyMissing"), ChatFormatting.DARK_RED)); return false; } @@ -101,6 +113,18 @@ public class CommandCurrencyImpl implements CommandCurrency { message.accept(PermHelper.simpleColoredText(ConfigHandler.langManager.get("buyFail"), ChatFormatting.DARK_RED)); return false; } + if (Flan.diamondCurrency) { + double price = Math.max(0, blocks * value); + if (DiamondUtils.getDatabaseManager().getBalanceFromUUID(player.getUUID().toString()) >= price) { + PlayerClaimData data = PlayerClaimData.get(player); + data.setAdditionalClaims(data.getAdditionalClaims() + blocks); + DiamondUtils.getDatabaseManager().changeBalance(player.getUUID().toString(), -(int) price); + message.accept(PermHelper.simpleColoredText(String.format(ConfigHandler.langManager.get("buySuccess"), blocks, price), ChatFormatting.GOLD)); + return true; + } + message.accept(PermHelper.simpleColoredText(ConfigHandler.langManager.get("buyFail"), ChatFormatting.DARK_RED)); + return false; + } message.accept(PermHelper.simpleColoredText(ConfigHandler.langManager.get("currencyMissing"), ChatFormatting.DARK_RED)); return false; } diff --git a/gradle.properties b/gradle.properties index 8ad78c9..0d2bca1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,6 +19,7 @@ player_ability_lib=1.2.2 ftb_ranks=1900.1.9-build.42 dicemcmm=curse.maven:dicemcmoney-406972:3827507 dynmap_fabric=curse.maven:dynmap-59433:3840510 +diamond_economy=curse.maven:diamondeconomy-534301:3837320 # not updated gunpowder_currency=curse.maven:gunpowdercurrency-402041:3584557 #