Compare commits

..

2 Commits

Author SHA1 Message Date
jakub 8eeb464c4a Merge remote-tracking branch 'origin/dev' into dev 1 year ago
jakub 29a98733b7 tak tak 1 year ago
  1. 22
      src/main/java/xyz/mineconomia/mineconomiacore/MineconomiaCore.java
  2. 47
      src/main/java/xyz/mineconomia/mineconomiacore/commands/editSign.java
  3. 48
      src/main/java/xyz/mineconomia/mineconomiacore/commands/setSign.java
  4. 19
      src/main/java/xyz/mineconomia/mineconomiacore/events/signComplete.java
  5. 35
      src/main/java/xyz/mineconomia/mineconomiacore/events/toggleFrame.java
  6. 6
      src/main/resources/plugin.yml

@ -10,8 +10,12 @@ import xyz.mineconomia.mineconomiacore.commands.*;
import xyz.mineconomia.mineconomiacore.events.*; import xyz.mineconomia.mineconomiacore.events.*;
import xyz.mineconomia.mineconomiacore.handlers.FHBHandler; import xyz.mineconomia.mineconomiacore.handlers.FHBHandler;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Logger; import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class MineconomiaCore extends JavaPlugin { public final class MineconomiaCore extends JavaPlugin {
public static Logger logger = Bukkit.getLogger(); public static Logger logger = Bukkit.getLogger();
@ -50,6 +54,8 @@ public final class MineconomiaCore extends JavaPlugin {
pm.registerEvents(new shopGuiInteract(), this); pm.registerEvents(new shopGuiInteract(), this);
pm.registerEvents(new sellClose(), this); pm.registerEvents(new sellClose(), this);
pm.registerEvents(new spawnRadiusMessage(), this); pm.registerEvents(new spawnRadiusMessage(), this);
pm.registerEvents(new toggleFrame(), this);
pm.registerEvents(new signComplete(), this);
Objects.requireNonNull(plugin.getCommand("mcore")).setExecutor(new mcore()); Objects.requireNonNull(plugin.getCommand("mcore")).setExecutor(new mcore());
Objects.requireNonNull(getCommand("pomoc")).setExecutor(new BookCommand()); Objects.requireNonNull(getCommand("pomoc")).setExecutor(new BookCommand());
@ -61,8 +67,9 @@ public final class MineconomiaCore extends JavaPlugin {
Objects.requireNonNull(getCommand("sell")).setExecutor(new sell()); Objects.requireNonNull(getCommand("sell")).setExecutor(new sell());
Objects.requireNonNull(getCommand("spawn")).setExecutor(new spawn()); Objects.requireNonNull(getCommand("spawn")).setExecutor(new spawn());
Objects.requireNonNull(getCommand("bed")).setExecutor(new bed()); Objects.requireNonNull(getCommand("bed")).setExecutor(new bed());
Objects.requireNonNull(getCommand("setSign")).setExecutor(new setSign());
Objects.requireNonNull(getCommand("mcore")).setTabCompleter(new mcore()); Objects.requireNonNull(getCommand("mcore")).setTabCompleter(new mcore());
Objects.requireNonNull(getCommand("editSign")).setExecutor(new editSign());
//CustomItems //CustomItems
ItemManager.init(); ItemManager.init();
@ -89,4 +96,17 @@ public final class MineconomiaCore extends JavaPlugin {
public static Economy getEconomy() { public static Economy getEconomy() {
return econ; return econ;
} }
public static List<String> getArgs(String input) {
List<String> result = new ArrayList<>();
Pattern pattern = Pattern.compile("\"([^\"]*)\"|([^\\s]+)");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String match = matcher.group(1); // Check if the first group (quoted string) matched
if (match == null) {
match = matcher.group(2); // If not, use the second group (unquoted string)
}
result.add(match);
}
return result;
}
} }

@ -0,0 +1,47 @@
package xyz.mineconomia.mineconomiacore.commands;
import org.bukkit.ChatColor;
import org.bukkit.block.Sign;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.mineconomia.mineconomiacore.handlers.SignHandler;
import java.util.List;
import static xyz.mineconomia.mineconomiacore.MineconomiaCore.getArgs;
public class editSign implements TabExecutor {
@Override
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
StringBuilder argsString = new StringBuilder();
for (String ss : args) {
argsString.append(ChatColor.translateAlternateColorCodes('&', ss)).append(" ");
}
List<String> pArgs = getArgs(argsString.toString());
if (pArgs.size() != 2){
commandSender.sendMessage(ChatColor.RED + "špatný počet argumentů");
return false;
}
Player player = (Player) commandSender;
if (!(player.getTargetBlock(null, 5).getState() instanceof Sign sign)){
commandSender.sendMessage(ChatColor.RED + "musíš se dívat na cedulku");
return false;
}
sign.setLine(Integer.parseInt(pArgs.get(0))-1, pArgs.get(1));
commandSender.sendMessage(ChatColor.GREEN + "Cedulka upravena");
sign.update();
return false;
}
@Nullable
@Override
public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
return List.of();
}
}

