PDC Upgrade

pull/6/head
= 10 months ago
parent ec07253263
commit ca724131e8
  1. 3
      src/main/java/xyz/soukup/ecoCraftCore/commands/RulerCommand.java
  2. 41
      src/main/java/xyz/soukup/ecoCraftCore/commands/ShopCommand.java
  3. 23
      src/main/java/xyz/soukup/ecoCraftCore/events/RulerMarking.java
  4. 38
      src/main/java/xyz/soukup/ecoCraftCore/utilities/PDC.java

@ -26,7 +26,8 @@ public class RulerCommand {
}
Player player = (Player) commandSender;
ItemStack itemStack = PDC.setItemStackBoolean(new ItemStack(Material.BLAZE_ROD), "ruler", true);
ItemStack itemStack = new ItemStack(Material.BLAZE_ROD);
PDC.set(itemStack, "ruler", true);
player.getInventory().addItem(itemStack);

@ -5,7 +5,11 @@ 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;
import org.eclipse.sisu.inject.TypeArguments;
import org.bukkit.Location;
import org.bukkit.block.Chest;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import xyz.soukup.ecoCraftCore.events.RulerMarking;
public class ShopCommand {
public static LiteralArgumentBuilder<CommandSourceStack> createCommand() {
@ -13,29 +17,40 @@ public class ShopCommand {
.then(Commands.argument("amount", IntegerArgumentType.integer(1))
.then(Commands.literal("buy")
.then(Commands.argument("buy_price", FloatArgumentType.floatArg(0.1F))
.executes(ShopCommand::createBuyShop)
.executes(ShopCommand::createShop)
.then(Commands.literal("sell")
.then(Commands.argument("sell_price", FloatArgumentType.floatArg(0.1F))
.executes(ShopCommand::createBuyAndSellShop)))))
.executes(ShopCommand::createShop)))))
.then(Commands.literal("sell")
.then(Commands.argument("sell_price", FloatArgumentType.floatArg(0.1F))
.executes(ShopCommand::createSellShop)
.executes(ShopCommand::createShop)
.then(Commands.literal("buy")
.then(Commands.argument("buy_price", FloatArgumentType.floatArg(0.1F))
.executes(ShopCommand::createBuyAndSellShop))))));
.executes(ShopCommand::createShop))))));
}
private static int createBuyShop(CommandContext<CommandSourceStack> ctx){
ctx.getSource().getSender().sendPlainMessage("buy");
return 1;
private static int createShop(CommandContext<CommandSourceStack> ctx){
CommandSourceStack source = ctx.getSource();
if (!(source.getSender() instanceof Player player)){
source.getSender().sendPlainMessage("nejsi hrač");
return 0;
}
private static int createSellShop(CommandContext<CommandSourceStack> ctx){
ctx.getSource().getSender().sendPlainMessage("sell");
return 1;
Chest chest = RulerMarking.chests.get(player);
Sign sign = RulerMarking.signs.get(player);
Integer amount = ctx.getArgument("amount", Integer.class);
Float buyPrice = ctx.getArgument("buy_price", Float.class);
Float sellPrice = ctx.getArgument("sell_price", Float.class);
if (sign == null || chest == null){
player.sendPlainMessage("nemáš označeno");
return 0;
}
private static int createBuyAndSellShop(CommandContext<CommandSourceStack> ctx){
ctx.getSource().getSender().sendPlainMessage("buy and sell");
ctx.getSource().getSender().sendPlainMessage("buy");
return 1;
}
}

@ -1,6 +1,5 @@
package xyz.soukup.ecoCraftCore.events;
import org.bukkit.BlockChangeDelegate;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.Chest;
@ -16,10 +15,10 @@ import java.util.HashMap;
public class RulerMarking implements Listener {
public static HashMap<Player, Location> primary_locations = new HashMap<>();
public static HashMap<Player, Location> secondary_locations = new HashMap<>();
public static HashMap<Player, Location> sign_locations = new HashMap<>();
public static HashMap<Player, Location> storage_locations = new HashMap<>();
public static HashMap<Player, Location> primaryLocations = new HashMap<>();
public static HashMap<Player, Location> secondaryLocations = new HashMap<>();
public static HashMap<Player, Sign> signs = new HashMap<>();
public static HashMap<Player, Chest> chests = new HashMap<>();
@EventHandler
public void playerInteract(PlayerInteractEvent event){
@ -32,7 +31,7 @@ public class RulerMarking implements Listener {
return;
}
Boolean isRuler = PDC.retrieveBooleanFromItemStack(itemStack, "ruler");
Boolean isRuler = PDC.getBoolean(itemStack, "ruler");
if (isRuler == null || !isRuler) {
return;
@ -40,26 +39,26 @@ public class RulerMarking implements Listener {
event.setCancelled(true);
if (block.getState() instanceof Chest){
storage_locations.put(event.getPlayer(), block.getLocation());
if (block.getState() instanceof Chest chest){
chests.put(event.getPlayer(), chest);
event.getPlayer().sendMessage("pozice truhly nastavena");
return;
}
if (block.getState() instanceof Sign){
sign_locations.put(event.getPlayer(), block.getLocation());
if (block.getState() instanceof Sign sign){
signs.put(event.getPlayer(), sign);
event.getPlayer().sendMessage("pozice cedule nastavena");
return;
}
switch (event.getAction()){
case LEFT_CLICK_BLOCK -> {
primary_locations.put(event.getPlayer(), block.getLocation());
primaryLocations.put(event.getPlayer(), block.getLocation());
event.getPlayer().sendMessage("první pozice nastavena");
return;
}
case RIGHT_CLICK_BLOCK -> {
secondary_locations.put(event.getPlayer(), block.getLocation());
secondaryLocations.put(event.getPlayer(), block.getLocation());
event.getPlayer().sendMessage("druhá pozice nastavena");
return;
}

@ -4,42 +4,50 @@ import org.bukkit.NamespacedKey;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataHolder;
import org.bukkit.persistence.PersistentDataType;
@SuppressWarnings({"unchecked", "rawtypes"})
public class PDC {
public static ItemStack setItemStackString(ItemStack itemStack, String key, String value){
return setItemStack(itemStack, key, value, PersistentDataType.STRING);
public static void set(ItemStack itemStack, String key, String value){
set(itemStack, key, value, PersistentDataType.STRING);
}
public static ItemStack setItemStackBoolean(ItemStack itemStack, String key, Boolean value){
return setItemStack(itemStack, key, value, PersistentDataType.BOOLEAN);
public static void set(ItemStack itemStack, String key, Boolean value){
set(itemStack, key, value, PersistentDataType.BOOLEAN);
}
public static Boolean retrieveBooleanFromItemStack(ItemStack itemStack, String key){
return (Boolean) retrieveFromItemStack(itemStack, key, PersistentDataType.BOOLEAN);
public static Boolean getBoolean(ItemStack itemStack, String key){
return (Boolean) get(itemStack, key, PersistentDataType.BOOLEAN);
}
public static String retrieveStringFromItemStack(ItemStack itemStack, String key){
return (String) retrieveFromItemStack(itemStack, key, PersistentDataType.STRING);
public static String getString(ItemStack itemStack, String key){
return (String) get(itemStack, key, PersistentDataType.STRING);
}
private static Object retrieveFromItemStack(ItemStack itemStack, String key, PersistentDataType persistentDataType){
private static Object get(ItemStack itemStack, String key, PersistentDataType persistentDataType){
ItemMeta itemMeta = itemStack.getItemMeta();
PersistentDataContainer persistentDataContainer = itemMeta.getPersistentDataContainer();
return get(itemMeta, key, persistentDataType);
}
private static Object get(PersistentDataHolder persistentDataHolder, String key, PersistentDataType persistentDataType){
PersistentDataContainer persistentDataContainer = persistentDataHolder.getPersistentDataContainer();
NamespacedKey namespacedKey = new NamespacedKey("ecc", key);
return persistentDataContainer.get(namespacedKey, persistentDataType);
}
private static ItemStack setItemStack(ItemStack itemStack, String key, Object value, PersistentDataType persistentDataType){
private static void set(ItemStack itemStack, String key, Object value, PersistentDataType persistentDataType){
ItemMeta itemMeta = itemStack.getItemMeta();
PersistentDataContainer persistentDataContainer = itemMeta.getPersistentDataContainer();
set(itemMeta, key, value, persistentDataType);
itemStack.setItemMeta(itemMeta);
}
private static void set(PersistentDataHolder persistentDataHolder, String key, Object value, PersistentDataType persistentDataType){
PersistentDataContainer persistentDataContainer = persistentDataHolder.getPersistentDataContainer();
NamespacedKey namespacedKey = new NamespacedKey("ecc", key);
persistentDataContainer.set(namespacedKey, persistentDataType, value);
itemStack.setItemMeta(itemMeta);
return itemStack;
}
}

Loading…
Cancel
Save