Compare commits
2 Commits
4cb1e717fb
...
a23a00c881
Author | SHA1 | Date | |
---|---|---|---|
a23a00c881 | |||
e2e5e999f5 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
build/libs/CoswayUtil-1.11-RELEASE.jar
Normal file
BIN
build/libs/CoswayUtil-1.11-RELEASE.jar
Normal file
Binary file not shown.
@ -12,5 +12,6 @@ shop:
|
||||
material: OAK_PLANKS
|
||||
price: 15
|
||||
display_name: "Oak Planks"
|
||||
poor: "you're poor..."
|
||||
pagination:
|
||||
max_items_per_page: 45 # Max items to display per page
|
||||
|
Binary file not shown.
Binary file not shown.
@ -164,8 +164,11 @@ public class BlockShop implements Listener {
|
||||
ItemStack clickedItem = event.getCurrentItem();
|
||||
if (clickedItem != null && clickedItem.getType() != Material.AIR) {
|
||||
double price = getPrice(clickedItem);
|
||||
if (economy.has(player, price)) {
|
||||
economy.withdrawPlayer(player, price);
|
||||
if (!economy.has(player, price)) {
|
||||
player.sendMessage(ChatColor.RED + getConfigLine("poor", "You don't have enough money to buy this."));
|
||||
return;
|
||||
}
|
||||
|
||||
// Create a new ItemStack with the default meta
|
||||
ItemStack sold = new ItemStack(clickedItem.getType(), clickedItem.getAmount());
|
||||
|
||||
@ -176,13 +179,42 @@ public class BlockShop implements Listener {
|
||||
defaultMeta.setLore(null); // Remove lore
|
||||
sold.setItemMeta(defaultMeta);
|
||||
}
|
||||
player.getInventory().addItem(sold);
|
||||
player.sendMessage(ChatColor.GREEN + "You bought " + sold.getType() + " for $" + price);
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + "You don't have enough money to buy this.");
|
||||
|
||||
// Check if player's inventory has space before proceeding
|
||||
HashMap<Integer, ItemStack> leftover = player.getInventory().addItem(sold);
|
||||
if (!leftover.isEmpty()) {
|
||||
// If there are leftover items, inventory is full
|
||||
player.sendMessage(ChatColor.RED + getConfigLine("inventory_full", "Your inventory is full! Purchase failed."));
|
||||
return;
|
||||
}
|
||||
|
||||
// If inventory had space, finalize the purchase
|
||||
economy.withdrawPlayer(player, price);
|
||||
player.sendMessage(ColorKey("&aYou bought &b" + clickedItem.getAmount() + " &7" +
|
||||
String.valueOf(sold.getType()).toLowerCase().replace("_", " ") +
|
||||
"&a for &6$" + price));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String ColorKey(String t) {
|
||||
char searchChar = '&'; // Character to search for
|
||||
char replacementChar = '§'; // Character to replace with
|
||||
StringBuilder sb = new StringBuilder(t);
|
||||
// Search for the character in the StringBuilder
|
||||
int index = sb.indexOf(String.valueOf(searchChar));
|
||||
|
||||
// Replace the character if found
|
||||
for (int j = 0; j < sb.length(); j++) {
|
||||
if (sb.charAt(j) == searchChar) {
|
||||
sb.setCharAt(j, replacementChar);
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
public String getConfigLine(String source, String dfault) {
|
||||
plugin.reloadConfig();
|
||||
return config != null ? config.getString(source, dfault) : dfault;
|
||||
}
|
||||
|
||||
// Helper method to retrieve the price of an item (can be customized to use a config file for prices)
|
||||
|
@ -12,5 +12,6 @@ shop:
|
||||
material: OAK_PLANKS
|
||||
price: 15
|
||||
display_name: "Oak Planks"
|
||||
poor: "you're poor..."
|
||||
pagination:
|
||||
max_items_per_page: 45 # Max items to display per page
|
||||
|
Loading…
Reference in New Issue
Block a user