pull/6/head
jakub 10 months ago
parent b6fd6812e9
commit eb9b40aa61
  1. 27
      pom.xml
  2. 9
      src/main/java/xyz/soukup/ecoCraftCore/EcoCraftCore.java
  3. 9
      src/main/java/xyz/soukup/ecoCraftCore/commands/TransactionCommand.java
  4. 15
      src/main/java/xyz/soukup/ecoCraftCore/events/PreparePlayer.java
  5. 162
      src/main/java/xyz/soukup/ecoCraftCore/events/ShopLogic.java
  6. 58
      src/main/java/xyz/soukup/ecoCraftCore/events/VirtualChestLogic.java
  7. 109
      src/main/java/xyz/soukup/ecoCraftCore/objects/Account.java
  8. 23
      src/main/java/xyz/soukup/ecoCraftCore/objects/Transaction.java
  9. 24
      src/main/java/xyz/soukup/ecoCraftCore/objects/VirtualChest.java
  10. 17
      src/main/java/xyz/soukup/ecoCraftCore/utilities/Converter.java
  11. 10
      src/main/java/xyz/soukup/ecoCraftCore/utilities/DaoRegistry.java

@ -60,12 +60,8 @@
<configuration> <configuration>
<relocations> <relocations>
<relocation> <relocation>
<pattern>io.ebean</pattern> <pattern>dev.triumphteam.gui</pattern>
<shadedPattern>xyz.soukup.shaded.io.ebean</shadedPattern> <shadedPattern>xyz.soukup.gui</shadedPattern> <!-- Replace package here here -->
</relocation>
<relocation>
<pattern>io.ebeaninternal</pattern>
<shadedPattern>xyz.soukup.shaded.io.ebeaninternal</shadedPattern>
</relocation> </relocation>
<relocation> <relocation>
<pattern>org.avaje</pattern> <pattern>org.avaje</pattern>
@ -100,10 +96,13 @@
<id>sonatype</id> <id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url> <url>https://oss.sonatype.org/content/groups/public/</url>
</repository> </repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories> </repositories>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.j256.ormlite</groupId> <groupId>com.j256.ormlite</groupId>
<artifactId>ormlite-core</artifactId> <artifactId>ormlite-core</artifactId>
@ -114,24 +113,26 @@
<artifactId>ormlite-jdbc</artifactId> <artifactId>ormlite-jdbc</artifactId>
<version>6.1</version> <version>6.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.mysql</groupId> <groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId> <artifactId>mysql-connector-j</artifactId>
<version>9.3.0</version> <version>9.3.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.github.odalita-developments.odalitamenus</groupId> <groupId>dev.triumphteam</groupId>
<artifactId>core</artifactId> <artifactId>triumph-gui</artifactId>
<version>0.6.2</version> <version>3.1.12</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.papermc.paper</groupId> <groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId> <artifactId>paper-api</artifactId>
<version>1.21.3-R0.1-SNAPSHOT</version> <version>1.21.3-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>com.github.MatrixCreations</groupId>
<artifactId>MatrixColorAPI</artifactId>
<version>v1.0.7</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

