From a14b794f4e02b18185922ffc777bf8770e621540 Mon Sep 17 00:00:00 2001 From: joethei Date: Thu, 13 Apr 2017 15:56:55 +0200 Subject: [PATCH] + added RabbitMQ integration --- Commons.iml | 6 +- pom.xml | 10 +- .ci/settings.xml => settings.xml | 0 .../java/eu/univento/commons/Commons.java | 12 +-- .../commons/database/DatabaseManager.java | 6 +- .../eu/univento/commons/database/MongoDB.java | 2 +- .../eu/univento/commons/database/MySQL.java | 2 +- .../commons/messaging/MessagingManager.java | 26 +++++ .../univento/commons/messaging/RabbitMQ.java | 26 +++++ .../commons/player/DatabasePlayer.java | 98 +++++++++---------- .../commons/player/profiles/Profile.java | 68 ------------- .../commons/player/profiles/Save.java | 38 ------- .../commons/player/profiles/StoryItem.java | 33 ------- .../commons/security/SecurityHandler.java | 46 --------- src/main/resources/config.properties | 7 +- src/main/resources/language.properties | 4 - src/main/resources/language_de.properties | 56 ----------- .../java/eu/univento/commons/CommonsTest.java | 1 - 18 files changed, 122 insertions(+), 319 deletions(-) rename .ci/settings.xml => settings.xml (100%) create mode 100644 src/main/java/eu/univento/commons/messaging/MessagingManager.java create mode 100644 src/main/java/eu/univento/commons/messaging/RabbitMQ.java delete mode 100644 src/main/java/eu/univento/commons/player/profiles/Profile.java delete mode 100644 src/main/java/eu/univento/commons/player/profiles/Save.java delete mode 100644 src/main/java/eu/univento/commons/player/profiles/StoryItem.java delete mode 100644 src/main/java/eu/univento/commons/security/SecurityHandler.java delete mode 100644 src/main/resources/language.properties delete mode 100644 src/main/resources/language_de.properties diff --git a/Commons.iml b/Commons.iml index 5045962..d2bd4a9 100644 --- a/Commons.iml +++ b/Commons.iml @@ -41,15 +41,13 @@ + + - - - - diff --git a/pom.xml b/pom.xml index d384c65..37f5f10 100644 --- a/pom.xml +++ b/pom.xml @@ -78,6 +78,11 @@ vertx-mongo-client 3.4.1 + + io.vertx + vertx-rabbitmq-client + 3.4.1 + com.google.code.gson gson @@ -103,11 +108,6 @@ commons-io 2.5 - - org.apache.httpcomponents - httpclient - 4.5.2 - joda-time joda-time diff --git a/.ci/settings.xml b/settings.xml similarity index 100% rename from .ci/settings.xml rename to settings.xml diff --git a/src/main/java/eu/univento/commons/Commons.java b/src/main/java/eu/univento/commons/Commons.java index 9be0696..73a3029 100644 --- a/src/main/java/eu/univento/commons/Commons.java +++ b/src/main/java/eu/univento/commons/Commons.java @@ -3,7 +3,7 @@ package eu.univento.commons; import eu.univento.commons.configuration.ConfigurationHandler; import eu.univento.commons.database.DatabaseManager; import eu.univento.commons.logging.LoggingHandler; -import eu.univento.commons.security.SecurityHandler; +import eu.univento.commons.messaging.MessagingManager; import io.vertx.core.Vertx; import lombok.Getter; @@ -18,18 +18,18 @@ public class Commons { private static Commons commons; private DatabaseManager databaseManager; + private MessagingManager messagingManager; private ConfigurationHandler configurationHandler; - private SecurityHandler securityHandler; private LoggingHandler loggingHandler; private Vertx vertx; public Commons() { commons = this; - configurationHandler = new ConfigurationHandler(); - databaseManager = new DatabaseManager(this); - securityHandler = new SecurityHandler(this); - loggingHandler = new LoggingHandler(); vertx = Vertx.vertx(); + configurationHandler = new ConfigurationHandler(); + databaseManager = new DatabaseManager(); + messagingManager = new MessagingManager(); + loggingHandler = new LoggingHandler(); } public void shutdown() { diff --git a/src/main/java/eu/univento/commons/database/DatabaseManager.java b/src/main/java/eu/univento/commons/database/DatabaseManager.java index fe307f2..1704926 100644 --- a/src/main/java/eu/univento/commons/database/DatabaseManager.java +++ b/src/main/java/eu/univento/commons/database/DatabaseManager.java @@ -18,10 +18,10 @@ public class DatabaseManager { private MySQL mySQL; private Redis redis; - public DatabaseManager(Commons commons) { - ConfigurationHandler config = commons.getConfigurationHandler(); + public DatabaseManager() { + ConfigurationHandler config = Commons.getCommons().getConfigurationHandler(); mongoDB = new MongoDB(config.getString("MongoDB.Host"), config.getInteger("MongoDB.Port"), config.getString("MongoDB.Username"), config.getString("MongoDB.Password"), config.getString("MongoDB.Database")); - mySQL = new MySQL(config.getString("MySQL.Host"), config.getString("MySQL.Port"), config.getString("MySQL.Database"), config.getString("MySQL.Username"), config.getString("MySQL.Password")); + mySQL = new MySQL(config.getString("MySQL.Host"), config.getInteger("MySQL.Port"), config.getString("MySQL.Database"), config.getString("MySQL.Username"), config.getString("MySQL.Password")); redis = new Redis(config.getString("Redis.Hostname"), config.getInteger("Redis.Port"), config.getString("Redis.Password")); } diff --git a/src/main/java/eu/univento/commons/database/MongoDB.java b/src/main/java/eu/univento/commons/database/MongoDB.java index 79f7b4f..bac716c 100644 --- a/src/main/java/eu/univento/commons/database/MongoDB.java +++ b/src/main/java/eu/univento/commons/database/MongoDB.java @@ -15,7 +15,7 @@ public class MongoDB { public MongoDB(String host, int port, String username, String password, String databaseName) { client = MongoClient.createShared(Commons.getCommons().getVertx(), - new JsonObject().put("host", host).put("port", port).put("username", username).put("password", password).put("authSource", databaseName)); + new JsonObject().put("host", host).put("port", port).put("username", username).put("password", password).put("db_name", databaseName)); } } \ No newline at end of file diff --git a/src/main/java/eu/univento/commons/database/MySQL.java b/src/main/java/eu/univento/commons/database/MySQL.java index 815aaca..718bbdf 100644 --- a/src/main/java/eu/univento/commons/database/MySQL.java +++ b/src/main/java/eu/univento/commons/database/MySQL.java @@ -14,7 +14,7 @@ public class MySQL { @Getter private AsyncSQLClient client; - public MySQL(String hostname, String port, String database, String username, String password) { + public MySQL(String hostname, int port, String database, String username, String password) { client = MySQLClient.createShared(Commons.getCommons().getVertx(), new JsonObject().put("host", hostname).put("port", port).put("username", username).put("password", password).put("database", database)); } diff --git a/src/main/java/eu/univento/commons/messaging/MessagingManager.java b/src/main/java/eu/univento/commons/messaging/MessagingManager.java new file mode 100644 index 0000000..274d4c2 --- /dev/null +++ b/src/main/java/eu/univento/commons/messaging/MessagingManager.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + +package eu.univento.commons.messaging; + +import eu.univento.commons.Commons; +import eu.univento.commons.configuration.ConfigurationHandler; +import lombok.Getter; + +/** + * @author joethei + * @version 0.1 + */ +public class MessagingManager { + + @Getter + private RabbitMQ rabbitMQ; + + public MessagingManager() { + ConfigurationHandler config = Commons.getCommons().getConfigurationHandler(); + rabbitMQ = new RabbitMQ(config.getString("RabbitMQ.Host"), config.getInteger("RabbitMQ.Port"), + config.getString("RabbitMQ.Username"), config.getString("RabbitMQ.Password"), config.getString("RabbitMQ.VirtualHost")); + } +} \ No newline at end of file diff --git a/src/main/java/eu/univento/commons/messaging/RabbitMQ.java b/src/main/java/eu/univento/commons/messaging/RabbitMQ.java new file mode 100644 index 0000000..9cb191f --- /dev/null +++ b/src/main/java/eu/univento/commons/messaging/RabbitMQ.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + +package eu.univento.commons.messaging; + +import eu.univento.commons.Commons; +import io.vertx.core.json.JsonObject; +import io.vertx.rabbitmq.RabbitMQClient; +import lombok.Getter; + +/** + * @author joethei + * @version 0.1 + */ +public class RabbitMQ { + + @Getter private RabbitMQClient client; + + public RabbitMQ(String host, int port, String user, String password, String virtualHost) { + JsonObject config = new JsonObject().put("host", host).put("port", port).put("user", user).put("password", password).put("virtualHost", virtualHost).put("connectionTimeout", 60) + .put("requestedHeartbeat", 60).put("handshakeTimeout", 60).put("requestedChannelMax", 5).put("networkRecoveryInterval", 5).put("automaticRecoveryEnabled", true); + client = RabbitMQClient.create(Commons.getCommons().getVertx(), config); + } +} \ No newline at end of file diff --git a/src/main/java/eu/univento/commons/player/DatabasePlayer.java b/src/main/java/eu/univento/commons/player/DatabasePlayer.java index f1a176a..de80ceb 100644 --- a/src/main/java/eu/univento/commons/player/DatabasePlayer.java +++ b/src/main/java/eu/univento/commons/player/DatabasePlayer.java @@ -35,28 +35,35 @@ public class DatabasePlayer { private UUID uuid; private String name; + private Rank rank; + private PlayerSettings settings; + private boolean muted; + public DatabasePlayer(UUID uuid, String name) { this.uuid = uuid; this.name = name; } - private PlayerSettings settings; - public PlayerSettings getSettings() { - if(settings == null) { - getSettingsFromDatabase().whenComplete((playerSettings, throwable) -> settings = playerSettings); - } - return settings; + public void load() { + getRankAsync().whenComplete((rank1, throwable) -> rank = rank1); + getSettingsAsync().whenComplete((playerSettings, throwable) -> settings = playerSettings); + isMutedAsync().whenComplete((aBoolean, throwable) -> muted = aBoolean); } public Language getLanguage() { return Language.getLanguage(Locale.forLanguageTag(getSettings().getLanguage())); } - public CompletableFuture getSettingsFromDatabase() { + public CompletableFuture getLanguageAsync() { + CompletableFuture future = new CompletableFuture<>(); + getSettingsAsync().whenComplete((playerSettings, throwable) -> future.complete(Language.getLanguage(Locale.forLanguageTag(playerSettings.getLanguage())))); + return future; + } + + + public CompletableFuture getSettingsAsync() { CompletableFuture future = new CompletableFuture<>(); - getObjectFromDatabase("Settings").whenComplete((entries, throwable) -> { - future.complete(new PlayerSettings(this, entries)); - }); + getObjectFromDatabase("Settings").whenComplete((entries, throwable) -> future.complete(new PlayerSettings(this, entries))); return future; } @@ -95,7 +102,6 @@ public class DatabasePlayer { } } }); - client.close(); }); } @@ -110,7 +116,6 @@ public class DatabasePlayer { result.getString("customMessage"), result.getInstant("date"), result.getString("proof")); - client.close(); future.complete(data); }); return future; @@ -135,7 +140,6 @@ public class DatabasePlayer { json.getInstant("date"), json.getString("proof"))); } - client.close(); future.complete(data); } }); @@ -182,7 +186,6 @@ public class DatabasePlayer { json.getInstant("date"), json.getString("proof"))); } - client.close(); future.complete(data); } }); @@ -214,7 +217,6 @@ public class DatabasePlayer { json.getInstant("date"), UUID.fromString("kicker"))); } - client.close(); future.complete(data); } }); @@ -243,15 +245,12 @@ public class DatabasePlayer { } } }); - client.close(); }); } - public CompletableFuture isMuted() { + public CompletableFuture isMutedAsync() { CompletableFuture future = new CompletableFuture<>(); - getMute().whenComplete((muteData, throwable) -> { - future.complete(muteData != null && !Instant.now().isAfter(muteData.getDate())); - }); + getMute().whenComplete((muteData, throwable) -> future.complete(muteData != null && !Instant.now().isAfter(muteData.getDate()))); return future; } @@ -277,29 +276,26 @@ public class DatabasePlayer { UUID.fromString(json.getString("muter")), json.getInstant("date"))); } - client.close(); future.complete(data); } }); return future; } - public CompletableFuture getRankFromDatabase() { + public CompletableFuture getRankAsync() { CompletableFuture future = new CompletableFuture<>(); - getObjectFromDatabase("rank").whenComplete((entries, throwable) -> - future.complete(Rank.valueOf(entries.getString("rank")))); + MongoClient client = Commons.getCommons().getDatabaseManager().getMongoDB().getClient(); + client.findOne("players", new JsonObject().put("uuid", uuid.toString()), null, res -> { + if(res.succeeded()) { + future.complete(Rank.valueOf(res.result().getString("rank"))); + }else{ + res.cause().printStackTrace(); + future.complete(Rank.Player); + } + }); return future; } - private Rank rank; - - public Rank getRank() { - if (rank == null) { - getRankFromDatabase().whenComplete((rank1, throwable) -> rank = rank1); - } - return rank; - } - public void setRank(Rank rank) { setInDatabase("rank", rank.name()); } @@ -308,17 +304,26 @@ public class DatabasePlayer { return getRank().getValue() >= rank.getValue(); } + public CompletableFuture isAllowedAsync(Rank rank) { + CompletableFuture future = new CompletableFuture<>(); + getRankAsync().whenComplete((rank1, throwable) -> future.complete(rank1.getValue() >= rank.getValue())); + return future; + } + public boolean isAllowed(Group group) { return getRank().getGroup() == group; } + public CompletableFuture isAllowedAsync(Group group) { + CompletableFuture future = new CompletableFuture<>(); + getRankAsync().whenComplete((rank1, throwable) -> future.complete(rank1.getGroup() == group)); + return future; + } + public CompletableFuture hasPlayedBefore() { CompletableFuture future = new CompletableFuture<>(); MongoClient client = Commons.getCommons().getDatabaseManager().getMongoDB().getClient(); - client.findOne("players", new JsonObject().put("uuid", uuid.toString()), new JsonObject("uuid"), res -> { - client.close(); - future.complete(res.succeeded()); - }); + client.findOne("players", new JsonObject().put("uuid", uuid.toString()), new JsonObject("uuid"), res -> future.complete(res.succeeded())); return future; } @@ -424,7 +429,6 @@ public class DatabasePlayer { for (Object uuid : res.result().getJsonArray("friends")) { data.add(new FriendData(UUID.fromString(String.valueOf(uuid)))); } - client.close(); future.complete(data); } }); @@ -459,22 +463,16 @@ public class DatabasePlayer { } public void addCoins(int coins) { - getCoins().whenComplete((integer, throwable) -> { - setCoins(integer + coins); - }); + getCoins().whenComplete((integer, throwable) -> setCoins(integer + coins)); } public void substractCoins(int coins) { - getCoins().whenComplete((integer, throwable) -> { - setCoins(integer - coins); - }); + getCoins().whenComplete((integer, throwable) -> setCoins(integer - coins)); } public CompletableFuture getBoardID() { CompletableFuture future = new CompletableFuture<>(); - getObjectFromDatabase("boardID").whenComplete((entries, throwable) -> { - future.complete(entries.getInteger("boardID")); - }); + getObjectFromDatabase("boardID").whenComplete((entries, throwable) -> future.complete(entries.getInteger("boardID"))); return future; } @@ -493,17 +491,13 @@ public class DatabasePlayer { throwable.printStackTrace(); } } - client.close(); }); } public CompletableFuture getObjectFromDatabase(String name) { CompletableFuture future = new CompletableFuture<>(); MongoClient client = Commons.getCommons().getDatabaseManager().getMongoDB().getClient(); - client.findOne("players", new JsonObject().put("uuid", uuid.toString()), new JsonObject(name), res -> { - client.close(); - future.complete(res.result()); - }); + client.findOne("players", new JsonObject().put("uuid", uuid.toString()), null, res -> future.complete(res.result())); return future; } } \ No newline at end of file diff --git a/src/main/java/eu/univento/commons/player/profiles/Profile.java b/src/main/java/eu/univento/commons/player/profiles/Profile.java deleted file mode 100644 index 4142e21..0000000 --- a/src/main/java/eu/univento/commons/player/profiles/Profile.java +++ /dev/null @@ -1,68 +0,0 @@ -package eu.univento.commons.player.profiles; - -import com.mongodb.CursorType; -import com.mongodb.client.FindIterable; -import eu.univento.commons.player.DatabasePlayer; -import org.bson.Document; - -import java.util.Collection; -import java.util.Date; -import java.util.LinkedList; -import java.util.stream.Collectors; - -/** - * @author joethei - * @version 0.1 - */ -public class Profile { - - private DatabasePlayer player; - private String id; - private String name; - private Date date; - private Save save; - private Collection items; - - public Profile(DatabasePlayer player, String id) { - this.player = player; - this.id = id; - FindIterable cursor = player.getProfileCollection().find(new Document("_id", id)); - cursor.cursorType(CursorType.NonTailable); - Document doc = cursor.first(); - - this.name = doc.getString("name"); - this.save = Save.valueOf(doc.getString("save")); - this.date = doc.getDate("date"); - Collection list = (Collection) doc.get("items"); - items = new LinkedList<>(); - items.addAll(list.stream().map(StoryItem::valueOf).collect(Collectors.toList())); - } - - public DatabasePlayer getPlayer() { - return player; - } - - public String getId() { - return id; - } - - public String getName() { - return name; - } - - public Save getSave() { - return save; - } - - public Date getDate() { - return date; - } - - public Collection getItems() { - return items; - } - - public String getURL() { - return "https://players.univento.eu/" + player.getUuid() + "/profile/" + id; - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/commons/player/profiles/Save.java b/src/main/java/eu/univento/commons/player/profiles/Save.java deleted file mode 100644 index fc99087..0000000 --- a/src/main/java/eu/univento/commons/player/profiles/Save.java +++ /dev/null @@ -1,38 +0,0 @@ -package eu.univento.commons.player.profiles; - -/** - * @author joethei - * @version 0.1 - */ -public enum Save { - - START("Starting", 2.0D, 0.0D, 6.0D); - - private String name; - private double x; - private double y; - private double z; - - Save(String name, double x, double y, double z) { - this.name = name; - this.x = x; - this.y = y; - this.z = z; - } - - public String getName() { - return name; - } - - public double getX() { - return x; - } - - public double getY() { - return y; - } - - public double getZ() { - return z; - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/commons/player/profiles/StoryItem.java b/src/main/java/eu/univento/commons/player/profiles/StoryItem.java deleted file mode 100644 index c4e2201..0000000 --- a/src/main/java/eu/univento/commons/player/profiles/StoryItem.java +++ /dev/null @@ -1,33 +0,0 @@ -package eu.univento.commons.player.profiles; - -/** - * @author joethei - * @version 0.1 - */ -public enum StoryItem { - - - START("Item.Stone", "STONE", 3); - - private String name; - private String material; - private int durability; - - StoryItem(String name, String material, int durability) { - this.name = name; - this.material = material; - this.durability = durability; - } - - public String getName() { - return name; - } - - public String getMaterial() { - return material; - } - - public int getDurability() { - return durability; - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/commons/security/SecurityHandler.java b/src/main/java/eu/univento/commons/security/SecurityHandler.java deleted file mode 100644 index 48307dc..0000000 --- a/src/main/java/eu/univento/commons/security/SecurityHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package eu.univento.commons.security; - -import eu.univento.commons.Commons; - -import java.sql.ResultSet; -import java.util.ArrayList; -import java.util.function.Consumer; - -/** - * @author joethei - * @version 0.1 - */ -public class SecurityHandler { - - private Commons commons; - - private ArrayList cache = new ArrayList<>(); - - //TODO: add real security - - public SecurityHandler(Commons commons) { - this.commons = commons; - /* - load(resultSet -> { - try { - while (resultSet.next()) { - cache.add(resultSet.getString("ip")); - } - resultSet.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - }); - */ - - } - - public boolean isValidServer(String ip) { - //return cache.contains(ip); - return true; - } - - private void load(Consumer consumer) { - commons.getDatabaseManager().getAsyncMySQL().query("SELECT * FROM Servers;", consumer); - } -} \ No newline at end of file diff --git a/src/main/resources/config.properties b/src/main/resources/config.properties index 44bb3b8..8d027a6 100644 --- a/src/main/resources/config.properties +++ b/src/main/resources/config.properties @@ -20,4 +20,9 @@ TS3.Hostname = vps.joethei.de TS3.ID = 1 TS3.Username = serveradmin TS3.Password = Wb69cypb499CTP4vtaJPKpKZELUbPD -Slack.hook_url = https://hooks.slack.com/services/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 \ No newline at end of file +Slack.hook_url = https://hooks.slack.com/services/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 +RabbitMQ.Host = vps.joethei.de +RabbitMQ.Port = 5672 +RabbitMQ.Username = univento +RabbitMQ.Password = tYRHXZNm4exW@QB6rMm72pHnafrT8wQ5ebGPEetJDBVU2mj25kTVXuYeQavb#EYr +RabbitMQ.VirtualHost = univento \ No newline at end of file diff --git a/src/main/resources/language.properties b/src/main/resources/language.properties deleted file mode 100644 index a37adf2..0000000 --- a/src/main/resources/language.properties +++ /dev/null @@ -1,4 +0,0 @@ -Prefix = undefined -Tab_Prefix = §8• §6U N I V E N T O §8• -Not_a_player = You are not a valid player -No_perms = diff --git a/src/main/resources/language_de.properties b/src/main/resources/language_de.properties deleted file mode 100644 index 4a18e23..0000000 --- a/src/main/resources/language_de.properties +++ /dev/null @@ -1,56 +0,0 @@ -Pack.failed_download = Das Pack konnte nicht geladen werden -Pack.declined = Du hast das Pack abgelehnt, du wirst nicht das volle Spielerlebnis erhalten - -System.unknown_error = Es ist ein unbekannter Fehler aufgetreten -System.critical_error = Es ist leider ein kritischer Fehler aufgetreten - -Server.restart = Der Server wurde neugestartet -Server.stop = Der Server wurde ausgeschaltet -Server.reconnect = Bitte verbinde dich neu -Server.full = Dieser Server ist bereits voll -Server.ip = IP: play.univento.eu -Server.ts_ip = TeamSpeak IP: ts.univento.eu -Server.board_ip = Foren Adresse: forum.univento.eu - -Command.prefix = univento.eu Default Command Prefix -Command.not_found = Dieser Befehl konnte nicht gefunden werden -Command.not_online = Der Spieler $player ist nicht online -Command.no_perms = Um diesen Befehl zu benutzen hast du keine Rechte - -Command.Build.usage = Nutze /build -Command.Build.toogle_on = Du hast den Build Modus aktiviert -Command.Build.toogle_off = Du hast den Build Modus deaktiviert - -Command.TS.usage = Nutze /ts -Command.TS.already_verified = Du wurdest bereits verifiziert -Command.TS.not_online = Du bist nicht mit dem TeamSpeak Server verbunden -Command.TS.verified = Du wurdest verifiziert - -Command.Fix.usage = Nutze /fix -Command.Fix.own = Du hast dich selbst gefixt -Command.Fix.other = Du hast $player gefixt -Command.Fix.by_other = Du wurdest von $player gefixt - -Shop.Lobby.Main = Lobby Shop -Shop.Game.Maya.Main = Maya Game Shop - -Lobby.Item.Navigator = Navigator -Lobby.Item.LobbySwitcher = LobbySwitcher -Lobby.Item.Adventure = Adventure Kram -Lobby.Item.FunChest = FunKiste -Lobby.Item.Youtuber = Youtuber Zeugs -Lobby.Item.Profile = Profil -Lobby.Item.YT.Nick = Nicken -Lobby.Item.YT.SilentLobby = SilentLobby -Lobby.Item.YT.Forcefield = Forcefield -Lobby.Item.YT.Extras = Extras -Lobby.Item.YT.Back = Zurück - -Lobby.Menu.Nav.Spawn = Spawn -Lobby.Menu.Nav.Strive = Strive -Lobby.Menu.Nav.Hustle = Hustle -Lobby.Menu.Nav.Build = Bau Server -Lobby.Menu.Profile = Dein Profil -Lobby.Menu.other_Profile = Profil von $player -Lobby.Menu.Settings = Einstellungen -Lobby.Menu.Language = Sprache einstellen \ No newline at end of file diff --git a/src/test/java/eu/univento/commons/CommonsTest.java b/src/test/java/eu/univento/commons/CommonsTest.java index c982bf0..9854dcd 100644 --- a/src/test/java/eu/univento/commons/CommonsTest.java +++ b/src/test/java/eu/univento/commons/CommonsTest.java @@ -6,7 +6,6 @@ package eu.univento.commons; import eu.univento.commons.database.DatabaseManager; -import eu.univento.commons.security.SecurityHandler; import org.junit.Test; import static org.junit.Assert.assertFalse;