pull/6/head
jakub 10 months ago
parent 7c354ccc57
commit e84cd87d07
  1. 14
      src/main/java/xyz/soukup/ecoCraftCore/EcoCraftCore.java
  2. 35
      src/main/java/xyz/soukup/ecoCraftCore/commands/RulerCommand.java
  3. 4
      src/main/java/xyz/soukup/ecoCraftCore/commands/ShopCommand.java
  4. 70
      src/main/java/xyz/soukup/ecoCraftCore/events/RulerMarking.java

@ -4,8 +4,14 @@ import com.j256.ormlite.dao.DaoManager;
import com.j256.ormlite.jdbc.JdbcConnectionSource;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;
import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import org.eclipse.sisu.bean.LifecycleManager;
import org.jetbrains.annotations.NotNull;
import xyz.soukup.ecoCraftCore.commands.RulerCommand;
import xyz.soukup.ecoCraftCore.commands.TransactionCommand;
import xyz.soukup.ecoCraftCore.events.RulerMarking;
import xyz.soukup.ecoCraftCore.objects.Shop;
import xyz.soukup.ecoCraftCore.objects.Transaction;
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents;
@ -27,6 +33,7 @@ public final class EcoCraftCore extends JavaPlugin {
try {
prepareDatabase();
registerCommands();
this.getServer().getPluginManager().registerEvents(new RulerMarking(), this);
} catch (SQLException e) {
e.printStackTrace();
getLogger().severe("Failed to initialize database.");
@ -61,8 +68,9 @@ public final class EcoCraftCore extends JavaPlugin {
}
private void registerCommands() {
this.getLifecycleManager().registerEventHandler(LifecycleEvents.COMMANDS,
event -> event.registrar().register(TransactionCommand.createCommand().build())
);
@NotNull LifecycleEventManager<@NotNull Plugin> lm = this.getLifecycleManager();
lm.registerEventHandler(LifecycleEvents.COMMANDS, event -> event.registrar().register(TransactionCommand.createCommand().build()));
lm.registerEventHandler(LifecycleEvents.COMMANDS, event -> event.registrar().register(RulerCommand.createCommand().build()));
}
}

@ -0,0 +1,35 @@
package xyz.soukup.ecoCraftCore.commands;
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.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.utilities.PDC;
public class RulerCommand {
public static LiteralArgumentBuilder<CommandSourceStack> createCommand() {
return Commands.literal("ruler")
.executes(RulerCommand::obtainRuler);
}
private static int obtainRuler(CommandContext<CommandSourceStack> context){
CommandSender commandSender = context.getSource().getSender();
if (!(commandSender instanceof Player)){
commandSender.sendPlainMessage("Musíš být hráč");
return 0;
}
Player player = (Player) commandSender;
ItemStack itemStack = PDC.setItemStackBoolean(new ItemStack(Material.BLAZE_ROD), "ruler", true);
player.getInventory().addItem(itemStack);
return 1;
}
}

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

@ -0,0 +1,70 @@
package xyz.soukup.ecoCraftCore.events;
import org.bukkit.BlockChangeDelegate;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.Chest;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.utilities.PDC;
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<>();
@EventHandler
public void playerInteract(PlayerInteractEvent event){
ItemStack itemStack = event.getItem();
Block block = event.getClickedBlock();
if (itemStack == null || block == null){
return;
}
Boolean isRuler = PDC.retrieveBooleanFromItemStack(itemStack, "ruler");
if (isRuler == null || !isRuler) {
return;
}
event.setCancelled(true);
if (block.getState() instanceof Chest){
storage_locations.put(event.getPlayer(), block.getLocation());
event.getPlayer().sendMessage("pozice truhly nastavena");
return;
}
if (block.getState() instanceof Sign){
sign_locations.put(event.getPlayer(), block.getLocation());
event.getPlayer().sendMessage("pozice cedule nastavena");
return;
}
switch (event.getAction()){
case LEFT_CLICK_BLOCK -> {
primary_locations.put(event.getPlayer(), block.getLocation());
event.getPlayer().sendMessage("první pozice nastavena");
return;
}
case RIGHT_CLICK_BLOCK -> {
secondary_locations.put(event.getPlayer(), block.getLocation());
event.getPlayer().sendMessage("druhá pozice nastavena");
return;
}
}
event.setCancelled(false);
}
}
Loading…
Cancel
Save