localization system + command handler
This commit is contained in:
parent
8e4bf3dce6
commit
e2c0af909b
2
pom.xml
2
pom.xml
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<groupId>ovh.mxg</groupId>
|
<groupId>ovh.mxg</groupId>
|
||||||
<artifactId>CubeTP</artifactId>
|
<artifactId>CubeTP</artifactId>
|
||||||
<version>1.4.0</version>
|
<version>1.5.0</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>CubeTP</name>
|
<name>CubeTP</name>
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
package ovh.mxg.cubetp;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
public class Command implements CommandExecutor {
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, org.bukkit.command.Command command, String s, String[] strings) {
|
||||||
|
if(sender instanceof Player){
|
||||||
|
Player player = (Player) sender;
|
||||||
|
if(strings.length == 0){
|
||||||
|
try {
|
||||||
|
player.sendMessage(Localization.GetLocal(player, 12));
|
||||||
|
player.sendMessage(Localization.GetLocal(player, 13));
|
||||||
|
player.sendMessage(Localization.GetLocal(player, 14));
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch(strings[0]){
|
||||||
|
case "local":
|
||||||
|
if(strings[1].isEmpty()){
|
||||||
|
try {
|
||||||
|
String lang = Localization.GetPlayerLang(player);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
Localization.UpdatePlayer(player, strings[1]);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,6 +16,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
|
@ -44,7 +45,6 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
||||||
public static Block clickedBlock;
|
public static Block clickedBlock;
|
||||||
public static String curCubeName = "";
|
public static String curCubeName = "";
|
||||||
boolean curCubePrivate = false;
|
boolean curCubePrivate = false;
|
||||||
boolean inCubeTPInventory = false;
|
|
||||||
double curCubeX = 0;
|
double curCubeX = 0;
|
||||||
double curCubeY = 0;
|
double curCubeY = 0;
|
||||||
double curCubeZ = 0;
|
double curCubeZ = 0;
|
||||||
|
@ -61,6 +61,9 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
||||||
reloadConfig();
|
reloadConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Commands
|
||||||
|
getCommand("cubetp").setExecutor(new Command());
|
||||||
|
|
||||||
getLogger().info("Loading config...");
|
getLogger().info("Loading config...");
|
||||||
host = getConfig().getString("CubeTP.sqlHost");
|
host = getConfig().getString("CubeTP.sqlHost");
|
||||||
port = getConfig().getString("CubeTP.sqlPort");
|
port = getConfig().getString("CubeTP.sqlPort");
|
||||||
|
@ -73,6 +76,13 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
||||||
getLogger().info("Enabled!");
|
getLogger().info("Enabled!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void PlayerJoinEvent(PlayerJoinEvent event) throws SQLException {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
if(!Localization.CheckPlayerLocalExists(player)){
|
||||||
|
Localization.AddPlayer(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void PlayerQuitEvent(PlayerQuitEvent event) throws SQLException {
|
public void PlayerQuitEvent(PlayerQuitEvent event) throws SQLException {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
@ -122,7 +132,7 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
||||||
ItemStack mhi = player.getInventory().getItemInMainHand();
|
ItemStack mhi = player.getInventory().getItemInMainHand();
|
||||||
if(mhi.getItemMeta() != null){
|
if(mhi.getItemMeta() != null){
|
||||||
String mainhand = mhi.getItemMeta().getDisplayName();
|
String mainhand = mhi.getItemMeta().getDisplayName();
|
||||||
if(mainhand.equals("Tome de portail")){
|
if(mainhand.equals(Localization.GetLocal(player, 3))){
|
||||||
ShowUIPortal(player);
|
ShowUIPortal(player);
|
||||||
mhi.setAmount(0);
|
mhi.setAmount(0);
|
||||||
}
|
}
|
||||||
|
@ -147,14 +157,14 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
||||||
// register the cube
|
// register the cube
|
||||||
if (e.getRawSlot() == 3){
|
if (e.getRawSlot() == 3){
|
||||||
if(SQL.CheckCubeNameExists(curCubeName)){
|
if(SQL.CheckCubeNameExists(curCubeName)){
|
||||||
p.sendMessage(MessageFormat.format("§bLe cube {0} existe déjà. Changez le nom.", curCubeName));
|
p.sendMessage(MessageFormat.format(Localization.GetLocal(p, 11), curCubeName));
|
||||||
} else {
|
} else {
|
||||||
if(curCubePrivate){
|
if(curCubePrivate){
|
||||||
SQL.AddCube(curCubeName, curCubeX, curCubeY, curCubeZ, p.getUniqueId().toString());
|
SQL.AddCube(curCubeName, curCubeX, curCubeY, curCubeZ, p.getUniqueId().toString());
|
||||||
} else {
|
} else {
|
||||||
SQL.AddCube(curCubeName, curCubeX, curCubeY, curCubeZ, null);
|
SQL.AddCube(curCubeName, curCubeX, curCubeY, curCubeZ, null);
|
||||||
}
|
}
|
||||||
p.sendMessage(MessageFormat.format("§bLe cube {0} a été ajouté.", curCubeName));
|
p.sendMessage(MessageFormat.format(Localization.GetLocal(p, 10), curCubeName));
|
||||||
ShowUI(p);
|
ShowUI(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -164,9 +174,9 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
||||||
Inventory pinv = p.getInventory();
|
Inventory pinv = p.getInventory();
|
||||||
if(HaveBook(p)){
|
if(HaveBook(p)){
|
||||||
TakeBook(p);
|
TakeBook(p);
|
||||||
pinv.addItem(createGuiItem(Material.ENCHANTED_BOOK, "Tome de portail", "Permets d'aller vers un cube, pas de revenir."));
|
pinv.addItem(createGuiItem(Material.ENCHANTED_BOOK, Localization.GetLocal(p, 3), Localization.GetLocal(p, 4)));
|
||||||
} else {
|
} else {
|
||||||
p.sendMessage("§bVous devez posséder un livre pour créer cet objet.");
|
p.sendMessage(Localization.GetLocal(p, 9));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,10 +184,10 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
||||||
if (e.getRawSlot() == 5){
|
if (e.getRawSlot() == 5){
|
||||||
if(SQL.CheckCubeNameExists(curCubeName)){
|
if(SQL.CheckCubeNameExists(curCubeName)){
|
||||||
SQL.DeleteCubeByName(curCubeName);
|
SQL.DeleteCubeByName(curCubeName);
|
||||||
p.sendMessage(MessageFormat.format("§bLe cube {0} a été supprimé.", curCubeName));
|
p.sendMessage(MessageFormat.format(Localization.GetLocal(p, 7), curCubeName));
|
||||||
ShowUI(p);
|
ShowUI(p);
|
||||||
} else {
|
} else {
|
||||||
p.sendMessage(MessageFormat.format("§bLe cube {0} n'existe pas.", curCubeName));
|
p.sendMessage(MessageFormat.format(Localization.GetLocal(p, 6), curCubeName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,12 +282,12 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
||||||
if(player.getBedSpawnLocation() != null){
|
if(player.getBedSpawnLocation() != null){
|
||||||
Location spawnLoc = player.getBedSpawnLocation();
|
Location spawnLoc = player.getBedSpawnLocation();
|
||||||
String loreSp = MessageFormat.format("x{0} y{1} z{2}", spawnLoc.getBlockX(), spawnLoc.getBlockY(), spawnLoc.getBlockZ());
|
String loreSp = MessageFormat.format("x{0} y{1} z{2}", spawnLoc.getBlockX(), spawnLoc.getBlockY(), spawnLoc.getBlockZ());
|
||||||
inv.setItem(slot,createGuiItem(Material.WHITE_WOOL, "Spawn", loreSp));
|
inv.setItem(slot,createGuiItem(Material.WHITE_WOOL, Localization.GetLocal(player, 5), loreSp));
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
if(SQL.CheckDeathExists(player)){
|
if(SQL.CheckDeathExists(player)){
|
||||||
String loreDe = SQL.GenDeathLore(player);
|
String loreDe = SQL.GenDeathLore(player);
|
||||||
inv.setItem(slot,createGuiItem(Material.GRAY_WOOL, "Death", loreDe));
|
inv.setItem(slot,createGuiItem(Material.GRAY_WOOL, Localization.GetLocal(player, 5), loreDe));
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
SQL.connect();
|
SQL.connect();
|
||||||
|
@ -333,9 +343,9 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
||||||
inv.setItem(0,createGuiItem(Material.BLACK_WOOL, " "));
|
inv.setItem(0,createGuiItem(Material.BLACK_WOOL, " "));
|
||||||
inv.setItem(1,createGuiItem(Material.BLACK_WOOL, " "));
|
inv.setItem(1,createGuiItem(Material.BLACK_WOOL, " "));
|
||||||
inv.setItem(2,createGuiItem(Material.BLACK_WOOL, " "));
|
inv.setItem(2,createGuiItem(Material.BLACK_WOOL, " "));
|
||||||
inv.setItem(3,createGuiItem(Material.CYAN_WOOL, "§bEnregistrer", lore01, lore02));
|
inv.setItem(3,createGuiItem(Material.CYAN_WOOL, Localization.GetLocal(player, 1), lore01, lore02));
|
||||||
inv.setItem(4,createGuiItem(Material.CYAN_WOOL, "§bTome de portail"));
|
inv.setItem(4,createGuiItem(Material.CYAN_WOOL, Localization.GetLocal(player, 3)));
|
||||||
inv.setItem(5,createGuiItem(Material.CYAN_WOOL, "§bRetirer"));
|
inv.setItem(5,createGuiItem(Material.CYAN_WOOL, Localization.GetLocal(player, 2)));
|
||||||
inv.setItem(6,createGuiItem(Material.BLACK_WOOL, " "));
|
inv.setItem(6,createGuiItem(Material.BLACK_WOOL, " "));
|
||||||
inv.setItem(7,createGuiItem(Material.BLACK_WOOL, " "));
|
inv.setItem(7,createGuiItem(Material.BLACK_WOOL, " "));
|
||||||
inv.setItem(8,createGuiItem(Material.BLACK_WOOL, " "));
|
inv.setItem(8,createGuiItem(Material.BLACK_WOOL, " "));
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
package ovh.mxg.cubetp;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class Localization {
|
||||||
|
public static String GetLocal(Player player, int lid) throws SQLException {
|
||||||
|
String lang = GetPlayerLang(player);
|
||||||
|
String local = "";
|
||||||
|
SQL.connect();
|
||||||
|
PreparedStatement ps = SQL.getConnection().prepareStatement("SELECT * FROM cubelocal WHERE lid = ? AND lang = ?");
|
||||||
|
ps.setInt(1, lid);
|
||||||
|
ps.setString(2, lang);
|
||||||
|
ResultSet rs = ps.executeQuery();
|
||||||
|
if(rs.next()){
|
||||||
|
local = rs.getString("string");
|
||||||
|
return local;
|
||||||
|
}
|
||||||
|
return local;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String GetPlayerLang(Player player) throws SQLException {
|
||||||
|
String uuid = player.getUniqueId().toString();
|
||||||
|
String lang = "";
|
||||||
|
Location dLoc = null;
|
||||||
|
SQL.connect();
|
||||||
|
PreparedStatement ps = SQL.getConnection().prepareStatement("SELECT * FROM cubeplayer WHERE uuid = ?");
|
||||||
|
ps.setString(1, uuid);
|
||||||
|
ResultSet rs = ps.executeQuery();
|
||||||
|
if(rs.next()){
|
||||||
|
lang = rs.getString("lang");
|
||||||
|
return lang;
|
||||||
|
}
|
||||||
|
return lang;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean CheckPlayerLocalExists(Player player) throws SQLException {
|
||||||
|
String uuid = player.getUniqueId().toString();
|
||||||
|
SQL.connect();
|
||||||
|
PreparedStatement ps = SQL.getConnection().prepareStatement("SELECT * FROM cubeplayer WHERE uuid = ?");
|
||||||
|
ps.setString(1, uuid);
|
||||||
|
ResultSet rs = ps.executeQuery();
|
||||||
|
return rs.next();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddPlayer(Player player) throws SQLException {
|
||||||
|
String uuid = player.getUniqueId().toString();
|
||||||
|
SQL.connect();
|
||||||
|
PreparedStatement ps = SQL.getConnection().prepareStatement("INSERT IGNORE INTO cubeplayer (uuid,lang) VALUES (?,?)");
|
||||||
|
ps.setString(1, uuid);
|
||||||
|
ps.setString(2, "en");
|
||||||
|
ps.executeUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdatePlayer(Player player, String lang) throws SQLException {
|
||||||
|
String uuid = player.getUniqueId().toString();
|
||||||
|
String[] la = {"en", "fr"};
|
||||||
|
if(Arrays.stream(la).noneMatch(lang::equals)){
|
||||||
|
player.sendMessage(Localization.GetLocal(player, 15));
|
||||||
|
} else {
|
||||||
|
SQL.connect();
|
||||||
|
PreparedStatement ps = SQL.getConnection().prepareStatement("UPDATE cubeplayer SET lang = ? WHERE uuid = ?");
|
||||||
|
ps.setString(2, uuid);
|
||||||
|
ps.setString(1, lang);
|
||||||
|
ps.executeUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,6 @@
|
||||||
name: CubeTP
|
name: CubeTP
|
||||||
version: '1.4.0'
|
version: '1.5.0'
|
||||||
main: ovh.mxg.cubetp.CubeTP
|
main: ovh.mxg.cubetp.CubeTP
|
||||||
api-version: '1.20'
|
api-version: '1.20'
|
||||||
|
commands:
|
||||||
|
cubetp:
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
name: CubeTP
|
name: CubeTP
|
||||||
version: '1.4.0'
|
version: '1.5.0'
|
||||||
main: ovh.mxg.cubetp.CubeTP
|
main: ovh.mxg.cubetp.CubeTP
|
||||||
api-version: '1.20'
|
api-version: '1.20'
|
||||||
|
commands:
|
||||||
|
cubetp:
|
||||||
|
|
Loading…
Reference in New Issue