@ -0,0 +1,48 @@
package xyz.mineconomia.mineconomiacore.commands;
import org.bukkit.ChatColor;
import org.bukkit.block.Sign;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import xyz.mineconomia.mineconomiacore.handlers.SignHandler;
import java.util.List;
import static xyz.mineconomia.mineconomiacore.MineconomiaCore.getArgs;
public class setSign implements TabExecutor {
@Override
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
StringBuilder argsString = new StringBuilder();
for (String ss : args) {
argsString.append(ChatColor.translateAlternateColorCodes('&', ss)).append(" ");
}
List<String> pArgs = getArgs(argsString.toString());
if (pArgs.size() != 4){
commandSender.sendMessage(ChatColor.RED + "špatný počet argumentů");
return false;
}
Player player = (Player) commandSender;
if (!(player.getTargetBlock(null, 5).getState() instanceof Sign sign)){
commandSender.sendMessage(ChatColor.RED + "musíš se dívat na cedulku");
return false;
}
SignHandler.changeSignText(sign, pArgs.get(0), pArgs.get(1), pArgs.get(2), pArgs.get(3));
commandSender.sendMessage(ChatColor.GREEN + "Cedulka nastavena");
sign.update();
return false;
}
@Nullable
@Override
public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
return List.of();
}
}

@ -0,0 +1,19 @@
package xyz.mineconomia.mineconomiacore.events;
import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.SignChangeEvent;
import java.util.Objects;
public class signComplete implements Listener {
@EventHandler
public void signCreate(SignChangeEvent event){
for (int i = 0; 4 > i; i++){
event.setLine(i, ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(event.getLine(i))));
}
}
}

@ -0,0 +1,35 @@
package xyz.mineconomia.mineconomiacore.events;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.inventory.EquipmentSlot;
public class toggleFrame implements Listener {
@EventHandler
public void frameToggle(PlayerInteractEntityEvent event){
Entity entity = event.getRightClicked();
Player player = event.getPlayer();
if (entity.getType() != EntityType.ITEM_FRAME){
return;
}
if (!player.isSneaking()){
return;
}
event.setCancelled(true);
if (event.getHand() == EquipmentSlot.OFF_HAND) {
return;
}
ItemFrame itemFrame = (ItemFrame) entity;
itemFrame.setVisible(!itemFrame.isVisible());
player.playSound(itemFrame, Sound.ITEM_HOE_TILL, 100, 1);
player.spawnParticle(Particle.EXPLOSION_NORMAL, itemFrame.getLocation(), 0);
}
}

@ -29,4 +29,8 @@ commands:
spawn: spawn:
description: "na spawn s tebou" description: "na spawn s tebou"
bed: bed:
description: "do postele s tebou" description: "do postele s tebou"
setSign:
description: ""
editSign:
description: ""

Loading…
Cancel
Save