Skip to content

Commit

Permalink
Multiple sell command support, PlayerPoints Support, Etc
Browse files Browse the repository at this point in the history
  • Loading branch information
7sat committed Feb 19, 2023
1 parent 33a8cff commit 061d508
Show file tree
Hide file tree
Showing 36 changed files with 753 additions and 240 deletions.
12 changes: 11 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>me.sat7</groupId>
<artifactId>DynamicShop</artifactId>
<version>3.9.0</version>
<version>3.10.0</version>
<packaging>jar</packaging>

<name>DynamicShop</name>
Expand Down Expand Up @@ -100,6 +100,10 @@
<id>placeholderapi</id>
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository>
<repository>
<id>rosewood-repo</id>
<url>https://repo.rosewooddev.io/repository/public/</url>
</repository>
</repositories>

<dependencies>
Expand Down Expand Up @@ -160,5 +164,11 @@
<artifactId>LocaleLib</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.black_ixx</groupId>
<artifactId>playerpoints</artifactId>
<version>3.2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
21 changes: 20 additions & 1 deletion src/main/java/me/sat7/dynamicshop/DynaShopAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ public static ArrayList<ItemStack> getShopItems(@NonNull String shopName)
if (validateShopName(shopName))
{
CustomConfig data = ShopUtil.shopConfigFiles.get(shopName);

ArrayList<ItemStack> list = new ArrayList<>();
for (String s : data.get().getKeys(false))
{
Expand Down Expand Up @@ -402,6 +402,25 @@ public static boolean isJobsPointShop(@NonNull String shopName) throws IllegalAr
}
}

/**
* Get whether a shop is for Vault money or Player points
*
* @param shopName The shop to check the type of
* @return True if it is a Player Point shop, False if it is a Vault economy money shop
* @throws IllegalArgumentException When the shop does not exist
*/
public static boolean isPlayerPointShop(@NonNull String shopName) throws IllegalArgumentException
{
if (validateShopName(shopName))
{
CustomConfig data = ShopUtil.shopConfigFiles.get(shopName);
return data.get().contains("Options.flag.playerpoint");
} else
{
throw new IllegalArgumentException("Shop: " + shopName + " does not exist");
}
}

