mirror of
https://github.com/kiranhart/Auction-House.git
synced 2024-11-22 05:25:11 +01:00
2.38.0 - UltraEconomy Support
This commit is contained in:
parent
bf7ffac0da
commit
aaed974ae2
8
pom.xml
8
pom.xml
@ -6,7 +6,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>ca.tweetzy</groupId>
|
||||
<artifactId>auctionhouse</artifactId>
|
||||
<version>2.37.0</version>
|
||||
<version>2.38.0</version>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
@ -192,6 +192,12 @@
|
||||
<version>2.10.10</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.TechsCode</groupId>
|
||||
<artifactId>UltraEconomy</artifactId>
|
||||
<version>1.4.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -1,9 +1,9 @@
|
||||
package ca.tweetzy.auctionhouse;
|
||||
|
||||
import ca.tweetzy.auctionhouse.api.UpdateChecker;
|
||||
import ca.tweetzy.auctionhouse.api.hook.PlaceholderAPI;
|
||||
import ca.tweetzy.auctionhouse.api.hook.PlaceholderAPIHook;
|
||||
import ca.tweetzy.auctionhouse.api.hook.UltraEconomyHook;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionPlayer;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionStat;
|
||||
import ca.tweetzy.auctionhouse.commands.*;
|
||||
import ca.tweetzy.auctionhouse.database.DataManager;
|
||||
import ca.tweetzy.auctionhouse.database.migrations.*;
|
||||
@ -26,6 +26,8 @@ import ca.tweetzy.core.database.MySQLConnector;
|
||||
import ca.tweetzy.core.database.SQLiteConnector;
|
||||
import ca.tweetzy.core.gui.GuiManager;
|
||||
import ca.tweetzy.core.hooks.EconomyManager;
|
||||
import ca.tweetzy.core.hooks.PluginHook;
|
||||
import ca.tweetzy.core.hooks.economies.Economy;
|
||||
import ca.tweetzy.core.utils.Metrics;
|
||||
import ca.tweetzy.core.utils.TextUtils;
|
||||
import co.aikar.taskchain.BukkitTaskChainFactory;
|
||||
@ -50,6 +52,7 @@ public class AuctionHouse extends TweetyPlugin {
|
||||
|
||||
private static TaskChainFactory taskChainFactory;
|
||||
private static AuctionHouse instance;
|
||||
private PluginHook ultraEconomyHook;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ -110,18 +113,26 @@ public class AuctionHouse extends TweetyPlugin {
|
||||
|
||||
taskChainFactory = BukkitTaskChainFactory.create(this);
|
||||
|
||||
// Load Economy
|
||||
EconomyManager.load();
|
||||
|
||||
// Settings
|
||||
Settings.setup();
|
||||
|
||||
this.ultraEconomyHook = PluginHook.addHook(Economy.class, "UltraEconomy", UltraEconomyHook.class);
|
||||
|
||||
// Load Economy
|
||||
EconomyManager.load();
|
||||
|
||||
// local
|
||||
setLocale(Settings.LANG.getString());
|
||||
LocaleSettings.setup();
|
||||
|
||||
// Setup Economy
|
||||
EconomyManager.getManager().setPreferredHook(Settings.ECONOMY_PLUGIN.getString());
|
||||
final String ECO_PLUGIN =Settings.ECONOMY_PLUGIN.getString();
|
||||
if (ECO_PLUGIN.startsWith("UltraEconomy")) {
|
||||
EconomyManager.getManager().setPreferredHook(this.ultraEconomyHook);
|
||||
} else {
|
||||
EconomyManager.getManager().setPreferredHook(ECO_PLUGIN);
|
||||
}
|
||||
|
||||
if (!EconomyManager.getManager().isEnabled()) {
|
||||
getLogger().severe("Could not find a valid economy provider for Auction House");
|
||||
getServer().getPluginManager().disablePlugin(this);
|
||||
@ -200,8 +211,8 @@ public class AuctionHouse extends TweetyPlugin {
|
||||
);
|
||||
|
||||
// Placeholder API
|
||||
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
|
||||
new PlaceholderAPI(this).register();
|
||||
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPIHook") != null) {
|
||||
new PlaceholderAPIHook(this).register();
|
||||
}
|
||||
|
||||
// start the auction tick task
|
||||
|
@ -2,8 +2,7 @@ package ca.tweetzy.auctionhouse.api;
|
||||
|
||||
import ca.tweetzy.auctionhouse.AuctionHouse;
|
||||
import ca.tweetzy.auctionhouse.api.events.AuctionStartEvent;
|
||||
import ca.tweetzy.auctionhouse.api.hook.MMOItems;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionItem;
|
||||
import ca.tweetzy.auctionhouse.api.hook.MMOItemsHook;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionPlayer;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionSaleType;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionedItem;
|
||||
@ -18,21 +17,17 @@ import ca.tweetzy.core.utils.PlayerUtils;
|
||||
import ca.tweetzy.core.utils.TextUtils;
|
||||
import ca.tweetzy.core.utils.items.ItemUtils;
|
||||
import ca.tweetzy.core.utils.nms.NBTEditor;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.apache.commons.lang.WordUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BundleMeta;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
@ -262,7 +257,7 @@ public class AuctionAPI {
|
||||
: Color.getHSBColor(Float.parseFloat(possibleColours[0]) / 360, Float.parseFloat(possibleColours[1]) / 100, Float.parseFloat(possibleColours[2]) / 100);
|
||||
|
||||
ItemStack itemStack = auctionItem.getItem();
|
||||
String itemName = MMOItems.isEnabled() ? MMOItems.getItemType(itemStack) : ChatColor.stripColor(getItemName(itemStack));
|
||||
String itemName = MMOItemsHook.isEnabled() ? MMOItemsHook.getItemType(itemStack) : ChatColor.stripColor(getItemName(itemStack));
|
||||
|
||||
DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject();
|
||||
embedObject.setTitle(isNew ? Settings.DISCORD_MSG_START_TITLE.getString() : Settings.DISCORD_MSG_FINISH_TITLE.getString());
|
||||
@ -304,7 +299,7 @@ public class AuctionAPI {
|
||||
: Color.getHSBColor(Float.parseFloat(possibleColours[0]) / 360, Float.parseFloat(possibleColours[1]) / 100, Float.parseFloat(possibleColours[2]) / 100);
|
||||
|
||||
ItemStack itemStack = auctionItem.getItem();
|
||||
String itemName = MMOItems.isEnabled() ? MMOItems.getItemType(itemStack) : ChatColor.stripColor(getItemName(itemStack));
|
||||
String itemName = MMOItemsHook.isEnabled() ? MMOItemsHook.getItemType(itemStack) : ChatColor.stripColor(getItemName(itemStack));
|
||||
|
||||
DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject();
|
||||
embedObject.setTitle(Settings.DISCORD_MSG_BID_TITLE.getString());
|
||||
|
@ -17,10 +17,10 @@ import org.bukkit.inventory.ItemStack;
|
||||
*/
|
||||
|
||||
@UtilityClass
|
||||
public class MMOItems {
|
||||
public class MMOItemsHook {
|
||||
|
||||
public boolean isEnabled() {
|
||||
return Bukkit.getPluginManager().getPlugin("MMOItems") != null;
|
||||
return Bukkit.getPluginManager().getPlugin("MMOItemsHook") != null;
|
||||
}
|
||||
|
||||
private boolean hasType(@NonNull final NBTItem itemStack) {
|
@ -2,7 +2,6 @@ package ca.tweetzy.auctionhouse.api.hook;
|
||||
|
||||
import ca.tweetzy.auctionhouse.AuctionHouse;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionPlayer;
|
||||
import io.lumine.mythic.lib.comp.PlaceholderAPIHook;
|
||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@ -13,11 +12,11 @@ import org.jetbrains.annotations.NotNull;
|
||||
* Time Created: 6:36 p.m.
|
||||
* Usage of any code found within this class is prohibited unless given explicit permission otherwise
|
||||
*/
|
||||
public class PlaceholderAPI extends PlaceholderExpansion {
|
||||
public class PlaceholderAPIHook extends PlaceholderExpansion {
|
||||
|
||||
private final AuctionHouse plugin;
|
||||
|
||||
public PlaceholderAPI(AuctionHouse plugin) {
|
||||
public PlaceholderAPIHook(AuctionHouse plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
@ -0,0 +1,73 @@
|
||||
package ca.tweetzy.auctionhouse.api.hook;
|
||||
|
||||
import ca.tweetzy.auctionhouse.exception.UltraEconomyCurrencyException;
|
||||
import ca.tweetzy.auctionhouse.settings.Settings;
|
||||
import ca.tweetzy.core.hooks.economies.Economy;
|
||||
import me.TechsCode.UltraEconomy.UltraEconomy;
|
||||
import me.TechsCode.UltraEconomy.objects.Account;
|
||||
import me.TechsCode.UltraEconomy.objects.Currency;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
|
||||
/**
|
||||
* The current file has been created by Kiran Hart
|
||||
* Date Created: October 05 2021
|
||||
* Time Created: 9:18 p.m.
|
||||
* Usage of any code found within this class is prohibited unless given explicit permission otherwise
|
||||
*/
|
||||
public final class UltraEconomyHook extends Economy {
|
||||
|
||||
private final Currency currency;
|
||||
|
||||
public UltraEconomyHook() {
|
||||
final String[] ultraEconomyCurrencyName = Settings.ECONOMY_PLUGIN.getString().split(":");
|
||||
|
||||
this.currency = UltraEconomy.getAPI().getCurrencies().name(ultraEconomyCurrencyName[1]).orElse(null);
|
||||
|
||||
if (this.currency == null) {
|
||||
throw new UltraEconomyCurrencyException("AuctionHouse could not find the currency: " + ultraEconomyCurrencyName[0]);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getBalance(OfflinePlayer player) {
|
||||
final Account account = UltraEconomy.getAPI().getAccounts().uuid(player.getUniqueId()).orElse(null);
|
||||
return account == null ? 0 : account.getBalance(this.currency).getOnBank();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasBalance(OfflinePlayer player, double cost) {
|
||||
final Account account = UltraEconomy.getAPI().getAccounts().uuid(player.getUniqueId()).orElse(null);
|
||||
return account != null && account.getBalance(this.currency).getOnBank() >= cost;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean withdrawBalance(OfflinePlayer player, double cost) {
|
||||
final Account account = UltraEconomy.getAPI().getAccounts().uuid(player.getUniqueId()).orElse(null);
|
||||
if (account == null) return false;
|
||||
|
||||
final float oldAmount = account.getBalance(this.currency).getOnBank();
|
||||
account.getBalance(this.currency).setBank(oldAmount - (float) cost);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deposit(OfflinePlayer player, double amount) {
|
||||
final Account account = UltraEconomy.getAPI().getAccounts().uuid(player.getUniqueId()).orElse(null);
|
||||
if (account == null) return false;
|
||||
|
||||
final float oldAmount = account.getBalance(this.currency).getOnBank();
|
||||
account.getBalance(this.currency).setBank(oldAmount + (float) amount);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "UltraEconomy";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return Bukkit.getPluginManager().getPlugin("UltraEconomy") != null;
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package ca.tweetzy.auctionhouse.exception;
|
||||
|
||||
/**
|
||||
* The current file has been created by Kiran Hart
|
||||
* Date Created: October 05 2021
|
||||
* Time Created: 9:31 p.m.
|
||||
* Usage of any code found within this class is prohibited unless given explicit permission otherwise
|
||||
*/
|
||||
public final class UltraEconomyCurrencyException extends NullPointerException {
|
||||
|
||||
public UltraEconomyCurrencyException(String errorMessage) {
|
||||
super(errorMessage);
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@ main: ca.tweetzy.auctionhouse.AuctionHouse
|
||||
description: Auction House is a premium auction solution for your server.
|
||||
website: https://tweetzy.ca/
|
||||
authors: [Kiran Hart]
|
||||
softdepend: [Vault, PlayerPoints, PlaceholderAPI, MMOItems]
|
||||
softdepend: [Vault, PlayerPoints, PlaceholderAPIHook, MMOItemsHook, UltraEconomy]
|
||||
|
||||
commands:
|
||||
auctionhouse:
|
||||
|
Loading…
Reference in New Issue
Block a user