@ -12,8 +12,11 @@ import org.jetbrains.annotations.NotNull;
import xyz.soukup.ecoCraftCore.commands.RulerCommand; import xyz.soukup.ecoCraftCore.commands.RulerCommand;
import xyz.soukup.ecoCraftCore.commands.ShopCommand; import xyz.soukup.ecoCraftCore.commands.ShopCommand;
import xyz.soukup.ecoCraftCore.commands.TransactionCommand; import xyz.soukup.ecoCraftCore.commands.TransactionCommand;
import xyz.soukup.ecoCraftCore.events.PreparePlayer;
import xyz.soukup.ecoCraftCore.events.RulerMarking; import xyz.soukup.ecoCraftCore.events.RulerMarking;
import xyz.soukup.ecoCraftCore.events.ShopLogic;
import xyz.soukup.ecoCraftCore.events.VirtualChestLogic; import xyz.soukup.ecoCraftCore.events.VirtualChestLogic;
import xyz.soukup.ecoCraftCore.objects.Account;
import xyz.soukup.ecoCraftCore.objects.Shop; import xyz.soukup.ecoCraftCore.objects.Shop;
import xyz.soukup.ecoCraftCore.objects.Transaction; import xyz.soukup.ecoCraftCore.objects.Transaction;
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents;
@ -62,10 +65,12 @@ public final class EcoCraftCore extends JavaPlugin {
TableUtils.createTableIfNotExists(connectionSource, Transaction.class); TableUtils.createTableIfNotExists(connectionSource, Transaction.class);
TableUtils.createTableIfNotExists(connectionSource, Shop.class); TableUtils.createTableIfNotExists(connectionSource, Shop.class);
TableUtils.createTableIfNotExists(connectionSource, VirtualChest.class); TableUtils.createTableIfNotExists(connectionSource, VirtualChest.class);
TableUtils.createTableIfNotExists(connectionSource, Account.class);
DaoRegistry.setTransactionDao(DaoManager.createDao(connectionSource, Transaction.class)); DaoRegistry.setTransactionDao(DaoManager.createDao(connectionSource, Transaction.class));
DaoRegistry.setShopDao(DaoManager.createDao(connectionSource, Shop.class)); DaoRegistry.setShopDao(DaoManager.createDao(connectionSource, Shop.class));
DaoRegistry.setVirtualChestDao(DaoManager.createDao(connectionSource, VirtualChest.class)); DaoRegistry.setVirtualChestDao(DaoManager.createDao(connectionSource, VirtualChest.class));
DaoRegistry.setAccountDao(DaoManager.createDao(connectionSource, Account.class));
} }
@ -82,5 +87,9 @@ public final class EcoCraftCore extends JavaPlugin {
pm.registerEvents(new RulerMarking(), this); pm.registerEvents(new RulerMarking(), this);
pm.registerEvents(new VirtualChestLogic(), this); pm.registerEvents(new VirtualChestLogic(), this);
pm.registerEvents(new ShopLogic(), this);
pm.registerEvents(new PreparePlayer(), this);
} }
} }

