1
mirror of https://github.com/CarmJos/UltraDepository.git synced 2024-09-19 11:45:47 +00:00

[v1.2.4] 简化配置文件类代码

This commit is contained in:
Carm Jos 2022-01-14 12:56:05 +08:00
parent c2eeddedcb
commit 19a26cb9b8
4 changed files with 34 additions and 148 deletions

View File

@ -9,7 +9,7 @@
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<easyplugin.version>1.3.0</easyplugin.version>
<easyplugin.version>1.3.4</easyplugin.version>
</properties>
<groupId>cc.carm.plugin</groupId>

View File

@ -1,6 +1,7 @@
package cc.carm.plugin.ultradepository.configuration;
import cc.carm.lib.easyplugin.configuration.cast.ConfigStringCast;
import cc.carm.lib.easyplugin.configuration.impl.ConfigItem;
import cc.carm.lib.easyplugin.configuration.impl.ConfigSound;
import cc.carm.lib.easyplugin.configuration.message.ConfigMessage;
import cc.carm.lib.easyplugin.configuration.message.ConfigMessageList;
@ -60,7 +61,7 @@ public class PluginConfig {
* 将添加到背包界面内的物品上避免重复配置
*/
public static final ConfigMessageList ADDITIONAL_LORE = new ConfigMessageList(
ConfigManager.getPluginConfig(), "general.additional-lore", new String[]{},
ConfigManager::getPluginConfig, "general.additional-lore", new String[]{},
new String[]{
"%(item_name)", "%(amount)", "%(price)", "%(sold)", "%(remain)", "%(limit)"
});
@ -70,7 +71,9 @@ public class PluginConfig {
* 将添加到背包界面内的物品上避免重复配置
*/
public static final ConfigMessageList CLICK_LORE = new ConfigMessageList(
ConfigManager.getPluginConfig(), "general.click-lore", new String[]{}, new String[]{
ConfigManager::getPluginConfig,
"general.click-lore",
new String[]{}, new String[]{
"%(item_name)", "%(amount)", "%(price)"
});
@ -81,7 +84,8 @@ public class PluginConfig {
public static final ConfigMessage TITLE = new ConfigMessage(
ConfigManager.getPluginConfig(), "general.sell-gui.title",
ConfigManager::getPluginConfig,
"general.sell-gui.title",
"&a&l出售", new String[]{
"%(item_name)", "%(backpack_name)"
}
@ -89,124 +93,32 @@ public class PluginConfig {
public static class Items {
public static class Add {
public static final ConfigItem ADD = new ConfigItem(
"general.sell-gui.items.add",
new String[]{"%(item_name)", "%(amount)"},
ConfigItem.create(Material.GREEN_STAINED_GLASS_PANE, "&a添加物品 %(amount) 个")
);
public static final ConfigStringCast<Material> TYPE = new ConfigStringCast<>(
"general.sell-gui.items.add.type",
Material::matchMaterial, Material.STONE
);
public static final ConfigItem REMOVE = new ConfigItem(
"general.sell-gui.items.remove",
new String[]{"%(item_name)", "%(amount)"},
ConfigItem.create(Material.RED_STAINED_GLASS_PANE, "&c減少物品 %(amount) 个")
);
public static final ConfigItem CONFIRM = new ConfigItem(
"general.sell-gui.items.confirm",
new String[]{"%(item_name)", "%(amount)", "%(money)"},
ConfigItem.create(Material.EMERALD, "&2确认售出")
);
public static final ConfigValue<Integer> DATA = new ConfigValue<>(
"general.sell-gui.items.add.data", Integer.class, 0
);
public static final ConfigMessage NAME = new ConfigMessage(
ConfigManager.getPluginConfig(), "general.sell-gui.items.add.name",
"&a添加物品 %(amount) 个", new String[]{
"%(item_name)", "%(amount)"
}
);
public static final ConfigMessageList LORE = new ConfigMessageList(
ConfigManager.getPluginConfig(), "general.sell-gui.items.add.lore",
new String[]{}, new String[]{
"%(item_name)", "%(amount)"
}
);
}
public static class Remove {
public static final ConfigStringCast<Material> TYPE = new ConfigStringCast<>(
"general.sell-gui.items.remove.type",
Material::matchMaterial, Material.STONE
);
public static final ConfigValue<Integer> DATA = new ConfigValue<>(
"general.sell-gui.items.remove.data", Integer.class, 0
);
public static final ConfigMessage NAME = new ConfigMessage(
ConfigManager.getPluginConfig(), "general.sell-gui.items.remove.name",
"&c減少物品 %(amount) 个", new String[]{
"%(item_name)", "%(amount)"
}
);
public static final ConfigMessageList LORE = new ConfigMessageList(
ConfigManager.getPluginConfig(), "general.sell-gui.items.remove.lore",
new String[]{}, new String[]{
"%(item_name)", "%(amount)"
}
);
}
public static class Confirm {
public static final ConfigStringCast<Material> TYPE = new ConfigStringCast<>(
"general.sell-gui.items.confirm.type",
Material::matchMaterial, Material.EMERALD
);
public static final ConfigValue<Integer> DATA = new ConfigValue<>(
"general.sell-gui.items.confirm.data", Integer.class, 0
);
public static final ConfigMessage NAME = new ConfigMessage(
ConfigManager.getPluginConfig(), "general.sell-gui.items.confirm.name",
"&2确认售出", new String[]{
"%(item_name)", "%(amount)", "%(money)"
}
);
public static final ConfigMessageList LORE = new ConfigMessageList(
ConfigManager.getPluginConfig(), "general.sell-gui.items.confirm.lore",
new String[]{}, new String[]{
"%(item_name)", "%(amount)", "%(money)"
}
);
}
public static class Cancel {
public static final ConfigStringCast<Material> TYPE = new ConfigStringCast<>(
"general.sell-gui.items.cancel.type",
Material::matchMaterial, Material.REDSTONE
);
public static final ConfigValue<Integer> DATA = new ConfigValue<>(
"general.sell-gui.items.cancel.data", Integer.class, 0
);
public static final ConfigMessage NAME = new ConfigMessage(
ConfigManager.getPluginConfig(), "general.sell-gui.items.cancel.name",
"&4取消售出", null
);
public static final ConfigMessageList LORE = new ConfigMessageList(
ConfigManager.getPluginConfig(), "general.sell-gui.items.cancel.lore", new String[0], new String[0]
);
}
public static final ConfigItem CANCEL = new ConfigItem(
"general.sell-gui.items.cancel",
ConfigItem.create(Material.REDSTONE, "&4取消售出")
);
}
}
}
}

View File

@ -11,7 +11,6 @@ import cc.carm.plugin.ultradepository.configuration.depository.Depository;
import cc.carm.plugin.ultradepository.configuration.depository.DepositoryItem;
import cc.carm.plugin.ultradepository.data.DepositoryItemData;
import cc.carm.plugin.ultradepository.data.UserData;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
@ -74,16 +73,9 @@ public class SellItemGUI extends GUI {
}
private GUIItem getAddItem(int amount) {
ItemStackFactory factory = new ItemStackFactory(Add.TYPE.getOptional().orElse(Material.STONE));
factory.setDurability(Add.DATA.get());
factory.setDisplayName(Add.NAME.get(player, new Object[]{
return new GUIItem(ADD.getItem(player, new Object[]{
getItemName(), amount
}));
factory.setLore(Add.LORE.get(player, new Object[]{
getItemName(), amount
}));
return new GUIItem(factory.toItemStack()) {
})) {
@Override
public void onClick(ClickType type) {
PluginConfig.Sounds.GUI_CLICK.play(player);
@ -94,15 +86,9 @@ public class SellItemGUI extends GUI {
}
private GUIItem getRemoveItem(int amount) {
ItemStackFactory factory = new ItemStackFactory(Remove.TYPE.getOptional().orElse(Material.STONE));
factory.setDurability(Remove.DATA.get());
factory.setDisplayName(Remove.NAME.get(player, new Object[]{
return new GUIItem(REMOVE.getItem(player, new Object[]{
getItemName(), amount
}));
factory.setLore(Remove.LORE.get(player, new Object[]{
getItemName(), amount
}));
return new GUIItem(factory.toItemStack()) {
})) {
@Override
public void onClick(ClickType type) {
PluginConfig.Sounds.GUI_CLICK.play(player);
@ -113,15 +99,9 @@ public class SellItemGUI extends GUI {
}
private GUIItem getConfirmItem() {
ItemStackFactory factory = new ItemStackFactory(Confirm.TYPE.getOptional().orElse(Material.STONE));
factory.setDurability(Confirm.DATA.get());
factory.setDisplayName(Confirm.NAME.get(player, new Object[]{
return new GUIItem(CONFIRM.getItem(player, new Object[]{
getItemName(), getCurrentAmount(), getTotalMoney()
}));
factory.setLore(Confirm.LORE.get(player, new Object[]{
getItemName(), getCurrentAmount(), getTotalMoney()
}));
return new GUIItem(factory.toItemStack()) {
})) {
@Override
public void onClick(ClickType type) {
int amount = Math.min(getCurrentAmount(), Math.min(getReUltraDepositoryAmount(), getSellLimit() - getSoldAmount()));
@ -132,11 +112,7 @@ public class SellItemGUI extends GUI {
}
private GUIItem getCancelItem() {
ItemStackFactory factory = new ItemStackFactory(Cancel.TYPE.getOptional().orElse(Material.STONE));
factory.setDurability(Cancel.DATA.get());
factory.setDisplayName(Cancel.NAME.get());
factory.setLore(Cancel.LORE.get());
return new GUIItem(factory.toItemStack()) {
return new GUIItem(CANCEL.getItem(player)) {
@Override
public void onClick(ClickType type) {
PluginConfig.Sounds.SELL_FAIL.play(player);

View File

@ -78,7 +78,6 @@ general:
name: "&c减少 %(amount) 个"
confirm:
type: EMERALD
data: 0
name: "&a确认售出"
lore:
- " "
@ -88,7 +87,6 @@ general:
- "&a&l点击确认售出"
cancel:
type: REDSTONE
data: 0
name: "&c取消售出"
lore:
- " "