Updated MiniMessage
This commit is contained in:
@@ -54,9 +54,11 @@ public class GUIListener implements Listener {
|
||||
if (currentItem == null)
|
||||
return;
|
||||
if (event.getClick().isShiftClick())
|
||||
event.getWhoClicked().sendMessage(MiniMessage.get().parse(currentItem.getType().name() + ": " + event.getCurrentItem().getType().getMaxStackSize()));
|
||||
event.getWhoClicked().sendMiniMessage(currentItem.getType().name() + ": " +
|
||||
event.getCurrentItem().getType().getMaxStackSize(), null);
|
||||
else
|
||||
event.getWhoClicked().sendMessage(MiniMessage.get().parse(currentItem.getType().name() + ": " + event.getCurrentItem().getAmount()));
|
||||
event.getWhoClicked().sendMiniMessage(currentItem.getType().name() + ": " +
|
||||
event.getCurrentItem().getAmount(), null);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.alttd.objects.VillagerType;
|
||||
import com.alttd.util.Utilities;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.kyori.adventure.text.minimessage.Template;
|
||||
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -19,16 +20,20 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class BuyGUI extends GUIMerchant {
|
||||
|
||||
private static final MiniMessage miniMessage = MiniMessage.get();
|
||||
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
|
||||
|
||||
public BuyGUI(VillagerType villagerType, EconUser econUser) {
|
||||
super(MiniMessage.get().parse(Config.BUY_WINDOW,
|
||||
Template.of("trader", villagerType.getDisplayName()),
|
||||
Template.of("points", String.valueOf(Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0)))), villagerType);
|
||||
super(miniMessage.deserialize(Config.BUY_WINDOW, TemplateResolver.resolving(
|
||||
Template.template("trader", villagerType.getDisplayName()),
|
||||
Template.template("points", String.valueOf(Objects.requireNonNullElse(
|
||||
econUser.getPointsMap().get(villagerType.getName()),
|
||||
0)))
|
||||
)), villagerType);
|
||||
for (ItemStack itemStack : villagerType.getBuying()) {
|
||||
Price price = Utilities.getPrice(itemStack);
|
||||
if (price == null)
|
||||
@@ -44,26 +49,27 @@ public class BuyGUI extends GUIMerchant {
|
||||
private void buy(VillagerType villagerType, Player player, Material material, int amount, Price price) {
|
||||
Economy econ = VillagerUI.getInstance().getEconomy();
|
||||
double balance = econ.getBalance(player);
|
||||
int trans_pts = (int) (Math.floor(price.getPrice(amount)/ WorthConfig.POINT_MOD) * amount);
|
||||
int itemPts = (int) (Math.floor(price.getPrice(amount) / WorthConfig.POINT_MOD) + 1);
|
||||
int transPts = itemPts * amount;
|
||||
EconUser econUser = EconUser.getUser(player.getUniqueId());
|
||||
int oldPoints = Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0);
|
||||
double cost = price.calculatePriceThing(oldPoints, trans_pts, true);
|
||||
double cost = price.calculatePriceThing(oldPoints, transPts, true, itemPts);
|
||||
|
||||
if (balance < cost) {
|
||||
player.sendMessage(MiniMessage.get().parse(Config.NOT_ENOUGH_MONEY,
|
||||
Template.of("money", String.valueOf(Utilities.round(balance, 2))),
|
||||
Template.of("price", String.valueOf(price))));
|
||||
player.sendMiniMessage(Config.NOT_ENOUGH_MONEY, List.of(
|
||||
Template.template("money", String.valueOf(Utilities.round(balance, 2))),
|
||||
Template.template("price", String.valueOf(cost))));
|
||||
return;
|
||||
}
|
||||
|
||||
econ.withdrawPlayer(player, cost);
|
||||
econUser.addPoints(villagerType.getName(), trans_pts);
|
||||
econUser.addPoints(villagerType.getName(), transPts);
|
||||
player.getInventory().addItem(new ItemStack(material, amount));
|
||||
player.sendMessage(MiniMessage.get().parse(Config.PURCHASED_ITEM,
|
||||
Template.of("amount", String.valueOf(amount)),
|
||||
Template.of("item", StringUtils.capitalize(material.name()
|
||||
player.sendMiniMessage(Config.PURCHASED_ITEM, List.of(
|
||||
Template.template("amount", String.valueOf(amount)),
|
||||
Template.template("item", StringUtils.capitalize(material.name()
|
||||
.toLowerCase().replaceAll("_", " "))),
|
||||
Template.of("price", String.valueOf(cost))));
|
||||
Template.template("price", String.valueOf(cost))));
|
||||
|
||||
Bukkit.getServer().getPluginManager()
|
||||
.callEvent(new SpawnShopEvent(player, amount, cost, material,
|
||||
@@ -80,7 +86,7 @@ public class BuyGUI extends GUIMerchant {
|
||||
|
||||
private ItemStack nameItem(ItemStack itemStack, double price) {
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
itemMeta.displayName(miniMessage.parse("<green>" + price + "</green>")); //TODO configurable
|
||||
itemMeta.displayName(miniMessage.deserialize("<green>" + price + "</green>")); //TODO configurable
|
||||
itemStack.setItemMeta(itemMeta);
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
@@ -7,38 +7,43 @@ import com.alttd.objects.EconUser;
|
||||
import com.alttd.objects.VillagerType;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.kyori.adventure.text.minimessage.Template;
|
||||
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class OpenGUI extends GUIInventory {
|
||||
|
||||
private static final ItemStack BUY = new ItemStack(Material.GOLD_INGOT);
|
||||
private static final ItemStack SELL = new ItemStack(Material.BUCKET);
|
||||
|
||||
private static final MiniMessage miniMessage;
|
||||
static {
|
||||
MiniMessage miniMessage = MiniMessage.get();
|
||||
miniMessage = MiniMessage.miniMessage();
|
||||
ItemMeta itemMeta;
|
||||
{
|
||||
itemMeta = BUY.getItemMeta();
|
||||
itemMeta.displayName(miniMessage.parse("<green>Buy</green>"));
|
||||
itemMeta.displayName(miniMessage.deserialize("<green>Buy</green>"));
|
||||
BUY.setItemMeta(itemMeta);
|
||||
}
|
||||
{
|
||||
itemMeta = SELL.getItemMeta();
|
||||
itemMeta.displayName(miniMessage.parse("<green>Sell</green>"));
|
||||
itemMeta.displayName(miniMessage.deserialize("<green>Sell</green>"));
|
||||
SELL.setItemMeta(itemMeta);
|
||||
}
|
||||
}
|
||||
|
||||
public OpenGUI(VillagerType villagerType, EconUser econUser) {
|
||||
super(InventoryType.HOPPER, MiniMessage.get().parse(Config.INITIAL_VILLAGER_WINDOW,
|
||||
Template.of("trader", villagerType.getDisplayName()),
|
||||
Template.of("points", String.valueOf(Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0)))));
|
||||
super(InventoryType.HOPPER, miniMessage.deserialize(Config.INITIAL_VILLAGER_WINDOW,
|
||||
TemplateResolver.resolving(Template.template("trader", villagerType.getDisplayName()),
|
||||
Template.template("points", String.valueOf(Objects.requireNonNullElse(
|
||||
econUser.getPointsMap().get(villagerType.getName()),
|
||||
0)))))
|
||||
);
|
||||
setItem(1, BUY, player -> new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.alttd.objects.VillagerType;
|
||||
import com.alttd.util.Utilities;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.kyori.adventure.text.minimessage.Template;
|
||||
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -22,16 +23,19 @@ import org.bukkit.inventory.PlayerInventory;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class SellGUI extends GUIMerchant {
|
||||
|
||||
private static final MiniMessage miniMessage = MiniMessage.get();
|
||||
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
|
||||
|
||||
public SellGUI(VillagerType villagerType, EconUser econUser) {
|
||||
super(MiniMessage.get().parse(Config.SELL_WINDOW,
|
||||
Template.of("trader", villagerType.getDisplayName()),
|
||||
Template.of("points", String.valueOf(Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0)))), villagerType);
|
||||
super(MiniMessage.miniMessage().deserialize(Config.SELL_WINDOW, TemplateResolver.resolving(
|
||||
Template.template("trader", villagerType.getDisplayName()),
|
||||
Template.template("points", String.valueOf(Objects
|
||||
.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName())
|
||||
, 0))))), villagerType);
|
||||
for (ItemStack itemStack : villagerType.getSelling()) {
|
||||
Price price = Utilities.getPrice(itemStack);
|
||||
if (price == null)
|
||||
@@ -48,28 +52,29 @@ public class SellGUI extends GUIMerchant {
|
||||
PlayerInventory inventory = player.getInventory();
|
||||
|
||||
if (!inventory.containsAtLeast(new ItemStack(material), amount)) {
|
||||
player.sendMessage(miniMessage.parse(Config.NOT_ENOUGH_ITEMS,
|
||||
Template.of("type", material.name()),
|
||||
Template.of("amount", String.valueOf(amount))));
|
||||
player.sendMiniMessage(Config.NOT_ENOUGH_ITEMS, List.of(
|
||||
Template.template("type", material.name()),
|
||||
Template.template("amount", String.valueOf(amount))));
|
||||
return;
|
||||
}
|
||||
|
||||
Economy econ = VillagerUI.getInstance().getEconomy();
|
||||
EconUser econUser = EconUser.getUser(player.getUniqueId());
|
||||
int oldPoints = Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0);
|
||||
int trans_pts = (int) ((Math.floor(price.getPrice(amount) / WorthConfig.POINT_MOD) + 1) * amount);
|
||||
double cost = price.calculatePriceThing(oldPoints, trans_pts, false);
|
||||
int itemPts = (int) (Math.floor(price.getPrice(amount) / WorthConfig.POINT_MOD) + 1);
|
||||
int transPts = itemPts * amount;
|
||||
double cost = price.calculatePriceThing(oldPoints, transPts, false, itemPts);
|
||||
|
||||
econ.depositPlayer(player, cost);
|
||||
econUser.addPoints(villagerType.getName(), -price.getPoints());
|
||||
|
||||
removeItems(inventory, material, amount);
|
||||
|
||||
player.sendMessage(MiniMessage.get().parse(Config.SOLD_ITEM,
|
||||
Template.of("amount", String.valueOf(amount)),
|
||||
Template.of("item", StringUtils.capitalize(material.name()
|
||||
player.sendMiniMessage(Config.SOLD_ITEM, List.of(
|
||||
Template.template("amount", String.valueOf(amount)),
|
||||
Template.template("item", StringUtils.capitalize(material.name()
|
||||
.toLowerCase().replaceAll("_", " "))),
|
||||
Template.of("price", String.valueOf(cost))));
|
||||
Template.template("price", String.valueOf(cost))));
|
||||
|
||||
Bukkit.getServer().getPluginManager()
|
||||
.callEvent(new SpawnShopEvent(player, amount, cost, material,
|
||||
@@ -107,7 +112,7 @@ public class SellGUI extends GUIMerchant {
|
||||
|
||||
private ItemStack nameItem(ItemStack itemStack, double price) {
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
itemMeta.displayName(miniMessage.parse("<red>" + price * -1 + "</red>")); //TODO configurable
|
||||
itemMeta.displayName(miniMessage.deserialize("<red>" + price * -1 + "</red>")); //TODO configurable
|
||||
itemStack.setItemMeta(itemMeta);
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user