Merge remote-tracking branch 'origin/ble' into ble

# Conflicts:
#	pom.xml
#	src/main/java/xyz/soukup/ecoCraftCore/events/ShopLogic.java
master
jakub 4 weeks ago
parent 7335f3e0d8
commit 75bbf0a793
  1. 2
      pom.xml
  2. 23
      src/main/java/xyz/soukup/ecoCraftCore/EcoCraftCore.java
  3. 4
      src/main/java/xyz/soukup/ecoCraftCore/commands/IslandCommand.java
  4. 6
      src/main/java/xyz/soukup/ecoCraftCore/database/DaoRegistry.java
  5. 5
      src/main/java/xyz/soukup/ecoCraftCore/database/objects/Account.java
  6. 4
      src/main/java/xyz/soukup/ecoCraftCore/database/objects/Island.java
  7. 4
      src/main/java/xyz/soukup/ecoCraftCore/database/objects/Shop.java
  8. 6
      src/main/java/xyz/soukup/ecoCraftCore/database/objects/Transaction.java
  9. 2
      src/main/java/xyz/soukup/ecoCraftCore/gui/GuiItemBuilder.java
  10. 2
      src/main/java/xyz/soukup/ecoCraftCore/inventory/InventoryUtils.java
  11. 5
      src/main/java/xyz/soukup/ecoCraftCore/inventory/VirtualChest.java
  12. 32
      src/main/java/xyz/soukup/ecoCraftCore/islands/IslandCommand.java
  13. 5
      src/main/java/xyz/soukup/ecoCraftCore/islands/IslandLoader.java
  14. 44
      src/main/java/xyz/soukup/ecoCraftCore/islands/IslandManager.java
  15. 4
      src/main/java/xyz/soukup/ecoCraftCore/islands/UnloadWorld.java
  16. 4
      src/main/java/xyz/soukup/ecoCraftCore/messages/Messages.java
  17. 6
      src/main/java/xyz/soukup/ecoCraftCore/messages/PHHM.java
  18. 12
      src/main/java/xyz/soukup/ecoCraftCore/money/MoneyCommand.java
  19. 4
      src/main/java/xyz/soukup/ecoCraftCore/player/PreparePlayer.java
  20. 4
      src/main/java/xyz/soukup/ecoCraftCore/positionMarker/RulerCommand.java
  21. 6
      src/main/java/xyz/soukup/ecoCraftCore/positionMarker/RulerMarking.java
  22. 12
      src/main/java/xyz/soukup/ecoCraftCore/shop/ShopCommand.java
  23. 15
      src/main/java/xyz/soukup/ecoCraftCore/shop/ShopLogic.java
  24. 4
      src/main/java/xyz/soukup/ecoCraftCore/virtualChest/VirtualChestLogic.java

@ -43,7 +43,7 @@
</execution>
</executions>
<configuration>
<packages>xyz.soukup.ecoCraftCore.objects.**</packages>
<packages>xyz.soukup.ecoCraftCore.database.objects.**</packages>
</configuration>
</plugin>
<plugin>

@ -9,17 +9,20 @@ import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import xyz.soukup.ecoCraftCore.commands.MoneyCommand;
import xyz.soukup.ecoCraftCore.commands.RulerCommand;
import xyz.soukup.ecoCraftCore.commands.ShopCommand;
import xyz.soukup.ecoCraftCore.events.*;
import xyz.soukup.ecoCraftCore.objects.Account;
import xyz.soukup.ecoCraftCore.objects.Shop;
import xyz.soukup.ecoCraftCore.objects.Transaction;
import xyz.soukup.ecoCraftCore.money.MoneyCommand;
import xyz.soukup.ecoCraftCore.player.PreparePlayer;
import xyz.soukup.ecoCraftCore.positionMarker.RulerCommand;
import xyz.soukup.ecoCraftCore.shop.ShopCommand;
import xyz.soukup.ecoCraftCore.database.objects.Account;
import xyz.soukup.ecoCraftCore.database.objects.Shop;
import xyz.soukup.ecoCraftCore.database.objects.Transaction;
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents;
import xyz.soukup.ecoCraftCore.objects.VirtualChest;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import xyz.soukup.ecoCraftCore.utilities.Messages;
import xyz.soukup.ecoCraftCore.inventory.VirtualChest;
import xyz.soukup.ecoCraftCore.positionMarker.RulerMarking;
import xyz.soukup.ecoCraftCore.database.DaoRegistry;
import xyz.soukup.ecoCraftCore.messages.Messages;
import xyz.soukup.ecoCraftCore.shop.ShopLogic;
import xyz.soukup.ecoCraftCore.virtualChest.VirtualChestLogic;
import java.io.IOException;
import java.sql.SQLException;