@ -1,14 +1,11 @@
package xyz.soukup.ecoCraftCore.commands; package xyz.soukup.ecoCraftCore.commands;
import com.j256.ormlite.dao.Dao; import com.mojang.brigadier.arguments.FloatArgumentType;
import com.j256.ormlite.dao.DaoManager;
import com.mojang.brigadier.arguments.DoubleArgumentType;
import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.context.CommandContext;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import io.papermc.paper.command.brigadier.Commands; import io.papermc.paper.command.brigadier.Commands;
import xyz.soukup.ecoCraftCore.EcoCraftCore;
import xyz.soukup.ecoCraftCore.objects.Transaction; import xyz.soukup.ecoCraftCore.objects.Transaction;
public class TransactionCommand { public class TransactionCommand {
@ -18,14 +15,14 @@ public class TransactionCommand {
.then(Commands.literal("simulate") .then(Commands.literal("simulate")
.then(Commands.argument("sender", StringArgumentType.word()) .then(Commands.argument("sender", StringArgumentType.word())
.then(Commands.argument("receiver", StringArgumentType.word()) .then(Commands.argument("receiver", StringArgumentType.word())
.then(Commands.argument("amount", DoubleArgumentType.doubleArg(0.1)) .then(Commands.argument("amount", FloatArgumentType.floatArg(0.1F))
.executes(TransactionCommand::simulateTransaction))))); .executes(TransactionCommand::simulateTransaction)))));
} }
private static int simulateTransaction(CommandContext<CommandSourceStack> ctx) { private static int simulateTransaction(CommandContext<CommandSourceStack> ctx) {
String sender = StringArgumentType.getString(ctx, "sender"); String sender = StringArgumentType.getString(ctx, "sender");
String receiver = StringArgumentType.getString(ctx, "receiver"); String receiver = StringArgumentType.getString(ctx, "receiver");
double amount = DoubleArgumentType.getDouble(ctx, "amount"); Float amount = FloatArgumentType.getFloat(ctx, "amount");
Transaction tx = new Transaction(amount, "player", sender, "player", receiver, "command"); Transaction tx = new Transaction(amount, "player", sender, "player", receiver, "command");

@ -0,0 +1,15 @@
package xyz.soukup.ecoCraftCore.events;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import xyz.soukup.ecoCraftCore.objects.Account;
public class PreparePlayer implements Listener {
@EventHandler
public void preparePlayer(PlayerJoinEvent event){
Account account = Account.getOrCreate(event.getPlayer());
account.save();
}
}

@ -0,0 +1,162 @@
package xyz.soukup.ecoCraftCore.events;
import dev.triumphteam.gui.builder.item.ItemBuilder;
import dev.triumphteam.gui.guis.Gui;
import dev.triumphteam.gui.guis.GuiItem;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.objects.Account;
import xyz.soukup.ecoCraftCore.objects.Shop;
import xyz.soukup.ecoCraftCore.objects.Transaction;
import xyz.soukup.ecoCraftCore.objects.VirtualChest;
import xyz.soukup.ecoCraftCore.utilities.Converter;
import xyz.soukup.ecoCraftCore.utilities.InventoryUtils;
import xyz.soukup.ecoCraftCore.utilities.PDC;
public class ShopLogic implements Listener {
@EventHandler
public void openShop(PlayerInteractEvent event){
if (event.getAction() != Action.RIGHT_CLICK_BLOCK){
return;
}
Block block = event.getClickedBlock();
assert block != null;
if (!(block.getState() instanceof Sign sign)){
return;
}
Integer id = PDC.getInteger(sign, "shop");
if (id == null){
return;
}
Shop shop = Shop.findById(id);
if (shop == null){
return;
}
event.setCancelled(true);
Player player = event.getPlayer();
Gui gui = buildShopGui(player, shop);
gui.open(player);
}
public static Gui buildShopGui(Player player, Shop shop){
Gui gui = Gui.gui()
.title(Component.text("Obchod"))
.rows(1)
.create();
Float buyPrice = shop.getPriceBuy();
Float sellPrice = shop.getPriceSell();
int amount = shop.getAmount();
if (buyPrice != 0){
GuiItem one = ItemBuilder
.from(Material.LIME_WOOL)
.name(Converter.toComponent("&aKoupit " + amount + "ks za " + String.format("%.2f", buyPrice)))
.asGuiItem();
one.setAction(event -> {
event.setCancelled(true);
ShopLogic.buy(shop, player, 1);
});
GuiItem eight = ItemBuilder
.from(Material.LIME_WOOL)
.name(Converter.toComponent("&aKoupit " + amount*8 + "ks za " + String.format("%.2f", buyPrice*8)))
.asGuiItem();
eight.setAction(event -> {
event.setCancelled(true);
ShopLogic.buy(shop, player, 8);
});
gui.setItem(0, one);
gui.setItem(1, eight);
}
if (sellPrice != 0){
GuiItem one = ItemBuilder
.from(Material.YELLOW_WOOL)
.name(Converter.toComponent("&eProdat " + amount + "ks za " + String.format("%.2f", sellPrice)))
.asGuiItem();
GuiItem eight = ItemBuilder
.from(Material.YELLOW_WOOL)
.name(Converter.toComponent("&eProdat " + amount*8 + "ks za " + String.format("%.2f", sellPrice*8)))
.asGuiItem();
gui.setItem(7, one);
gui.setItem(8, eight);
}
GuiItem item = new GuiItem(shop.getItemStack());
gui.setItem(4, item);
gui.setDefaultClickAction(event -> {
event.setCancelled(true);
});
return gui;
}
public static void buy(Shop shop, Player player, int multiplier){
int amount = shop.getAmount() * multiplier;
float price = shop.getPriceBuy() * multiplier;
ItemStack itemStack = shop.getItemStack();
itemStack.setAmount(amount);
Account account = Account.getOrCreate(player);
if (price > account.getBalance()){
player.sendPlainMessage("nemaš dost mony");
return;
}
VirtualChest virtualChest = VirtualChest.findById(shop.getVirtualChestID());
if (virtualChest == null){
return;
}
Inventory playerInventory = player.getInventory();
if (InventoryUtils.getSpaceLeft(playerInventory, itemStack) < amount){
player.sendPlainMessage("Nemáš dost místa v invu");
return;
}
if (!virtualChest.removeItem(itemStack)){
player.sendPlainMessage("není dost věcí v chestce");
return;
}
playerInventory.removeItem(itemStack);
new Transaction(price, "player", player.getName(), "player", shop.getOwner(), "playerShop", shop.getItemName() ,Integer.toString(amount));
}
}

@ -8,10 +8,13 @@ import org.bukkit.block.TileState;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.inventory.HopperInventorySearchEvent;
import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryMoveItemEvent;
import org.bukkit.event.inventory.InventoryOpenEvent; import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.objects.VirtualChest; import xyz.soukup.ecoCraftCore.objects.VirtualChest;
import xyz.soukup.ecoCraftCore.utilities.PDC; import xyz.soukup.ecoCraftCore.utilities.PDC;
@ -96,8 +99,61 @@ public class VirtualChestLogic implements Listener {
return; return;
} }
openedChests.remove(id); openedChests.remove(id);
VirtualChest virtualChest = VirtualChest.findById(id);
if (virtualChest == null){
return;
}
virtualChest.setOpened(false);
virtualChest.setInventory(event.getInventory());
virtualChest.save();
}
@EventHandler
public void hopperInsert(InventoryMoveItemEvent event){
InventoryHolder initiator = event.getInitiator().getHolder();
InventoryHolder source = event.getSource().getHolder();
InventoryHolder destination = event.getDestination().getHolder();
InventoryHolder inventoryHolder;
assert initiator != null;
if (initiator.equals(source)){
inventoryHolder = destination;
}else{
inventoryHolder = source;
}
Integer id;
if (inventoryHolder instanceof Chest chest){
id = PDC.getInteger(chest, "virtual");
} else if (inventoryHolder instanceof DoubleChest doubleChest) {
id = PDC.getInteger((TileState) doubleChest.getRightSide(), "virtual");
}else {
return;
}
VirtualChest virtualChest = VirtualChest.findById(id);
if (virtualChest == null){
return;
}
ItemStack itemStack = event.getItem();
if (inventoryHolder.equals(destination)){
virtualChest.addItem(itemStack);
}else {
virtualChest.removeItem(itemStack);
}
virtualChest.save();
} }

