From c8a82fd85886b72ad9c4557d0183bc44a948d46c Mon Sep 17 00:00:00 2001 From: jakub Date: Wed, 16 Oct 2024 22:48:06 +0200 Subject: [PATCH 1/5] =?UTF-8?q?Zapo=C4=8Det=C3=AD=20psan=C3=AD=20db=20funk?= =?UTF-8?q?c=C3=AD=20a=20p=C5=99esun=20n=C4=9Bkter=C3=BDch=20nesouvisej?= =?UTF-8?q?=C3=ADc=C3=ADch=20funkc=C3=AD=20tam=20kam=20pat=C5=99=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/xyz/soukup/mineconomiaCoreV2/core/database.java | 9 +++++++++ .../{core/MsgRetriever.java => tools/LangManager.java} | 5 ++--- .../soukup/mineconomiaCoreV2/{core => tools}/PDC.java | 3 ++- .../soukup/mineconomiaCoreV2}/tools/inventoryTools.java | 2 +- src/main/resources/config.yml | 8 +++++++- 5 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 src/main/java/xyz/soukup/mineconomiaCoreV2/core/database.java rename src/main/java/xyz/soukup/mineconomiaCoreV2/{core/MsgRetriever.java => tools/LangManager.java} (81%) rename src/main/java/xyz/soukup/mineconomiaCoreV2/{core => tools}/PDC.java (96%) rename src/main/java/{ => xyz/soukup/mineconomiaCoreV2}/tools/inventoryTools.java (93%) diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/core/database.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/core/database.java new file mode 100644 index 0000000..7e572a1 --- /dev/null +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/core/database.java @@ -0,0 +1,9 @@ +package xyz.soukup.mineconomiaCoreV2.core; + +import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; + +public class database { + private void createDefaultTables(){ + String database = config.getString(""); + } +} diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/core/MsgRetriever.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/tools/LangManager.java similarity index 81% rename from src/main/java/xyz/soukup/mineconomiaCoreV2/core/MsgRetriever.java rename to src/main/java/xyz/soukup/mineconomiaCoreV2/tools/LangManager.java index 1f001ab..4375fb6 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/core/MsgRetriever.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/tools/LangManager.java @@ -1,12 +1,11 @@ -package xyz.soukup.mineconomiaCoreV2.core; +package xyz.soukup.mineconomiaCoreV2.tools; import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.inventory.Inventory; import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.plugin; -public class MsgRetriever { +public class LangManager { public static YamlConfiguration lang = null; public static void loadLang(){ diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/core/PDC.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/tools/PDC.java similarity index 96% rename from src/main/java/xyz/soukup/mineconomiaCoreV2/core/PDC.java rename to src/main/java/xyz/soukup/mineconomiaCoreV2/tools/PDC.java index 2d76800..9ba160e 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/core/PDC.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/tools/PDC.java @@ -1,4 +1,4 @@ -package xyz.soukup.mineconomiaCoreV2.core; +package xyz.soukup.mineconomiaCoreV2.tools; import org.bukkit.NamespacedKey; import org.bukkit.block.TileState; @@ -6,6 +6,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; +import xyz.soukup.mineconomiaCoreV2.core.sharedValues; //funkce pro lehčí manipulaci s minecraft PDC (trvalé uchovávání dat v entitách, itemech a blocích) public class PDC { diff --git a/src/main/java/tools/inventoryTools.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/tools/inventoryTools.java similarity index 93% rename from src/main/java/tools/inventoryTools.java rename to src/main/java/xyz/soukup/mineconomiaCoreV2/tools/inventoryTools.java index 5d7d431..aeee557 100644 --- a/src/main/java/tools/inventoryTools.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/tools/inventoryTools.java @@ -1,4 +1,4 @@ -package tools; +package xyz.soukup.mineconomiaCoreV2.tools; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 46ccd95..5aa99c5 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,2 +1,8 @@ version: 1.0 -language: "czech.yml" \ No newline at end of file +language: "czech.yml" +database: + host: localhost + port: 3306 + user: mcore + password: mcore + database: mcore \ No newline at end of file From 388a5d86d076a5c2e6a82399dbc1b945a8352a50 Mon Sep 17 00:00:00 2001 From: jakub Date: Thu, 17 Oct 2024 22:29:22 +0200 Subject: [PATCH 2/5] =?UTF-8?q?Rozpracov=C3=A1n=C3=AD=20hibernate=20a=20?= =?UTF-8?q?=C3=BAprava=20n=C4=9Bkter=C3=BDch=20dal=C5=A1=C3=ADch=20=C4=8D?= =?UTF-8?q?=C3=A1st=C3=AD=20kodu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 28 ++++ .../mineconomiaCoreV2/MineconomiaCoreV2.java | 14 +- .../mineconomiaCoreV2/core/database.java | 9 -- .../mineconomiaCoreV2/core/sharedValues.java | 4 +- .../database/HibernateUtil.java | 132 ++++++++++++++++++ .../database/PlayerDataDatabase.java | 16 +++ .../database/PlayerInit.java | 5 + .../variables/PlayerData.java | 61 ++++++++ 8 files changed, 257 insertions(+), 12 deletions(-) delete mode 100644 src/main/java/xyz/soukup/mineconomiaCoreV2/core/database.java create mode 100644 src/main/java/xyz/soukup/mineconomiaCoreV2/database/HibernateUtil.java create mode 100644 src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerDataDatabase.java create mode 100644 src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerInit.java create mode 100644 src/main/java/xyz/soukup/mineconomiaCoreV2/variables/PlayerData.java diff --git a/pom.xml b/pom.xml index 9cc5baf..64e4e4a 100644 --- a/pom.xml +++ b/pom.xml @@ -68,5 +68,33 @@ 1.21.1-R0.1-SNAPSHOT provided + + + + org.hibernate + hibernate-core + 6.6.1.Final + + + + + mysql + mysql-connector-java + 8.0.33 + + + + + jakarta.persistence + jakarta.persistence-api + 3.0.0 + + + + + org.hibernate.common + hibernate-commons-annotations + 5.1.2.Final + diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java index be4ffea..3b42113 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java @@ -2,17 +2,23 @@ package xyz.soukup.mineconomiaCoreV2; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; +import xyz.soukup.mineconomiaCoreV2.database.HibernateUtil; import xyz.soukup.mineconomiaCoreV2.tractor.giveTractorCommand; import java.util.Objects; +import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.plugin; + public final class MineconomiaCoreV2 extends JavaPlugin { - MineconomiaCoreV2 plugin = getPlugin(this.getClass()); + private static MineconomiaCoreV2 instance; + + @Override public void onEnable() { // Plugin startup logic + instance = this; getLogger().info("STARTING MINECONOMIA CORE"); - plugin.saveConfig(); + plugin.saveDefaultConfig(); // Tractor registration Objects.requireNonNull(plugin.getCommand("tractor")).setExecutor(new giveTractorCommand()); @@ -25,6 +31,10 @@ public final class MineconomiaCoreV2 extends JavaPlugin { @Override public void onDisable() { // Plugin shutdown logic + HibernateUtil.shutdown(); } + public static MineconomiaCoreV2 getInstance() { + return instance; + } } diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/core/database.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/core/database.java deleted file mode 100644 index 7e572a1..0000000 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/core/database.java +++ /dev/null @@ -1,9 +0,0 @@ -package xyz.soukup.mineconomiaCoreV2.core; - -import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; - -public class database { - private void createDefaultTables(){ - String database = config.getString(""); - } -} diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/core/sharedValues.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/core/sharedValues.java index 989729a..3178e29 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/core/sharedValues.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/core/sharedValues.java @@ -1,12 +1,14 @@ package xyz.soukup.mineconomiaCoreV2.core; +import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.plugin.java.JavaPlugin; import xyz.soukup.mineconomiaCoreV2.MineconomiaCoreV2; import java.util.logging.Logger; public class sharedValues { - public static MineconomiaCoreV2 plugin = MineconomiaCoreV2.getPlugin(MineconomiaCoreV2.class); + public static MineconomiaCoreV2 plugin = MineconomiaCoreV2.getInstance(); public static FileConfiguration config = plugin.getConfig(); public static Logger logger = plugin.getLogger(); } diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/database/HibernateUtil.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/HibernateUtil.java new file mode 100644 index 0000000..ec56c4b --- /dev/null +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/HibernateUtil.java @@ -0,0 +1,132 @@ +package xyz.soukup.mineconomiaCoreV2.database; + +import jakarta.persistence.Query; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import org.bukkit.scoreboard.Criteria; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.boot.MetadataSources; +import org.hibernate.boot.model.internal.QueryBinder; +import org.hibernate.boot.registry.StandardServiceRegistry; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import xyz.soukup.mineconomiaCoreV2.core.sharedValues; +import xyz.soukup.mineconomiaCoreV2.variables.PlayerData; + +import java.util.List; +import java.util.Objects; +import java.util.Properties; + +import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; +import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.logger; + +public class HibernateUtil { + private static SessionFactory sessionFactory; + + static { + + try { + + StandardServiceRegistry registry = new StandardServiceRegistryBuilder() + .applySettings(getHibernateProperties()) + .build(); + + sessionFactory = new MetadataSources(registry) + .addAnnotatedClass(PlayerData.class) + .buildMetadata() + .buildSessionFactory(); + + } catch (Exception e) { + + sharedValues.logger.warning(e.toString()); + + if (sessionFactory != null) { + sessionFactory.close(); + } + + } + } + + + private static Properties getHibernateProperties() { + + String host = config.getString("database.host"); + String port = config.getString("database.port"); + String user = config.getString("database.user"); + String password = config.getString("database.password"); + String database = config.getString("database.database"); + + String jdbcString = "jdbc:mysql://" + host + ":" + port + "/" + database; + + Properties properties = new Properties(); + properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); + properties.put("hibernate.connection.driver_class", "com.mysql.cj.jdbc.Driver"); + properties.put("hibernate.connection.url", jdbcString); + properties.put("hibernate.connection.username", user); + properties.put("hibernate.connection.password", password); + properties.put("hibernate.hbm2ddl.auto", "update"); + properties.put("hibernate.show_sql", "true"); + return properties; + } + + + public static SessionFactory getSessionFactory() { + return sessionFactory; + } + + public static Session newSession(){ + return getSessionFactory().openSession(); + } + + public static void shutdown() { + if (sessionFactory != null) { + sessionFactory.close(); + } + } + + + public static void saveToDatabase(Object object){ + + Session session = HibernateUtil.newSession(); + Transaction transaction = null; + + try { + + transaction = session.beginTransaction(); + session.persist(object); + transaction.commit(); + session.close(); + + }catch (Exception e){ + + if (transaction != null) { + transaction.rollback(); // Rollback if something goes wrong + } + + logger.warning(e.toString()); + } + } + + /* NEFUNKČNÍ NECHAT ZATÍM + public static List executeQuery(Query query){ + Session session = HibernateUtil.newSession(); + Transaction transaction = null; + try { + + transaction = session.beginTransaction(); + List list = query.getResultList(); + session.close(); + return list; + + }catch (Exception e){ + + if (transaction != null) { + transaction.rollback(); // Rollback if something goes wrong + } + + logger.warning(e.toString()); + } + return null; + }*/ +} diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerDataDatabase.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerDataDatabase.java new file mode 100644 index 0000000..9ab500b --- /dev/null +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerDataDatabase.java @@ -0,0 +1,16 @@ +package xyz.soukup.mineconomiaCoreV2.database; + +import xyz.soukup.mineconomiaCoreV2.variables.PlayerData; + + +public class PlayerDataDatabase { + + public static void savePlayerDataToDatabase(PlayerData playerData){ + HibernateUtil.saveToDatabase(playerData); + } + + public static PlayerData getPlayerDataFromDatabase(String nickname){ + + } + +} diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerInit.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerInit.java new file mode 100644 index 0000000..3232d21 --- /dev/null +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerInit.java @@ -0,0 +1,5 @@ +package xyz.soukup.mineconomiaCoreV2.database; + +public class PlayerInit { + public static void onJoin(){} +} diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/variables/PlayerData.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/variables/PlayerData.java new file mode 100644 index 0000000..5d80eb3 --- /dev/null +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/variables/PlayerData.java @@ -0,0 +1,61 @@ +package xyz.soukup.mineconomiaCoreV2.variables; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +//Definování Member classy pro databázi a další manipulace + +@Entity +public class PlayerData { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int id; + + private String nickname; + private String uuid; + private int online; + private float money; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public int getOnline() { + return online; + } + + public void setOnline(int online) { + this.online = online; + } + + public float getMoney() { + return money; + } + + public void setMoney(float money) { + this.money = money; + } +} From d7134f48bc2551b9ffe3b5ef1666ee5d46f00e32 Mon Sep 17 00:00:00 2001 From: jakub Date: Fri, 18 Oct 2024 07:56:12 +0200 Subject: [PATCH 3/5] =?UTF-8?q?rozpracov=C3=A1=C3=AD=20funkce=20pro=20z?= =?UTF-8?q?=C3=ADsk=C3=A1n=C3=AD=20dat=20o=20hr=C3=A1=C4=8Di=20z=20datab?= =?UTF-8?q?=C3=A1ze?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../database/HibernateUtil.java | 19 ------------------- .../database/PlayerDataDatabase.java | 4 +++- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/database/HibernateUtil.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/HibernateUtil.java index ec56c4b..37c531c 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/database/HibernateUtil.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/HibernateUtil.java @@ -108,25 +108,6 @@ public class HibernateUtil { } } - /* NEFUNKČNÍ NECHAT ZATÍM - public static List executeQuery(Query query){ - Session session = HibernateUtil.newSession(); - Transaction transaction = null; - try { - transaction = session.beginTransaction(); - List list = query.getResultList(); - session.close(); - return list; - - }catch (Exception e){ - if (transaction != null) { - transaction.rollback(); // Rollback if something goes wrong - } - - logger.warning(e.toString()); - } - return null; - }*/ } diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerDataDatabase.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerDataDatabase.java index 9ab500b..8f507f5 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerDataDatabase.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/database/PlayerDataDatabase.java @@ -1,5 +1,6 @@ package xyz.soukup.mineconomiaCoreV2.database; +import jakarta.persistence.criteria.CriteriaBuilder; import xyz.soukup.mineconomiaCoreV2.variables.PlayerData; @@ -10,7 +11,8 @@ public class PlayerDataDatabase { } public static PlayerData getPlayerDataFromDatabase(String nickname){ - + CriteriaBuilder criteriaBuilder = HibernateUtil.newSession().getCriteriaBuilder(); + return null; } } From 2f64f05ce8829d1ef224928c28bc3a083f2f7273 Mon Sep 17 00:00:00 2001 From: Gioth8281 Date: Fri, 18 Oct 2024 09:48:01 +0200 Subject: [PATCH 4/5] =?UTF-8?q?Vytvo=C5=99ena=20getItemCount=20funkce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/commands/tabCompleter.java | 33 +++++++++++++ src/main/java/commands/teleportWorld.java | 49 +++++++++++++++++++ .../mineconomiaCoreV2/MineconomiaCoreV2.java | 5 +- src/main/resources/plugin.yml | 3 ++ 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 src/main/java/commands/tabCompleter.java create mode 100644 src/main/java/commands/teleportWorld.java diff --git a/src/main/java/commands/tabCompleter.java b/src/main/java/commands/tabCompleter.java new file mode 100644 index 0000000..c0dc01c --- /dev/null +++ b/src/main/java/commands/tabCompleter.java @@ -0,0 +1,33 @@ +package commands; + +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +public class tabCompleter implements TabCompleter { + + @Override + public List onTabComplete(CommandSender commandSender, Command command, String s, String[] strings) { + List completions = new ArrayList<>(); + + if (command.getName().equalsIgnoreCase("tpw") && commandSender.isOp()) { + if (strings.length == 0) { + for (World world : Bukkit.getWorlds()) { + completions.add(world.getName()); + } + } else if (strings.length == 1) { + for (Player player : Bukkit.getOnlinePlayers()) { + completions.add(player.getName()); + } + } + } + + return completions; + } +} diff --git a/src/main/java/commands/teleportWorld.java b/src/main/java/commands/teleportWorld.java new file mode 100644 index 0000000..3ec5923 --- /dev/null +++ b/src/main/java/commands/teleportWorld.java @@ -0,0 +1,49 @@ +package commands; + +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class teleportWorld implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { + if (commandSender instanceof Player) { + + Player player = (Player) commandSender; + + if (!player.isOp() || strings.length == 0) { + return false; + } + + World world = Bukkit.getWorld(strings[0]); + World playerWorld = player.getWorld(); + + if (playerWorld.equals(world)) { + player.sendMessage("You are already in this world!"); // Edit + return false; + } + + if (strings.length > 2) { + try { + Player targetPlayer = Bukkit.getPlayer(strings[1]); + + targetPlayer.teleport(world.getSpawnLocation()); + targetPlayer.sendMessage(String.format("Successfully teleported %s from %s to %s.", targetPlayer, playerWorld, world)); // Edit + return true; + } catch (Exception e) { + player.sendMessage("This is not a valid player!"); + } + } + + + player.teleport(world.getSpawnLocation()); + player.sendMessage(String.format("Successfully teleported from %s to %s.", playerWorld, world)); // Edit + return true; + } + return false; + } +} diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java index bbc1af4..c77ff03 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java @@ -1,5 +1,6 @@ package xyz.soukup.mineconomiaCoreV2; +import commands.tabCompleter; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; import xyz.soukup.mineconomiaCoreV2.tractor.giveTractorCommand; @@ -14,9 +15,11 @@ public final class MineconomiaCoreV2 extends JavaPlugin { getLogger().info("STARTING MINECONOMIA CORE"); plugin.saveConfig(); - //tractor registration + // Tractor registration Objects.requireNonNull(plugin.getCommand("tractor")).setExecutor(new giveTractorCommand()); + // TPW registration + this.getCommand("tpw").setTabCompleter(new tabCompleter()); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b1c2bf9..138d385 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,5 +3,8 @@ version: '1.0-SNAPSHOT' main: xyz.soukup.mineconomiaCoreV2.MineconomiaCoreV2 api-version: '1.21' commands: + tpw: + description: "Teleportuje tě do jiného světa" + usage: / tractor: description: "blieat" From 755e3a910d0bfda57b24e17b213b01017241b35d Mon Sep 17 00:00:00 2001 From: Gioth8281 Date: Fri, 18 Oct 2024 10:47:30 +0200 Subject: [PATCH 5/5] =?UTF-8?q?Vytvo=C5=99en=20command=20kter=C3=BD=20p?= =?UTF-8?q?=C5=99esune=20OP=20hr=C3=A1=C4=8De=20do=20jin=C3=A9ho=20sv?= =?UTF-8?q?=C4=9Bta.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/commands/tabCompleter.java | 4 +-- src/main/java/commands/teleportWorld.java | 27 ++++++++++++++----- .../mineconomiaCoreV2/MineconomiaCoreV2.java | 2 ++ src/main/resources/plugin.yml | 2 +- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/main/java/commands/tabCompleter.java b/src/main/java/commands/tabCompleter.java index c0dc01c..1f86e88 100644 --- a/src/main/java/commands/tabCompleter.java +++ b/src/main/java/commands/tabCompleter.java @@ -17,11 +17,11 @@ public class tabCompleter implements TabCompleter { List completions = new ArrayList<>(); if (command.getName().equalsIgnoreCase("tpw") && commandSender.isOp()) { - if (strings.length == 0) { + if (strings.length == 1) { for (World world : Bukkit.getWorlds()) { completions.add(world.getName()); } - } else if (strings.length == 1) { + } else if (strings.length == 2) { for (Player player : Bukkit.getOnlinePlayers()) { completions.add(player.getName()); } diff --git a/src/main/java/commands/teleportWorld.java b/src/main/java/commands/teleportWorld.java index 3ec5923..9bb51b9 100644 --- a/src/main/java/commands/teleportWorld.java +++ b/src/main/java/commands/teleportWorld.java @@ -9,6 +9,7 @@ import org.bukkit.entity.Player; public class teleportWorld implements CommandExecutor { + // Teleports player with OP to another world. @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { if (commandSender instanceof Player) { @@ -20,28 +21,40 @@ public class teleportWorld implements CommandExecutor { } World world = Bukkit.getWorld(strings[0]); - World playerWorld = player.getWorld(); - if (playerWorld.equals(world)) { - player.sendMessage("You are already in this world!"); // Edit - return false; + if (world == null) { + player.sendMessage("This is not a valid world!"); + return true; } - if (strings.length > 2) { + if (strings.length > 1) { try { Player targetPlayer = Bukkit.getPlayer(strings[1]); + World targetPlayerWorld = targetPlayer.getWorld(); + + if (targetPlayerWorld.equals(world)) { + player.sendMessage(String.format("Player %s is already in this world!", strings[1])); + return true; + } targetPlayer.teleport(world.getSpawnLocation()); - targetPlayer.sendMessage(String.format("Successfully teleported %s from %s to %s.", targetPlayer, playerWorld, world)); // Edit + targetPlayer.sendMessage(String.format("Successfully teleported %s from %s to %s.", strings[1], targetPlayerWorld.getName(), world.getName())); return true; } catch (Exception e) { player.sendMessage("This is not a valid player!"); + return true; } } + World playerWorld = player.getWorld(); + + if (playerWorld.equals(world)) { + player.sendMessage("You are already in this world!"); + return true; + } player.teleport(world.getSpawnLocation()); - player.sendMessage(String.format("Successfully teleported from %s to %s.", playerWorld, world)); // Edit + player.sendMessage(String.format("Successfully teleported from %s to %s.", playerWorld.getName(), world.getName())); return true; } return false; diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java index ad8090a..d295e3b 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java @@ -1,6 +1,7 @@ package xyz.soukup.mineconomiaCoreV2; import commands.tabCompleter; +import commands.teleportWorld; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; import xyz.soukup.mineconomiaCoreV2.database.HibernateUtil; @@ -25,6 +26,7 @@ public final class MineconomiaCoreV2 extends JavaPlugin { Objects.requireNonNull(plugin.getCommand("tractor")).setExecutor(new giveTractorCommand()); // TPW registration + this.getCommand("tpw").setExecutor(new teleportWorld()); this.getCommand("tpw").setTabCompleter(new tabCompleter()); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 138d385..7786bc5 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,6 +5,6 @@ api-version: '1.21' commands: tpw: description: "Teleportuje tě do jiného světa" - usage: / + usage: / [arguments] tractor: description: "blieat"