/**
* Check if a shop exists
*
Expand Down
66 changes: 60 additions & 6 deletions src/main/java/me/sat7/dynamicshop/DynamicShop.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@
import me.sat7.dynamicshop.commands.Optional;
import me.sat7.dynamicshop.commands.Root;
import me.sat7.dynamicshop.constants.Constants;
import me.sat7.dynamicshop.economyhook.PlayerpointHook;
import me.sat7.dynamicshop.events.*;
import me.sat7.dynamicshop.files.CustomConfig;
import me.sat7.dynamicshop.guis.QuickSell;
import me.sat7.dynamicshop.guis.StartPage;
import me.sat7.dynamicshop.guis.UIManager;
import me.sat7.dynamicshop.jobshook.JobsHook;
import me.sat7.dynamicshop.economyhook.JobsHook;
import me.sat7.dynamicshop.utilities.*;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.ClickEvent;
Expand All @@ -20,7 +21,10 @@
import net.md_5.bungee.api.chat.TextComponent;
import net.milkbowl.vault.economy.Economy;

import org.black_ixx.playerpoints.PlayerPoints;
import org.black_ixx.playerpoints.PlayerPointsAPI;
import org.bstats.bukkit.Metrics;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

Expand All @@ -46,6 +50,8 @@ public static Economy getEconomy()
return econ;
}

public static PlayerPointsAPI ppAPI;

public static DynamicShop plugin;
public static ConsoleCommandSender console;

Expand Down Expand Up @@ -151,6 +157,7 @@ private void Init()
startSaveLogsTask();
startCullLogsTask();
hookIntoJobs();
hookIntoPlayerPoints();
InitPapi();

// 완료
Expand All @@ -171,7 +178,7 @@ private void SetupVault()
}
else
{
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " Vault Found");
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " 'Vault' Found");
}

SetupRSP();
Expand Down Expand Up @@ -279,11 +286,11 @@ private void InitPapi()
isPapiExist = Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null;
if(isPapiExist)
{
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " PlaceholderAPI Found");
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " 'PlaceholderAPI' Found");
}
else
{
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " PlaceholderAPI Not Found");
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " 'PlaceholderAPI' Not Found");
}
}

Expand Down Expand Up @@ -342,15 +349,31 @@ private void hookIntoJobs()
// Jobs
if (getServer().getPluginManager().getPlugin("Jobs") == null)
{
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " Jobs Reborn Not Found");
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " 'Jobs Reborn' Not Found");
JobsHook.jobsRebornActive = false;
} else
{
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " Jobs Reborn Found");
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " 'Jobs Reborn' Found");
JobsHook.jobsRebornActive = true;
}
}

private void hookIntoPlayerPoints()
{
if (Bukkit.getPluginManager().isPluginEnabled("PlayerPoints"))
{
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " 'PlayerPoints' Found");
ppAPI = PlayerPoints.getInstance().getAPI();
PlayerpointHook.isPPActive = true;

}
else
{
console.sendMessage(Constants.DYNAMIC_SHOP_PREFIX + " 'PlayerPoints' Not Found");
PlayerpointHook.isPPActive = false;
}
}

private void initCommands()
{
// 명령어 등록 (개별 클레스로 되어있는것들)
Expand Down Expand Up @@ -409,10 +432,41 @@ private void InitConfig()
QuickSell.quickSellGui = new CustomConfig();
QuickSell.SetupQuickSellGUIFile();

ConfigUpdate();

getConfig().set("Version", configVersion);
saveConfig();
}

private void ConfigUpdate()
{
int userVersion = getConfig().getInt("Version");
if (userVersion == 3)
{
for(Map.Entry<String, CustomConfig> entry : ShopUtil.shopConfigFiles.entrySet())
{
ConfigurationSection cmdCS = entry.getValue().get().getConfigurationSection("Options.command");
if(cmdCS == null)
continue;

boolean somethingChanged = false;
if(cmdCS.contains("sell"))
{
cmdCS.set("sell.0", cmdCS.get("sell"));
somethingChanged = true;
}
if(cmdCS.contains("buy"))
{
cmdCS.set("buy.0", cmdCS.get("buy"));
somethingChanged = true;
}

if(somethingChanged)
entry.getValue().save();
}
}
}

private void setupUserFile()
{
ccUser.setup("User", null);
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/me/sat7/dynamicshop/commands/Help.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package me.sat7.dynamicshop.commands;

import me.sat7.dynamicshop.commands.shop.Command;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
Expand Down Expand Up @@ -186,6 +187,7 @@ public static void showHelp(String helpcode, Player player, String[] args)
} else if (helpcode.equals("command"))
{
CMDManager.command.SendHelpMessage(player);
Command.PrintCurrentState(player, Shop.GetShopName(args), true, true);
} else if (helpcode.equals("account"))
{
CMDManager.account.SendHelpMessage(player);
Expand Down
35 changes: 26 additions & 9 deletions src/main/java/me/sat7/dynamicshop/commands/shop/Account.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import me.sat7.dynamicshop.DynamicShop;
import me.sat7.dynamicshop.commands.DSCMD;
import me.sat7.dynamicshop.commands.Shop;
import me.sat7.dynamicshop.economyhook.PlayerpointHook;
import me.sat7.dynamicshop.files.CustomConfig;
import me.sat7.dynamicshop.jobshook.JobsHook;
import me.sat7.dynamicshop.utilities.LangUtil;
import me.sat7.dynamicshop.economyhook.JobsHook;
import me.sat7.dynamicshop.utilities.ShopUtil;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.economy.EconomyResponse;
Expand All @@ -31,9 +31,9 @@ public Account()
public void SendHelpMessage(Player player)
{
player.sendMessage(DynamicShop.dsPrefix(player) + t(player, "HELP.TITLE").replace("{command}", "account"));
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": /ds shop <shopname> account set <amount>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": /ds shop <shopname> account linkto <shopname>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": /ds shop <shopname> account transfer <target> <amount>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": ... account set <amount>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": ... account linkto <shopname>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": ... account transfer <target> <amount>");
player.sendMessage(" - " + t(player, "HELP.ACCOUNT"));

player.sendMessage("");
Expand Down Expand Up @@ -117,7 +117,8 @@ public void RunCMD(String[] args, CommandSender sender)
}

// 출발 상점과 도착 상점의 통화 유형이 다름
if (shopData.get().contains("Options.flag.jobpoint") != targetShopData.get().contains("Options.flag.jobpoint"))
if ((shopData.get().contains("Options.flag.jobpoint") != targetShopData.get().contains("Options.flag.jobpoint")) ||
(shopData.get().contains("Options.flag.playerpoint") != targetShopData.get().contains("Options.flag.playerpoint")) )
{
sender.sendMessage(DynamicShop.dsPrefix(sender) + t(sender, "ERR.SHOP_DIFF_CURRENCY"));
return;
Expand Down Expand Up @@ -160,7 +161,13 @@ public void RunCMD(String[] args, CommandSender sender)
{
sender.sendMessage(DynamicShop.dsPrefix(sender) + t(sender, "MESSAGE.NOT_ENOUGH_POINT").
replace("{bal}", n(ShopUtil.getShopBalance(args[1]))));
} else
}
else if (shopData.get().contains("Options.flag.playerpoint"))
{
sender.sendMessage(DynamicShop.dsPrefix(sender) + t(sender, "MESSAGE.NOT_ENOUGH_PLAYER_POINT").
replace("{bal}", n(ShopUtil.getShopBalance(args[1]))));
}
else
{
sender.sendMessage(DynamicShop.dsPrefix(sender) + t(sender, "MESSAGE.NOT_ENOUGH_MONEY").
replace("{bal}", n(ShopUtil.getShopBalance(args[1]))));
Expand All @@ -186,7 +193,8 @@ public void RunCMD(String[] args, CommandSender sender)
}

// 출발 상점과 도착 상점의 통화 유형이 다름
if (shopData.get().contains("Options.flag.jobpoint") != targetShopData.get().contains("Options.flag.jobpoint"))
if ((shopData.get().contains("Options.flag.jobpoint") != targetShopData.get().contains("Options.flag.jobpoint")) ||
(shopData.get().contains("Options.flag.playerpoint") != targetShopData.get().contains("Options.flag.playerpoint")) )
{
sender.sendMessage(DynamicShop.dsPrefix(sender) + t(sender, "ERR.SHOP_DIFF_CURRENCY"));
return;
Expand Down Expand Up @@ -221,7 +229,16 @@ public void RunCMD(String[] args, CommandSender sender)
shopData.save();

sender.sendMessage(DynamicShop.dsPrefix(sender) + t(sender, "MESSAGE.TRANSFER_SUCCESS"));
} else
}
else if (shopData.get().contains("Options.flag.playerpoint"))
{
PlayerpointHook.addPP(target, amount);
ShopUtil.addShopBalance(args[1], amount * -1);
shopData.save();

sender.sendMessage(DynamicShop.dsPrefix(sender) + t(sender, "MESSAGE.TRANSFER_SUCCESS"));
}
else
{
Economy econ = DynamicShop.getEconomy();
EconomyResponse er = econ.depositPlayer(target, amount);
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/me/sat7/dynamicshop/commands/shop/Add.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ public Add()
public void SendHelpMessage(Player player)
{
player.sendMessage(DynamicShop.dsPrefix(player) + t(player, "HELP.TITLE").replace("{command}", "add"));
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": /ds shop <shopname> add <item> <value> <median> <stock>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": /ds shop <shopname> add <item> <value> <min value> <max value> <median> <stock>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": ... add <item> <value> <median> <stock>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": ... add <item> <value> <min value> <max value> <median> <stock>");
player.sendMessage(" - " + t(player, "HELP.SHOP_ADD_ITEM"));
player.sendMessage(" - " + t(player, "HELP.PRICE"));
player.sendMessage(" - " + t(player, "HELP.INF_STATIC"));
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/me/sat7/dynamicshop/commands/shop/AddHand.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ public AddHand()
public void SendHelpMessage(Player player)
{
player.sendMessage(DynamicShop.dsPrefix(player) + t(player, "HELP.TITLE").replace("{command}", "addhand"));
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": /ds shop <shopname> addhand <value> <median> <stock>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": /ds shop <shopname> addhand <value> <min value> <max value> <median> <stock>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": ... addhand <value> <median> <stock>");
player.sendMessage(" - " + t(player, "HELP.USAGE") + ": ... addhand <value> <min value> <max value> <median> <stock>");
player.sendMessage(" - " + t(player, "HELP.SHOP_ADD_HAND"));
player.sendMessage(" - " + t(player, "HELP.PRICE"));
player.sendMessage(" - " + t(player, "HELP.INF_STATIC"));
Expand Down
Loading

0 comments on commit 061d508

Please sign in to comment.