@ -0,0 +1,109 @@
package xyz.soukup.ecoCraftCore.objects;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.stmt.QueryBuilder;
import com.j256.ormlite.table.DatabaseTable;
import org.bukkit.entity.Player;
import xyz.soukup.ecoCraftCore.EcoCraftCore;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import java.sql.SQLException;
@DatabaseTable(tableName = "accounts")
public class Account {
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(canBeNull = false)
private String owner;
@DatabaseField(canBeNull = false)
private String type;
@DatabaseField(canBeNull = false, defaultValue = "0")
private float balance;
public Account(){
}
public Account(String owner, String type){
this.owner = owner;
this.type = type;
}
public String getOwner() {
return owner;
}
public String getType() {
return type;
}
public float getBalance() {
return balance;
}
public int getId() {
return id;
}
public void setBalance(float balance) {
this.balance = balance;
}
public void deposit(float amount){
this.balance += amount;
}
public void withdraw(float amount){
this.balance -= amount;
}
public static Account getOrCreate(String type, String owner){
QueryBuilder<Account, Integer> queryBuilder = DaoRegistry.getAccountDao().queryBuilder();
try {
queryBuilder.where()
.eq("type", type)
.and()
.eq("owner", owner);
Account account = DaoRegistry.getAccountDao().queryForFirst(queryBuilder.prepare());
if (account == null){
account = new Account(owner, type);
}
return account;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public static Account getOrCreate(Player player){
QueryBuilder<Account, Integer> queryBuilder = DaoRegistry.getAccountDao().queryBuilder();
try {
queryBuilder.where()
.eq("type", "player")
.and()
.eq("owner", player.getName());
Account account = DaoRegistry.getAccountDao().queryForFirst(queryBuilder.prepare());
if (account == null){
account = new Account(player.getName(), "player");
}
return account;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public void save(){
try {
DaoRegistry.getAccountDao().createOrUpdate(this);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}

@ -2,6 +2,7 @@ package xyz.soukup.ecoCraftCore.objects;
import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable; import com.j256.ormlite.table.DatabaseTable;
import org.bukkit.entity.Player;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry; import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import java.sql.SQLException; import java.sql.SQLException;
@ -14,7 +15,7 @@ public class Transaction {
private long id; private long id;
@DatabaseField(canBeNull = false) @DatabaseField(canBeNull = false)
private double amount; private float amount;
@DatabaseField(canBeNull = false, columnName = "sender_type") @DatabaseField(canBeNull = false, columnName = "sender_type")
private String senderType; private String senderType;
@ -53,6 +54,19 @@ public class Transaction {
} }
} }
public void process(){
Account senderAccount = Account.getOrCreate(this.senderType, this.sender);
Account receiverAccount = Account.getOrCreate(this.receiverType, this.receiver);
senderAccount.withdraw(this.amount);
receiverAccount.deposit(this.amount);
senderAccount.save();
receiverAccount.save();
save();
}
public static Transaction findById(int id) { public static Transaction findById(int id) {
try { try {
return DaoRegistry.getTransactionDao().queryForId(id); return DaoRegistry.getTransactionDao().queryForId(id);
@ -61,7 +75,7 @@ public class Transaction {
} }
} }
public Transaction(double amount, String senderType, String sender, String receiverType, String receiver, String type) { public Transaction(float amount, String senderType, String sender, String receiverType, String receiver, String type) {
this.amount = amount; this.amount = amount;
this.senderType = senderType; this.senderType = senderType;
this.sender = sender; this.sender = sender;
@ -70,16 +84,17 @@ public class Transaction {
this.type = type; this.type = type;
} }
public Transaction(double amount, String senderType, String sender, String receiverType, String receiver, String type, String primaryInfo) { public Transaction(float amount, String senderType, String sender, String receiverType, String receiver, String type, String primaryInfo) {
this(amount, senderType, sender, receiverType, receiver, type); this(amount, senderType, sender, receiverType, receiver, type);
this.primaryInfo = primaryInfo; this.primaryInfo = primaryInfo;
} }
public Transaction(double amount, String senderType, String sender, String receiverType, String receiver, String type, String primaryInfo, String secondaryInfo) { public Transaction(float amount, String senderType, String sender, String receiverType, String receiver, String type, String primaryInfo, String secondaryInfo) {
this(amount, senderType, sender, receiverType, receiver, type, primaryInfo); this(amount, senderType, sender, receiverType, receiver, type, primaryInfo);
this.secondaryInfo = secondaryInfo; this.secondaryInfo = secondaryInfo;
} }
// Getters // Getters
public long getId() { return id; } public long getId() { return id; }
public Timestamp getTimestamp() { return timestamp; } public Timestamp getTimestamp() { return timestamp; }

@ -5,8 +5,10 @@ import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable; import com.j256.ormlite.table.DatabaseTable;
import org.bukkit.block.Chest; import org.bukkit.block.Chest;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry; import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import xyz.soukup.ecoCraftCore.utilities.Converter; import xyz.soukup.ecoCraftCore.utilities.Converter;
import xyz.soukup.ecoCraftCore.utilities.InventoryUtils;
import xyz.soukup.ecoCraftCore.utilities.PDC; import xyz.soukup.ecoCraftCore.utilities.PDC;
import java.sql.SQLException; import java.sql.SQLException;
@ -75,6 +77,28 @@ public class VirtualChest {
} }
} }
public void setInventory(Inventory inventory) {
this.inventory = inventory;
}
public boolean addItem(ItemStack itemStack){
int spaceLeft = InventoryUtils.getSpaceLeft(this.inventory, itemStack);
if (spaceLeft < itemStack.getAmount()){
return false;
}
getInventory().addItem(itemStack);
return true;
}
public boolean removeItem(ItemStack itemStack){
int count = InventoryUtils.getCount(getInventory(), itemStack);
if (count < itemStack.getAmount()){
return false;
}
getInventory().removeItem(itemStack);
return true;
}
public Inventory getInventory(){ public Inventory getInventory(){
if (this.inventory == null){ if (this.inventory == null){
this.inventory = Converter.inventoryFromString(this.inventoryString); this.inventory = Converter.inventoryFromString(this.inventoryString);

@ -1,10 +1,14 @@
package xyz.soukup.ecoCraftCore.utilities; package xyz.soukup.ecoCraftCore.utilities;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import net.matrixcreations.libraries.MatrixColorAPI;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -65,5 +69,18 @@ public class Converter {
return inv; return inv;
} }
public static Component toComponent(String text){
return LegacyComponentSerializer.legacySection().deserialize(MatrixColorAPI.process(text)).asComponent();
}
public static List<Component> toComponentList(List<String> list){
List<Component> componentList = new ArrayList<>();
for (String string : list){
componentList.add(toComponent(string));
}
return componentList;
}
} }

@ -1,6 +1,7 @@
package xyz.soukup.ecoCraftCore.utilities; package xyz.soukup.ecoCraftCore.utilities;
import com.j256.ormlite.dao.Dao; import com.j256.ormlite.dao.Dao;
import xyz.soukup.ecoCraftCore.objects.Account;
import xyz.soukup.ecoCraftCore.objects.Shop; import xyz.soukup.ecoCraftCore.objects.Shop;
import xyz.soukup.ecoCraftCore.objects.Transaction; import xyz.soukup.ecoCraftCore.objects.Transaction;
import xyz.soukup.ecoCraftCore.objects.VirtualChest; import xyz.soukup.ecoCraftCore.objects.VirtualChest;
@ -9,6 +10,7 @@ public class DaoRegistry {
private static Dao<Shop, Integer> shopDao; private static Dao<Shop, Integer> shopDao;
private static Dao<Transaction, Integer> transactionDao; private static Dao<Transaction, Integer> transactionDao;
private static Dao<VirtualChest, Integer> virtualChestDao; private static Dao<VirtualChest, Integer> virtualChestDao;
private static Dao<Account, Integer> accountDao;
public static Dao<Shop, Integer> getShopDao() { public static Dao<Shop, Integer> getShopDao() {
@ -34,4 +36,12 @@ public class DaoRegistry {
public static void setVirtualChestDao(Dao<VirtualChest, Integer> virtualChestDao) { public static void setVirtualChestDao(Dao<VirtualChest, Integer> virtualChestDao) {
DaoRegistry.virtualChestDao = virtualChestDao; DaoRegistry.virtualChestDao = virtualChestDao;
} }
public static Dao<Account, Integer> getAccountDao() {
return accountDao;
}
public static void setAccountDao(Dao<Account, Integer> accountDao) {
DaoRegistry.accountDao = accountDao;
}
} }

Loading…
Cancel
Save