Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/alttd/commands/subcommands/CommandPoints.java
This commit is contained in:
Teriuihi 2022-03-15 00:27:19 +01:00
commit a10a5d1ab9
11 changed files with 90 additions and 92 deletions

View File

@ -61,7 +61,7 @@ tasks {
}
dependencies {
compileOnly("com.alttd:Galaxy-API:1.18.1-R0.1-SNAPSHOT")
compileOnly("com.alttd:Galaxy-API:1.18.2-R0.1-SNAPSHOT")
compileOnly("com.github.milkbowl:VaultAPI:1.7") {
exclude("org.bukkit","bukkit")
}

View File

@ -12,8 +12,8 @@ import com.alttd.objects.VillagerType;
import com.alttd.util.Utilities;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import net.milkbowl.vault.economy.Economy;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
@ -39,9 +39,9 @@ public class BuyGUI extends GUIMerchant {
}
public BuyGUI(VillagerType villagerType, EconUser econUser, boolean bulk) {
super(miniMessage.deserialize(Config.BUY_WINDOW, TemplateResolver.resolving(
Template.template("trader", villagerType.getDisplayName()),
Template.template("points", String.valueOf(Objects.requireNonNullElse(
super(miniMessage.deserialize(Config.BUY_WINDOW, TagResolver.resolver(
Placeholder.unparsed("trader", villagerType.getDisplayName()),
Placeholder.unparsed("points", String.valueOf(Objects.requireNonNullElse(
econUser.getPointsMap().get(villagerType.getName()),
0)))
)), villagerType);
@ -91,9 +91,9 @@ public class BuyGUI extends GUIMerchant {
double balance = econ.getBalance(player);
if (balance < purchase.price()) {
player.sendMiniMessage(Config.NOT_ENOUGH_MONEY, List.of(
Template.template("money", String.valueOf(Utilities.round(balance, 2))),
Template.template("price", String.format("%,.2f", purchase.price()))
player.sendMiniMessage(Config.NOT_ENOUGH_MONEY, TagResolver.resolver(
Placeholder.unparsed("money", String.valueOf(Utilities.round(balance, 2))),
Placeholder.unparsed("price", String.format("%,.2f", purchase.price()))
));
return;
}
@ -110,9 +110,9 @@ public class BuyGUI extends GUIMerchant {
ref.space += itemStack.getMaxStackSize() - itemStack.getAmount();
});
if (ref.space < purchase.amount()) {
player.sendMiniMessage(Config.NOT_ENOUGH_SPACE, List.of(
Template.template("space", String.valueOf(ref.space)),
Template.template("amount", String.valueOf(purchase.amount()))
player.sendMiniMessage(Config.NOT_ENOUGH_SPACE, TagResolver.resolver(
Placeholder.unparsed("space", String.valueOf(ref.space)),
Placeholder.unparsed("amount", String.valueOf(purchase.amount()))
));
return;
}
@ -122,14 +122,14 @@ public class BuyGUI extends GUIMerchant {
player.getInventory().addItem(new ItemStack(purchase.material(), purchase.amount()));
int newPoints = econUser.getPointsMap().get(villagerType.getName());
player.sendMiniMessage(Config.PURCHASED_ITEM, List.of(
Template.template("amount", String.valueOf(purchase.amount())),
Template.template("item", StringUtils.capitalize(purchase.material().name()
player.sendMiniMessage(Config.PURCHASED_ITEM, TagResolver.resolver(
Placeholder.unparsed("amount", String.valueOf(purchase.amount())),
Placeholder.unparsed("item", StringUtils.capitalize(purchase.material().name()
.toLowerCase().replaceAll("_", " "))),
Template.template("price", String.format("%,.2f", purchase.price())),
Template.template("points", String.valueOf(purchase.totalPointCost())),
Template.template("total_points", String.valueOf(newPoints)),
Template.template("villager_name", villagerType.getDisplayName())
Placeholder.unparsed("price", String.format("%,.2f", purchase.price())),
Placeholder.unparsed("points", String.valueOf(purchase.totalPointCost())),
Placeholder.unparsed("total_points", String.valueOf(newPoints)),
Placeholder.unparsed("villager_name", villagerType.getDisplayName())
));
Bukkit.getServer().getPluginManager()
@ -141,15 +141,15 @@ public class BuyGUI extends GUIMerchant {
private ItemStack getBuyItemHover(Purchase purchase) {
ItemStack itemStack = new ItemStack(purchase.material());
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.displayName(miniMessage.deserialize(Config.TRANSACTION_ITEM_NAME, TemplateResolver.resolving(
Template.template("item_name", purchase.material().name())
itemMeta.displayName(miniMessage.deserialize(Config.TRANSACTION_ITEM_NAME, TagResolver.resolver(
Placeholder.unparsed("item_name", purchase.material().name())
)));
List<Component> lore = new ArrayList<>();
for (String entry : Config.TRANSACTION_ITEM_DESCRIPTION) {
lore.add(miniMessage.deserialize(entry, TemplateResolver.resolving(
Template.template("amount", String.valueOf(purchase.amount())),
Template.template("price", String.format("%,.2f", purchase.price())),
Template.template("points", String.valueOf(purchase.totalPointCost()))
lore.add(miniMessage.deserialize(entry, TagResolver.resolver(
Placeholder.unparsed("amount", String.valueOf(purchase.amount())),
Placeholder.unparsed("price", String.format("%,.2f", purchase.price())),
Placeholder.unparsed("points", String.valueOf(purchase.totalPointCost()))
)));
}
itemMeta.lore(lore);

View File

@ -6,8 +6,8 @@ import com.alttd.config.Config;
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 net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.Material;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.ItemStack;
@ -50,8 +50,8 @@ public class OpenGUI extends GUIInventory {
public OpenGUI(VillagerType villagerType, EconUser econUser) {
super(InventoryType.HOPPER, miniMessage.deserialize(Config.INITIAL_VILLAGER_WINDOW,
TemplateResolver.resolving(Template.template("trader", villagerType.getDisplayName()),
Template.template("points", String.valueOf(Objects.requireNonNullElse(
TagResolver.resolver(Placeholder.unparsed("trader", villagerType.getDisplayName()),
Placeholder.unparsed("points", String.valueOf(Objects.requireNonNullElse(
econUser.getPointsMap().get(villagerType.getName()),
0)))))
);

View File

@ -12,8 +12,8 @@ import com.alttd.objects.VillagerType;
import com.alttd.util.Utilities;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import net.milkbowl.vault.economy.Economy;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
@ -42,9 +42,9 @@ public class SellGUI extends GUIMerchant {
}
public SellGUI(VillagerType villagerType, EconUser econUser, boolean bulk) {
super(MiniMessage.miniMessage().deserialize(Config.SELL_WINDOW, TemplateResolver.resolving(
Template.template("trader", villagerType.getDisplayName()),
Template.template("points", String.valueOf(Objects
super(MiniMessage.miniMessage().deserialize(Config.SELL_WINDOW, TagResolver.resolver(
Placeholder.unparsed("trader", villagerType.getDisplayName()),
Placeholder.unparsed("points", String.valueOf(Objects
.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName())
, 0))))), villagerType);
for (ItemStack is : villagerType.getSelling()) {
@ -98,9 +98,9 @@ public class SellGUI extends GUIMerchant {
.filter(itemStack -> itemStack.getType().equals(purchase.material()))
.mapToInt(ItemStack::getAmount).sum()
< purchase.amount()) {
player.sendMiniMessage(Config.NOT_ENOUGH_ITEMS, List.of(
Template.template("type", purchase.material().name()),
Template.template("amount", String.valueOf(purchase.amount()))));
player.sendMiniMessage(Config.NOT_ENOUGH_ITEMS, TagResolver.resolver(
Placeholder.unparsed("type", purchase.material().name()),
Placeholder.unparsed("amount", String.valueOf(purchase.amount()))));
return;
}
@ -111,14 +111,14 @@ public class SellGUI extends GUIMerchant {
removeItems(inventory, purchase.material(), purchase.amount());
int newPoints = econUser.getPointsMap().get(villagerType.getName());
player.sendMiniMessage(Config.SOLD_ITEM, List.of(
Template.template("amount", String.valueOf(purchase.amount())),
Template.template("item", StringUtils.capitalize(purchase.material().name()
player.sendMiniMessage(Config.SOLD_ITEM, TagResolver.resolver(
Placeholder.unparsed("amount", String.valueOf(purchase.amount())),
Placeholder.unparsed("item", StringUtils.capitalize(purchase.material().name()
.toLowerCase().replaceAll("_", " "))),
Template.template("price", String.format("%,.2f", purchase.price())),
Template.template("points", String.valueOf(-purchase.totalPointCost())),
Template.template("total_points", String.valueOf(newPoints)),
Template.template("villager_name", villagerType.getDisplayName())
Placeholder.unparsed("price", String.format("%,.2f", purchase.price())),
Placeholder.unparsed("points", String.valueOf(-purchase.totalPointCost())),
Placeholder.unparsed("total_points", String.valueOf(newPoints)),
Placeholder.unparsed("villager_name", villagerType.getDisplayName())
));
Bukkit.getServer().getPluginManager()
@ -129,15 +129,15 @@ public class SellGUI extends GUIMerchant {
private ItemStack getSellItemHover(Purchase purchase) {
ItemStack itemStack = new ItemStack(purchase.material());
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.displayName(miniMessage.deserialize(Config.TRANSACTION_ITEM_NAME, TemplateResolver.resolving(
Template.template("item_name", purchase.material().name())
itemMeta.displayName(miniMessage.deserialize(Config.TRANSACTION_ITEM_NAME, TagResolver.resolver(
Placeholder.unparsed("item_name", purchase.material().name())
)));
List<Component> lore = new ArrayList<>();
for (String entry : Config.TRANSACTION_ITEM_DESCRIPTION) {
lore.add(miniMessage.deserialize(entry, TemplateResolver.resolving(
Template.template("amount", String.valueOf(purchase.amount())),
Template.template("price", String.format("%,.2f", purchase.price())),
Template.template("points", String.valueOf(purchase.totalPointCost()))
lore.add(miniMessage.deserialize(entry, TagResolver.resolver(
Placeholder.unparsed("amount", String.valueOf(purchase.amount())),
Placeholder.unparsed("price", String.format("%,.2f", purchase.price())),
Placeholder.unparsed("points", String.valueOf(purchase.totalPointCost()))
)));
}
itemMeta.lore(lore);

View File

@ -5,7 +5,6 @@ import com.alttd.commands.subcommands.*;
import com.alttd.config.Config;
import com.alttd.util.Logger;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template;
import org.bukkit.command.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

View File

@ -8,7 +8,8 @@ import com.alttd.objects.Price;
import com.alttd.objects.VillagerType;
import com.alttd.util.Logger;
import com.alttd.util.Utilities;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -43,7 +44,7 @@ public class CommandBuy extends SubCommand {
.anyMatch(material -> material.equals(item)))
.findFirst();
if (optionalVillagerType.isEmpty()) {
player.sendMiniMessage(Config.NO_BUY_AT_SPAWN, List.of(Template.template("material", item.name())));
player.sendMiniMessage(Config.NO_BUY_AT_SPAWN, TagResolver.resolver(Placeholder.unparsed("material", item.name())));
return true;
}
VillagerType villagerType = optionalVillagerType.get();
@ -55,12 +56,12 @@ public class CommandBuy extends SubCommand {
EconUser user = EconUser.getUser(player.getUniqueId());
Integer curPoints = user.getPointsMap().getOrDefault(villagerType.getName(), 0);
double cost = price.calculatePriceThing(curPoints, price.getPoints(), true, price.getPoints());
player.sendMiniMessage(Config.BUY_ITEM_MESSAGE, List.of(
Template.template("material", item.name()),
Template.template("price", String.valueOf(cost)),
Template.template("points", String.valueOf(price.getPoints())),
Template.template("current_points", String.valueOf(curPoints)),
Template.template("villager_type", villagerType.getDisplayName())
player.sendMiniMessage(Config.BUY_ITEM_MESSAGE, TagResolver.resolver(
Placeholder.unparsed("material", item.name()),
Placeholder.unparsed("price", String.valueOf(cost)),
Placeholder.unparsed("points", String.valueOf(price.getPoints())),
Placeholder.unparsed("current_points", String.valueOf(curPoints)),
Placeholder.unparsed("villager_type", villagerType.getDisplayName())
));
return true;
}

View File

@ -1,19 +1,17 @@
package com.alttd.commands.subcommands;
import com.alttd.VillagerUI;
import com.alttd.commands.SubCommand;
import com.alttd.config.Config;
import com.alttd.config.VillagerConfig;
import com.alttd.objects.LoadedVillagers;
import com.alttd.objects.VillagerType;
import com.alttd.util.Utilities;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Villager;
@ -57,8 +55,8 @@ public class CommandCreateVillager extends SubCommand {
villager.setProfession(villagerType.getProfession());
villager.setRemoveWhenFarAway(false);
villager.setCollidable(false);
villager.customName(getMiniMessage().deserialize(Config.VILLAGER_NAME, TemplateResolver.resolving(
Template.template("name", villagerType.getDisplayName())))
villager.customName(getMiniMessage().deserialize(Config.VILLAGER_NAME, TagResolver.resolver(
Placeholder.unparsed("name", villagerType.getDisplayName())))
);
villager.setCustomNameVisible(true);
villager.setAI(false);

View File

@ -3,8 +3,6 @@ package com.alttd.commands.subcommands;
import com.alttd.commands.CommandManager;
import com.alttd.commands.SubCommand;
import com.alttd.config.Config;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;

View File

@ -9,8 +9,8 @@ import com.alttd.util.Logger;
import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -42,27 +42,27 @@ public class CommandPoints extends SubCommand {
return;
}
int currentPoints = pointsMap.getOrDefault(key, 0);
ref.message = ref.message.append(miniMessage.deserialize("\n", TemplateResolver.resolving()));
ref.message = ref.message.append(miniMessage.deserialize(Config.POINTS_CONTENT, TemplateResolver.resolving(
Template.template("villager_type", VillagerType.getVillagerType(key).getDisplayName()),
Template.template("points", String.valueOf(currentPoints)),
Template.template("buy_multiplier", String.valueOf(Price.getCurrentMultiplier(currentPoints, true))),
Template.template("sell_multiplier", String.valueOf(Price.getCurrentMultiplier(currentPoints, false)))
ref.message = ref.message.append(miniMessage.deserialize("\n", TagResolver.resolver()));
ref.message = ref.message.append(miniMessage.deserialize(Config.POINTS_CONTENT, TagResolver.resolver(
Placeholder.unparsed("villager_type", VillagerType.getVillagerType(key).getDisplayName()),
Placeholder.unparsed("points", String.valueOf(currentPoints)),
Placeholder.unparsed("buy_multiplier", String.valueOf(Price.getCurrentMultiplier(currentPoints, true))),
Placeholder.unparsed("sell_multiplier", String.valueOf(Price.getCurrentMultiplier(currentPoints, true)))
)));
});
} else if (args.length == 2){
VillagerType villagerType = VillagerType.getVillagerType(args[1].toLowerCase());
Object2ObjectArrayMap<String, Integer> pointsMap = user.getPointsMap();
if (villagerType == null) {
player.sendMiniMessage(Config.NOT_A_VILLAGER, List.of(Template.template("villager_type", args[1])));
player.sendMiniMessage(Config.NOT_A_VILLAGER, TagResolver.resolver(Placeholder.unparsed("villager_type", args[1])));
return true;
}
int currentPoints = pointsMap.getOrDefault(villagerType.getName(), 0);
ref.message = ref.message.append(miniMessage.deserialize(Config.POINTS_CONTENT, TemplateResolver.resolving(
Template.template("villager_type", villagerType.getDisplayName()),
Template.template("points", String.valueOf(currentPoints)),
Template.template("buy_multiplier", String.valueOf(Price.getCurrentMultiplier(currentPoints, true))),
Template.template("sell_multiplier", String.valueOf(Price.getCurrentMultiplier(currentPoints, true)))
ref.message = ref.message.append(miniMessage.deserialize(Config.POINTS_CONTENT, TagResolver.resolver(
Placeholder.unparsed("villager_type", villagerType.getDisplayName()),
Placeholder.unparsed("points", String.valueOf(currentPoints)),
Placeholder.unparsed("buy_multiplier", String.valueOf(Price.getCurrentMultiplier(currentPoints, true))),
Placeholder.unparsed("sell_multiplier", String.valueOf(Price.getCurrentMultiplier(currentPoints, true)))
)));
} else
player.sendMiniMessage(getHelpMessage(), null);

View File

@ -4,7 +4,8 @@ import com.alttd.commands.SubCommand;
import com.alttd.config.Config;
import com.alttd.config.VillagerConfig;
import com.alttd.objects.LoadedVillagers;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
@ -32,8 +33,8 @@ public class CommandRemoveVillager extends SubCommand {
LoadedVillagers.removeLoadedVillager(uuid);
VillagerConfig.removeVillager(uuid);
entity.remove();
player.sendMiniMessage(Config.REMOVED_VILLAGER, List.of(
Template.template("uuid", uuid.toString())));
player.sendMiniMessage(Config.REMOVED_VILLAGER, TagResolver.resolver(
Placeholder.unparsed("uuid", uuid.toString())));
}
return true;
}

View File

@ -8,7 +8,8 @@ import com.alttd.objects.Price;
import com.alttd.objects.VillagerType;
import com.alttd.util.Logger;
import com.alttd.util.Utilities;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -43,7 +44,7 @@ public class CommandSell extends SubCommand {
.anyMatch(material -> material.equals(item)))
.findFirst();
if (optionalVillagerType.isEmpty()) {
player.sendMiniMessage(Config.NO_SELL_AT_SPAWN, List.of(Template.template("material", item.name())));
player.sendMiniMessage(Config.NO_SELL_AT_SPAWN, TagResolver.resolver(Placeholder.unparsed("material", item.name())));
return true;
}
VillagerType villagerType = optionalVillagerType.get();
@ -55,12 +56,12 @@ public class CommandSell extends SubCommand {
EconUser user = EconUser.getUser(player.getUniqueId());
Integer curPoints = user.getPointsMap().getOrDefault(villagerType.getName(), 0);
double cost = price.calculatePriceThing(curPoints, price.getPoints(), false, price.getPoints());
player.sendMiniMessage(Config.SELL_ITEM_MESSAGE, List.of(
Template.template("material", item.name()),
Template.template("price", String.valueOf(cost)),
Template.template("points", String.valueOf(price.getPoints())),
Template.template("current_points", String.valueOf(curPoints)),
Template.template("villager_type", villagerType.getDisplayName())
player.sendMiniMessage(Config.SELL_ITEM_MESSAGE, TagResolver.resolver(
Placeholder.unparsed("material", item.name()),
Placeholder.unparsed("price", String.valueOf(cost)),
Placeholder.unparsed("points", String.valueOf(price.getPoints())),
Placeholder.unparsed("current_points", String.valueOf(curPoints)),
Placeholder.unparsed("villager_type", villagerType.getDisplayName())
));
return true;
}