@ -1,4 +0,0 @@
package xyz.soukup.ecoCraftCore.commands;
public class IslandCommand {
}

@ -1,8 +1,8 @@
package xyz.soukup.ecoCraftCore.utilities;
package xyz.soukup.ecoCraftCore.database;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.stmt.query.In;
import xyz.soukup.ecoCraftCore.objects.*;
import xyz.soukup.ecoCraftCore.database.objects.*;
import xyz.soukup.ecoCraftCore.inventory.VirtualChest;
public class DaoRegistry {
private static Dao<Shop, Integer> shopDao;

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.objects;
package xyz.soukup.ecoCraftCore.database.objects;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.misc.TransactionManager;
@ -7,8 +7,7 @@ import com.j256.ormlite.stmt.UpdateBuilder;
import com.j256.ormlite.table.DatabaseTable;
import org.bukkit.entity.Player;
import xyz.soukup.ecoCraftCore.EcoCraftCore;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import xyz.soukup.ecoCraftCore.database.DaoRegistry;
import java.sql.SQLException;
import java.util.HashMap;

@ -1,9 +1,9 @@
package xyz.soukup.ecoCraftCore.objects;
package xyz.soukup.ecoCraftCore.database.objects;
import com.j256.ormlite.field.DataType;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import xyz.soukup.ecoCraftCore.database.DaoRegistry;
import java.sql.SQLException;

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.objects;
package xyz.soukup.ecoCraftCore.database.objects;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import net.kyori.adventure.text.Component;
@ -8,7 +8,7 @@ import org.bukkit.block.sign.SignSide;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import xyz.soukup.ecoCraftCore.database.DaoRegistry;
import xyz.soukup.ecoCraftCore.utilities.Converter;
import xyz.soukup.ecoCraftCore.utilities.PDC;

@ -1,13 +1,11 @@
package xyz.soukup.ecoCraftCore.objects;
package xyz.soukup.ecoCraftCore.database.objects;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import org.bukkit.entity.Player;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import xyz.soukup.ecoCraftCore.database.DaoRegistry;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Objects;
@DatabaseTable(tableName = "transactions")
public class Transaction {

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.utilities;
package xyz.soukup.ecoCraftCore.gui;
import com.github.stefvanschie.inventoryframework.gui.GuiItem;
import net.kyori.adventure.text.Component;

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.utilities;
package xyz.soukup.ecoCraftCore.inventory;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.objects;
package xyz.soukup.ecoCraftCore.inventory;
import com.j256.ormlite.field.DataType;
import com.j256.ormlite.field.DatabaseField;
@ -6,9 +6,8 @@ import com.j256.ormlite.table.DatabaseTable;
import org.bukkit.block.Chest;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import xyz.soukup.ecoCraftCore.database.DaoRegistry;
import xyz.soukup.ecoCraftCore.utilities.Converter;
import xyz.soukup.ecoCraftCore.utilities.InventoryUtils;
import xyz.soukup.ecoCraftCore.utilities.PDC;
import java.sql.SQLException;

@ -0,0 +1,32 @@
package xyz.soukup.ecoCraftCore.islands;
import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.context.CommandContext;
import io.papermc.paper.command.brigadier.CommandSourceStack;
import io.papermc.paper.command.brigadier.Commands;
public class IslandCommand {
LiteralArgumentBuilder<CommandSourceStack> tp = Commands.literal("tp")
.then(Commands.argument("uuid", StringArgumentType.word())
.executes(IslandCommand::teleport));
LiteralArgumentBuilder<CommandSourceStack> create = Commands.literal("create")
.then(Commands.argument("name", StringArgumentType.word())
.then(Commands.argument("display_name", StringArgumentType.string())));
private static int teleport(CommandContext<CommandSourceStack> context) {
return 0;
}
private static int createWorld(CommandContext<CommandSourceStack> context) {
return 0;
}
private static int loadWorld(CommandContext<CommandSourceStack> context) {
return 0;
}
}

@ -2,9 +2,8 @@ package xyz.soukup.ecoCraftCore.islands;
import com.infernalsuite.asp.api.exceptions.UnknownWorldException;
import com.infernalsuite.asp.api.loaders.SlimeLoader;
import com.j256.ormlite.stmt.DeleteBuilder;
import com.j256.ormlite.stmt.Where;
import xyz.soukup.ecoCraftCore.objects.Island;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import xyz.soukup.ecoCraftCore.database.objects.Island;
import xyz.soukup.ecoCraftCore.database.DaoRegistry;
import java.io.IOException;
import java.sql.SQLException;

@ -5,10 +5,10 @@ import com.infernalsuite.asp.api.world.SlimeWorld;
import com.infernalsuite.asp.api.world.properties.SlimeProperties;
import com.infernalsuite.asp.api.world.properties.SlimePropertyMap;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import xyz.soukup.ecoCraftCore.objects.Island;
import xyz.soukup.ecoCraftCore.database.objects.Island;
import xyz.soukup.ecoCraftCore.database.DaoRegistry;
import java.util.Objects;
import java.sql.SQLException;
import java.util.UUID;
import static xyz.soukup.ecoCraftCore.EcoCraftCore.plugin;
@ -17,7 +17,7 @@ public class IslandManager {
private final AdvancedSlimePaperAPI asp = AdvancedSlimePaperAPI.instance();
private final IslandLoader loader = new IslandLoader();
// 1. Create a brand new island
public void createIsland(String name, String displayName, String descritpion, String owner, String ownerType) {
String uuid = UUID.randomUUID().toString();
@ -35,9 +35,10 @@ public class IslandManager {
// Create the database entry first so the loader has a row to update
SlimeWorld slimeWorld = asp.createEmptyWorld(uuid, false, props, loader);
Island island = new Island(name, uuid, displayName, descritpion, owner, ownerType, null);
island.save();
SlimeWorld slimeWorld = asp.createEmptyWorld(uuid, false, props, loader);
Bukkit.getScheduler().runTask(plugin, () -> {
asp.loadWorld(slimeWorld, true);
@ -48,21 +49,38 @@ public class IslandManager {
}
// 2. Retrieve and Load existing island
public void loadIsland(Player player, String uuidStr) {
public int loadIsland(String uuid) {
if (Bukkit.getWorld(uuid) != null) {
return 0;
}
try {
Island island = DaoRegistry.getIslandDao().queryBuilder()
.selectColumns("active_on")
.where()
.eq("uuid", uuid)
.queryForFirst();
if (!island.getActiveOn().isEmpty()){
return 1;
}
} catch (SQLException e) {
return 2;
}
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
try {
// Check if world is already loaded in Bukkit
if (Bukkit.getWorld(uuidStr) != null) {
Bukkit.getScheduler().runTask(plugin, () -> player.teleport(Bukkit.getWorld(uuidStr).getSpawnLocation()));
return;
}
SlimeWorld slimeWorld = asp.readWorld(loader, uuidStr, false, new SlimePropertyMap());
SlimeWorld slimeWorld = asp.readWorld(loader, uuid, false, new SlimePropertyMap());
Bukkit.getScheduler().runTask(plugin, () -> {
asp.loadWorld(slimeWorld, true);
player.teleport(Bukkit.getWorld(uuidStr).getSpawnLocation());
});
} catch (Exception e) { e.printStackTrace(); }
});
return 0;
}
}

@ -0,0 +1,4 @@
package xyz.soukup.ecoCraftCore.islands;
public class UnloadWorld {
}

@ -1,13 +1,11 @@
package xyz.soukup.ecoCraftCore.utilities;
package xyz.soukup.ecoCraftCore.messages;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
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.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import java.io.File;
import java.io.IOException;

@ -1,9 +1,9 @@
package xyz.soukup.ecoCraftCore.utilities;
package xyz.soukup.ecoCraftCore.messages;
import org.bukkit.Location;
import xyz.soukup.ecoCraftCore.objects.Account;
import xyz.soukup.ecoCraftCore.objects.Transaction;
import xyz.soukup.ecoCraftCore.database.objects.Account;
import xyz.soukup.ecoCraftCore.database.objects.Transaction;
import java.util.HashMap;

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.commands;
package xyz.soukup.ecoCraftCore.money;
import com.mojang.brigadier.arguments.FloatArgumentType;
import com.mojang.brigadier.arguments.StringArgumentType;
@ -11,12 +11,12 @@ import io.papermc.paper.command.brigadier.argument.ArgumentTypes;
import io.papermc.paper.command.brigadier.argument.resolvers.selector.PlayerSelectorArgumentResolver;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import xyz.soukup.ecoCraftCore.objects.Account;
import xyz.soukup.ecoCraftCore.objects.Transaction;
import xyz.soukup.ecoCraftCore.utilities.Messages;
import xyz.soukup.ecoCraftCore.utilities.PHHM;
import xyz.soukup.ecoCraftCore.database.objects.Account;
import xyz.soukup.ecoCraftCore.database.objects.Transaction;
import xyz.soukup.ecoCraftCore.messages.Messages;
import xyz.soukup.ecoCraftCore.messages.PHHM;
@SuppressWarnings("UnstableApiUsage")
public class MoneyCommand {
public static LiteralArgumentBuilder<CommandSourceStack> createCommand() {

@ -1,9 +1,9 @@
package xyz.soukup.ecoCraftCore.events;
package xyz.soukup.ecoCraftCore.player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import xyz.soukup.ecoCraftCore.objects.Account;
import xyz.soukup.ecoCraftCore.database.objects.Account;
public class PreparePlayer implements Listener {

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.commands;
package xyz.soukup.ecoCraftCore.positionMarker;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.context.CommandContext;
@ -8,7 +8,7 @@ import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.utilities.Messages;
import xyz.soukup.ecoCraftCore.messages.Messages;
import xyz.soukup.ecoCraftCore.utilities.PDC;
public class RulerCommand {

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.events;
package xyz.soukup.ecoCraftCore.positionMarker;
import org.bukkit.Location;
import org.bukkit.block.Block;
@ -10,9 +10,9 @@ import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.utilities.Messages;
import xyz.soukup.ecoCraftCore.messages.Messages;
import xyz.soukup.ecoCraftCore.utilities.PDC;
import xyz.soukup.ecoCraftCore.utilities.PHHM;
import xyz.soukup.ecoCraftCore.messages.PHHM;
import java.util.HashMap;

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.commands;
package xyz.soukup.ecoCraftCore.shop;
import com.mojang.brigadier.arguments.*;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
@ -9,11 +9,11 @@ import org.bukkit.block.Chest;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.events.RulerMarking;
import xyz.soukup.ecoCraftCore.objects.Shop;
import xyz.soukup.ecoCraftCore.objects.VirtualChest;
import xyz.soukup.ecoCraftCore.utilities.InventoryUtils;
import xyz.soukup.ecoCraftCore.utilities.Messages;
import xyz.soukup.ecoCraftCore.positionMarker.RulerMarking;
import xyz.soukup.ecoCraftCore.database.objects.Shop;
import xyz.soukup.ecoCraftCore.inventory.VirtualChest;
import xyz.soukup.ecoCraftCore.inventory.InventoryUtils;
import xyz.soukup.ecoCraftCore.messages.Messages;
import xyz.soukup.ecoCraftCore.utilities.PDC;
@SuppressWarnings("UnstableApiUsage")

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.events;
package xyz.soukup.ecoCraftCore.shop;
import com.github.stefvanschie.inventoryframework.gui.GuiItem;
import com.github.stefvanschie.inventoryframework.gui.type.ChestGui;
import com.github.stefvanschie.inventoryframework.pane.StaticPane;
@ -10,7 +10,6 @@ import io.papermc.paper.registry.data.dialog.action.DialogAction;
import io.papermc.paper.registry.data.dialog.input.DialogInput;
import io.papermc.paper.registry.data.dialog.type.DialogType;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickCallback;
import org.bukkit.Material;
import org.bukkit.block.Block;
@ -23,10 +22,14 @@ import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
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.virtualChest.VirtualChestLogic;
import xyz.soukup.ecoCraftCore.gui.GuiItemBuilder;
import xyz.soukup.ecoCraftCore.inventory.InventoryUtils;
import xyz.soukup.ecoCraftCore.messages.Messages;
import xyz.soukup.ecoCraftCore.database.objects.Account;
import xyz.soukup.ecoCraftCore.database.objects.Shop;
import xyz.soukup.ecoCraftCore.database.objects.Transaction;
import xyz.soukup.ecoCraftCore.inventory.VirtualChest;
import xyz.soukup.ecoCraftCore.utilities.*;
import java.util.HashMap;

@ -1,4 +1,4 @@
package xyz.soukup.ecoCraftCore.events;
package xyz.soukup.ecoCraftCore.virtualChest;
import org.bukkit.block.Chest;
import org.bukkit.block.DoubleChest;
@ -11,7 +11,7 @@ import org.bukkit.event.inventory.InventoryMoveItemEvent;
import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.objects.VirtualChest;
import xyz.soukup.ecoCraftCore.inventory.VirtualChest;
import xyz.soukup.ecoCraftCore.utilities.PDC;
import java.util.HashMap;
Loading…
Cancel
Save