Merge remote-tracking branch 'origin/napojeni-database' #14

Merged
jakub merged 1 commits from lang-manager into master 1 year ago
  1. 10
      pom.xml
  2. 19
      src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java
  3. 2
      src/main/java/xyz/soukup/mineconomiaCoreV2/commands/tabCompleter.java
  4. 20
      src/main/java/xyz/soukup/mineconomiaCoreV2/commands/teleportWorld.java
  5. 141
      src/main/java/xyz/soukup/mineconomiaCoreV2/tools/LangManager.java
  6. 10
      src/main/resources/lang/czech.yml

@ -59,6 +59,10 @@
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
@ -68,7 +72,11 @@
<version>1.21.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.MatrixCreations</groupId>
<artifactId>MatrixColorAPI</artifactId>
<version>v1.0.7</version>
</dependency>
<dependency>
<groupId>com.j256.ormlite</groupId>
<artifactId>ormlite-core</artifactId>

@ -1,16 +1,18 @@
package xyz.soukup.mineconomiaCoreV2;
import commands.tabCompleter;
import commands.teleportWorld;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.InvalidConfigurationException;
import xyz.soukup.mineconomiaCoreV2.commands.tabCompleter;
import xyz.soukup.mineconomiaCoreV2.commands.teleportWorld;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import xyz.soukup.mineconomiaCoreV2.database.DatabaseUtil;
import xyz.soukup.mineconomiaCoreV2.events.PlayerInit;
import xyz.soukup.mineconomiaCoreV2.tools.LangManager;
import xyz.soukup.mineconomiaCoreV2.tractor.giveTractorCommand;
import xyz.soukup.mineconomiaCoreV2.variables.PlayerData;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Objects;
@ -27,9 +29,16 @@ public final class MineconomiaCoreV2 extends JavaPlugin {
public void onEnable() {
// Plugin startup logic
instance = this;
getLogger().info("STARTING MINECONOMIA CORE");
plugin.saveDefaultConfig();
try {
LangManager.initLangManager();
} catch (IOException | InvalidConfigurationException e) {
throw new RuntimeException(e);
}
PluginManager pluginManager = getServer().getPluginManager();
@ -46,8 +55,8 @@ 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());
Objects.requireNonNull(this.getCommand("tpw")).setExecutor(new teleportWorld());
Objects.requireNonNull(this.getCommand("tpw")).setTabCompleter(new tabCompleter());

@ -1,4 +1,4 @@
package commands;
package xyz.soukup.mineconomiaCoreV2.commands;
import org.bukkit.Bukkit;
import org.bukkit.World;

@ -1,11 +1,15 @@
package commands;
package xyz.soukup.mineconomiaCoreV2.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.configuration.InvalidConfigurationException;
import org.bukkit.entity.Player;
import xyz.soukup.mineconomiaCoreV2.tools.LangManager;
import java.io.IOException;
public class teleportWorld implements CommandExecutor {
@ -23,7 +27,9 @@ public class teleportWorld implements CommandExecutor {
World world = Bukkit.getWorld(strings[0]);
if (world == null) {
player.sendMessage("This is not a valid world!");
LangManager.message(commandSender, "error.command.tpw.invalid-world");
return true;
}
@ -33,15 +39,15 @@ public class teleportWorld implements CommandExecutor {
World targetPlayerWorld = targetPlayer.getWorld();
if (targetPlayerWorld.equals(world)) {
player.sendMessage(String.format("Player %s is already in this world!", strings[1]));
LangManager.message(commandSender, "error.command.tpw.already-in-world", strings[1]);
return true;
}
targetPlayer.teleport(world.getSpawnLocation());
targetPlayer.sendMessage(String.format("Successfully teleported %s from %s to %s.", strings[1], targetPlayerWorld.getName(), world.getName()));
LangManager.message(commandSender, "success.command.tpw.teleported", strings[1], targetPlayerWorld.getName(), world.getName());
return true;
} catch (Exception e) {
player.sendMessage("This is not a valid player!");
LangManager.message(commandSender, "error.command.invalid-player");
return true;
}
}
@ -49,12 +55,12 @@ public class teleportWorld implements CommandExecutor {
World playerWorld = player.getWorld();
if (playerWorld.equals(world)) {
player.sendMessage("You are already in this world!");
LangManager.message(commandSender, "error.command.tpw.already-in-world-self");
return true;
}
player.teleport(world.getSpawnLocation());
player.sendMessage(String.format("Successfully teleported from %s to %s.", playerWorld.getName(), world.getName()));
LangManager.message(commandSender, "success.command.tpw.teleported-self", playerWorld.getName(), world.getName());
return true;
}
return false;

@ -1,16 +1,145 @@
package xyz.soukup.mineconomiaCoreV2.tools;
import net.matrixcreations.libraries.MatrixColorAPI;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config;
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.plugin;
import java.io.File;
import java.io.IOException;
import java.util.List;
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.*;
public class LangManager {
public static YamlConfiguration lang = null;
public static void loadLang(){
String langPath = "lang/" + config.getString("lang");
plugin.saveResource(langPath, false);
//lang = YamlConfiguration.loadConfiguration(plugin.getResource(langPath));
private static FileConfiguration langConfig;
//Replace references and colorize retrieved string
public static String get(String key){
return MatrixColorAPI.process(retrieveString(key));
}
public static String get(String key, String s1){
return MatrixColorAPI.process(retrieveString(key).replace("%s1", s1));
}
public static String get(String key, String s1, String s2) {
return MatrixColorAPI.process(retrieveString(key).replace("%s1", s1).replace("%s2", s2));
}
public static String get(String key, String s1, String s2, String s3) {
return MatrixColorAPI.process(retrieveString(key).replace("%s1", s1).replace("%s2", s2).replace("%s3", s3));
}
//Info into server console
public static void info(String key){
logger.info(ChatColor.stripColor(get(key)));
}
public static void info(String key, String s1){
logger.info(ChatColor.stripColor(get(key, s1)));
}
public static void info(String key, String s1, String s2){
logger.info(ChatColor.stripColor(get(key, s1, s2)));
}
public static void info(String key, String s1, String s2, String s3){
logger.info(ChatColor.stripColor(get(key, s1, s2, s3)));
}
//Warning into server console
public static void warning(String key){
logger.warning(ChatColor.stripColor(get(key)));
}
public static void warning(String key, String s1){
logger.warning(ChatColor.stripColor(get(key, s1)));
}
public static void warning(String key, String s1, String s2){
logger.warning(ChatColor.stripColor(get(key, s1, s2)));
}
public static void warning(String key, String s1, String s2, String s3){
logger.warning(ChatColor.stripColor(get(key, s1, s2, s3)));
}
//Message to player
public static void message(CommandSender commandSender, String key){
commandSender.sendMessage(get(key));
}
public static void message(CommandSender commandSender, String key, String s1){
commandSender.sendMessage(get(key, s1));
}
public static void message(CommandSender commandSender, String key, String s1, String s2) {
commandSender.sendMessage(get(key, s1, s2));
}
public static void message(CommandSender commandSender, String key, String s1, String s2, String s3) {
commandSender.sendMessage(get(key, s1, s2, s3));
}
private static String retrieveString(String key) {
Object value = langConfig.get(key);
if (value == null){
return key;
}
if(value instanceof String){
return (String) value;
}
if (value instanceof List){
List<String> stringList = (List<String>) value;
StringBuilder result = new StringBuilder();
boolean isFirst = true;
for (String s : stringList){
if(!isFirst){
result.append("\n");
}
result.append(s);
isFirst = false;
}
return result.toString();
}
return key;
}
public static void initLangManager() throws IOException, InvalidConfigurationException {
if (langConfig != null){
return;
}
String selectedLang = config.getString("language");
File langFile = new File(plugin.getDataFolder(), "lang/" + selectedLang);
if (!langFile.exists()) {
langFile.getParentFile().mkdirs();
plugin.saveResource("lang/" + selectedLang, false);
}
langConfig = new YamlConfiguration();
langConfig.load(langFile);
}
}

@ -4,3 +4,13 @@ error:
not-console: "&cPříkaz může použít jen konzole!"
wrong-argument-count: "&cNesprávný počet parametrů!"
no-permissions: "&cNemáš oprávnění!"
invalid-player: "&cTento hráč neexistuje!"
tpw:
invalid-world: "&cTento svět neexistuje!"
already-in-world-self: "&cJiž jsi v tomto světě"
already-in-world: "&6%s1 &cjiž je v tomto světě"
success:
command:
tpw:
teleported: "&2%s1 &abyl úspěšně teleportován z &2%s2 &ado &2%s3"
teleported-self: "&aÚspěšně si se teleportoval z &2%s1 &ado &2%s2"
Loading…
Cancel
Save