SteamWar/BungeeCore
Archiviert
13
2

Add BauLock #415

Zusammengeführt
Lixfel hat 20 Commits von BauLock nach master 2022-09-14 11:51:49 +02:00 zusammengeführt
Mitglied

Add BauCommand.isLocked
Add BauLockState
Add "BAU_LOCKED" and "BAU_UNLOCKED" in BungeeCore_de.properties
Add "Bau_LOCKED" and "BAU_UNLOCKED" in BungeeCore.properties

Add BauCommand.isLocked Add BauLockState Add "BAU_LOCKED" and "BAU_UNLOCKED" in BungeeCore_de.properties Add "Bau_LOCKED" and "BAU_UNLOCKED" in BungeeCore.properties
xSpw hat 1 Commit 2022-08-10 19:21:24 +02:00 hinzugefügt
Add BauLock
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
386395725d
Add BauCommand.isLocked
Add BauLockState
Add "BAU_LOCKED" and "BAU_UNLOCKED" in BungeeCore_de.properties
Add "Bau_LOCKED" and "BAU_UNLOCKED" in BungeeCore.properties
YoyoNow hat 2022-08-13 01:17:56 +02:00 Änderungen angefragt
@ -120,10 +128,14 @@ public class BauCommand extends BasicCommand {
}
SteamwarUser worldOwner = SteamwarUser.get(args[1]);
if (worldOwner == null) {
Besitzer

Warum ist dieser check rausgefallen?

Warum ist dieser check rausgefallen?
xSpw markierte diese Unterhaltung als gelöst
@ -82,1 +81,4 @@
break;
case "lock":
setLocked(SteamwarUser.get(p), args);
Besitzer

siehe unten

siehe unten
xSpw markierte diese Unterhaltung als gelöst
@ -83,0 +85,4 @@
break;
case "unlock":
setLocked(SteamwarUser.get(p), new String[]{"", "OPEN"});
Besitzer

Warum nimmt setLocked nicht genau einen String?

Warum nimmt setLocked nicht genau einen String?
xSpw markierte diese Unterhaltung als gelöst
@ -309,1 +321,4 @@
}
private static boolean isLocked(SteamwarUser owner, SteamwarUser target) {
if (owner == null) {
Besitzer

Dieser check gehört hier nicht rein.

Dieser check gehört hier nicht rein.
xSpw markierte diese Unterhaltung als gelöst
@ -310,0 +330,4 @@
return (activeLockState == BauLockState.TEAM && !(Team.get(owner.getId()) == Team.get(target.getId()))) || activeLockState == BauLockState.ALL;
}
private static void setLocked(SteamwarUser owner, String[] args) {
Besitzer

Hier wird nie auf die Länge des Array geprüft! Wird Fehler werfen.

Hier wird nie auf die Länge des Array geprüft! Wird Fehler werfen.
xSpw markierte diese Unterhaltung als gelöst
@ -310,0 +334,4 @@
BauLockState newState = BauLockState.OPEN;
if(args[1] != null) {
BauLockState.valueOf(args[1].toUpperCase());
Besitzer

Werte haben ist eine Sache diese zu nutzen ist eine andere.

Werte haben ist eine Sache diese zu nutzen ist eine andere.
xSpw markierte diese Unterhaltung als gelöst
@ -310,0 +340,4 @@
BauLock.updateUserConfig(owner.getId(), newState);
String messageKey = "BAU_LOCKED";
Besitzer

Keine Individuellen Nachrichten für die einzelnen States?

Keine Individuellen Nachrichten für die einzelnen States?
xSpw markierte diese Unterhaltung als gelöst
@ -310,0 +341,4 @@
BauLock.updateUserConfig(owner.getId(), newState);
String messageKey = "BAU_LOCKED";
if(newState == BauLockState.OPEN)
Besitzer

Kann man mit einem Ternary operator inlinen

Kann man mit einem Ternary operator inlinen
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +1,38 @@
package de.steamwar.bungeecore.sql;
public class BauLock {
Besitzer

Du hast die UserConfig nicht so ganz verstanden. Du sollst kein BauLock hinzufügen sondern ein UserConfig, wo du dann alles mit dem Key 'baulock' nutzt oder so.

Du hast die UserConfig nicht so ganz verstanden. Du sollst kein BauLock hinzufügen sondern ein UserConfig, wo du dann alles mit dem Key 'baulock' nutzt oder so.
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +10,4 @@
private static final Statement selectAll = new Statement("SELECT * FROM `UserConfig` WHERE 'User' = ? AND Config' = ?");
public static BauLockState getUserLockState(int userID) {
select.select(rs -> {
Besitzer

Select returned auch was? Wieso wird hier immer 'BauLockState.OPEN' aus der methode gereicht?

Select returned auch was? Wieso wird hier immer 'BauLockState.OPEN' aus der methode gereicht?
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +21,4 @@
public static void updateUserConfig(int userID, BauLockState state) {
if(!exists(userID)) {
insert.update(userID, configName, String.valueOf(state));
Besitzer

Ich weiß nicht ob es im SpigotCore ähnlich gemacht ist, sollte so aber nicht nötig sein.

Ich weiß nicht ob es im SpigotCore ähnlich gemacht ist, sollte so aber nicht nötig sein.
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +27,4 @@
}
private static boolean exists(int userID) {
selectAll.select(rs -> {
Besitzer

Der key existiert also nie? und warum mal '!= null' und mal direkt einfach 'null'?

Der key existiert also nie? und warum mal '!= null' und mal direkt einfach 'null'?
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +2,4 @@
public enum BauLockState {
ALL, // Locks the build server for all users
Besitzer

All klingt wie alle können drauf vllt eher zu (none) umbenenen

All klingt wie alle können drauf vllt eher zu (none) umbenenen
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +3,4 @@
public enum BauLockState {
ALL, // Locks the build server for all users
OPEN, //locks the build server for every user
Besitzer

Kommentar passt nicht zum namen!

Kommentar passt nicht zum namen!
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +4,4 @@
ALL, // Locks the build server for all users
OPEN, //locks the build server for every user
TEAM //opens the build server only for every added user which is in the same team as the buildOwner
Besitzer

Reihenfolge ist etwas komisch

Reihenfolge ist etwas komisch
xSpw markierte diese Unterhaltung als gelöst
@ -196,6 +196,9 @@ BAU_ADDMEMBER_ADDED=§aThe player was added to your world.
BAU_ADDMEMBER_ADDED_TARGET=§aYou have been added to the world of §e{0}§a.
BAU_TP_USAGE=§8/§7build tp §8[§eplayer§8]
BAU_TP_NOALLOWED=§cYou are not allowed to teleport to this player's world.
BAU_LOCKED_NOALLOWED=&cThe buildserver is currently locked.
Besitzer

Keine & in Nachrichten. Nutze § bitte.

Keine & in Nachrichten. Nutze § bitte.
xSpw markierte diese Unterhaltung als gelöst
@ -197,2 +197,4 @@
BAU_TP_USAGE=§8/§7build tp §8[§eplayer§8]
BAU_TP_NOALLOWED=§cYou are not allowed to teleport to this player's world.
BAU_LOCKED_NOALLOWED=&cThe buildserver is currently locked.
BAU_LOCKED=&eYou have locked your buildserver.
Besitzer

Keine & in Nachrichten. Nutze § bitte.

Keine & in Nachrichten. Nutze § bitte.
Besitzer

Ich würde persönlich das 'have' rausnehmen.

Ich würde persönlich das 'have' rausnehmen.
xSpw markierte diese Unterhaltung als gelöst
@ -198,1 +198,4 @@
BAU_TP_NOALLOWED=§cYou are not allowed to teleport to this player's world.
BAU_LOCKED_NOALLOWED=&cThe buildserver is currently locked.
BAU_LOCKED=&eYou have locked your buildserver.
BAU_UNLOCKED=&eYou have unlocked your buildserver.
Besitzer

Keine & in Nachrichten. Nutze § bitte.

Keine & in Nachrichten. Nutze § bitte.
Besitzer

Ich würde persönlich das 'have' rausnehmen.

Ich würde persönlich das 'have' rausnehmen.
xSpw markierte diese Unterhaltung als gelöst
@ -180,6 +180,9 @@ BAU_ADDMEMBER_ADDED=§aDer Spieler wurde zu deiner Welt hinzugefügt.
BAU_ADDMEMBER_ADDED_TARGET=§aDu wurdest zu der Welt von §e{0} §ahinzugefügt.
BAU_TP_USAGE=§8/§7bau tp §8[§eSpieler§8]
BAU_TP_NOALLOWED=§cDu darfst dich nicht auf diese Welt teleportieren.
BAU_LOCKED_NOALLOWED=&cDer Buildserver ist momentan gelocked.
Besitzer

Keine & in Nachrichten. Nutze § bitte.

Keine & in Nachrichten. Nutze § bitte.
xSpw markierte diese Unterhaltung als gelöst
@ -181,2 +181,4 @@
BAU_TP_USAGE=§8/§7bau tp §8[§eSpieler§8]
BAU_TP_NOALLOWED=§cDu darfst dich nicht auf diese Welt teleportieren.
BAU_LOCKED_NOALLOWED=&cDer Buildserver ist momentan gelocked.
BAU_LOCKED=&eDu hast dein Bau geschlossen.
Besitzer

Keine & in Nachrichten. Nutze § bitte.

Keine & in Nachrichten. Nutze § bitte.
xSpw markierte diese Unterhaltung als gelöst
@ -182,1 +182,4 @@
BAU_TP_NOALLOWED=§cDu darfst dich nicht auf diese Welt teleportieren.
BAU_LOCKED_NOALLOWED=&cDer Buildserver ist momentan gelocked.
BAU_LOCKED=&eDu hast dein Bau geschlossen.
BAU_UNLOCKED=&eDu hast dein Bau wieder freigegeben.
Besitzer

Keine & in Nachrichten. Nutze § bitte.

Keine & in Nachrichten. Nutze § bitte.
xSpw markierte diese Unterhaltung als gelöst
xSpw hat 1 Commit 2022-08-13 21:19:02 +02:00 hinzugefügt
Replace BauLock to UserConfig
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
19dad58712
Update BauLockState.ALL to BauLockState.NONE
Add "BAU_LOCKED_OPTIONS" in BungeeCore_de.properties
Add "BAU_LOCKED_OPTIONS" in BungeeCore.properties
xSpw hat 1 Commit 2022-08-13 22:23:34 +02:00 hinzugefügt
Add BungeeCore_de.properties "BAU_LOCKED_OPTIONS" Color correction
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
39b63198d5
Add BungeeCore.properties "BAU_LOCKED_OPTIONS" Color correction
xSpw hat 1 Commit 2022-08-14 00:11:25 +02:00 hinzugefügt
Add HelCommand for /bau lock
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
c2211bdedf
Add HelCommand for /bau unlock
Besitzer

Ich würde nach nochmaliger Überlegung eigentlich dazu tendieren, zu sagen, dass wir dieses Feature nicht umsetzen.

Ich würde nach nochmaliger Überlegung eigentlich dazu tendieren, zu sagen, dass wir dieses Feature nicht umsetzen.
Besitzer

Warum genau?

Warum genau?
Autor
Mitglied

Verstehe ich auch nicht, da ich schon von mehreren leuten gewünscht wurde dies umzusetzen um z.b. tech klau zu verhinder wenn man inaktiv wird

Verstehe ich auch nicht, da ich schon von mehreren leuten gewünscht wurde dies umzusetzen um z.b. tech klau zu verhinder wenn man inaktiv wird
Besitzer

Dass ist das falsche Feature dazu. Dazu sollten sie einfach ihre Bauwelt löschen...

Dass ist das falsche Feature dazu. Dazu sollten sie einfach ihre Bauwelt löschen...
Besitzer

Warum nicht implementieren? Komplexität für ein Feature, was zwar nicht so angenehm, aber dennoch mit bereits vorhandenen Hausmitteln umsetzbar ist (entfernen der unerwünschten geaddeten Leute vom Bau).

Warum nicht implementieren? Komplexität für ein Feature, was zwar nicht so angenehm, aber dennoch mit bereits vorhandenen Hausmitteln umsetzbar ist (entfernen der unerwünschten geaddeten Leute vom Bau).
Besitzer

Dass ist das falsche Feature dazu. Dazu sollten sie einfach ihre Bauwelt löschen...

Nein dies sollten sie nicht machen. Wenn sie eben einfach alleine für eine Aufnahme sein wollen oder so, ist das nicht möglich einfach die Bauwelt zu löschen, außerdem haben Spieler dort die Bauten zum Teil drauf, auch ohne Schem.

Warum nicht implementieren? Komplexität für ein Feature, was zwar nicht so angenehm, aber dennoch mit bereits vorhandenen Hausmitteln umsetzbar ist (entfernen der unerwünschten geaddeten Leute vom Bau).

Auch keine Sinnvolle Lösung, weil dieser das nur temporär haben will und nicht wieder alle hinzufügen will, wenn er fertig ist, weil er es dann vergisst und dann andere nicht weiter arbeiten können wenn der Owner off ist!

> Dass ist das falsche Feature dazu. Dazu sollten sie einfach ihre Bauwelt löschen... Nein dies sollten sie nicht machen. Wenn sie eben einfach alleine für eine Aufnahme sein wollen oder so, ist das nicht möglich einfach die Bauwelt zu löschen, außerdem haben Spieler dort die Bauten zum Teil drauf, auch ohne Schem. > Warum nicht implementieren? Komplexität für ein Feature, was zwar nicht so angenehm, aber dennoch mit bereits vorhandenen Hausmitteln umsetzbar ist (entfernen der unerwünschten geaddeten Leute vom Bau). Auch keine Sinnvolle Lösung, weil dieser das nur temporär haben will und nicht wieder alle hinzufügen will, wenn er fertig ist, weil er es dann vergisst und dann andere nicht weiter arbeiten können wenn der Owner off ist!
Autor
Mitglied

Dass ist das falsche Feature dazu. Dazu sollten sie einfach ihre Bauwelt löschen...

Nein dies sollten sie nicht machen. Wenn sie eben einfach alleine für eine Aufnahme sein wollen oder so, ist das nicht möglich einfach die Bauwelt zu löschen, außerdem haben Spieler dort die Bauten zum Teil drauf, auch ohne Schem.

Warum nicht implementieren? Komplexität für ein Feature, was zwar nicht so angenehm, aber dennoch mit bereits vorhandenen Hausmitteln umsetzbar ist (entfernen der unerwünschten geaddeten Leute vom Bau).

Auch keine Sinnvolle Lösung, weil dieser das nur temporär haben will und nicht wieder alle hinzufügen will, wenn er fertig ist, weil er es dann vergisst und dann andere nicht weiter arbeiten können wenn der Owner off ist!

Ich teile die gleiche meinung. Wir könnten ja mal im Teamchat nachfragen.

> > Dass ist das falsche Feature dazu. Dazu sollten sie einfach ihre Bauwelt löschen... > > Nein dies sollten sie nicht machen. Wenn sie eben einfach alleine für eine Aufnahme sein wollen oder so, ist das nicht möglich einfach die Bauwelt zu löschen, außerdem haben Spieler dort die Bauten zum Teil drauf, auch ohne Schem. > > > Warum nicht implementieren? Komplexität für ein Feature, was zwar nicht so angenehm, aber dennoch mit bereits vorhandenen Hausmitteln umsetzbar ist (entfernen der unerwünschten geaddeten Leute vom Bau). > > Auch keine Sinnvolle Lösung, weil dieser das nur temporär haben will und nicht wieder alle hinzufügen will, wenn er fertig ist, weil er es dann vergisst und dann andere nicht weiter arbeiten können wenn der Owner off ist! Ich teile die gleiche meinung. Wir könnten ja mal im Teamchat nachfragen.
Lixfel hat 2022-09-02 08:09:28 +02:00 Änderungen angefragt
Lixfel hat einen Kommentar hinterlassen
Besitzer

Ansonsten bitte noch einmal den Master in diesen Branch mergen (geht am besten in IntelliJ unten rechts), es hat sich nämlich ein Merge-Conflict entwickelt.

Ansonsten bitte noch einmal den Master in diesen Branch mergen (geht am besten in IntelliJ unten rechts), es hat sich nämlich ein Merge-Conflict entwickelt.
@ -82,1 +81,4 @@
break;
case "lock":
setLocked(SteamwarUser.get(p), args[1]);
Besitzer

Hier fliegt eine ArrayIndexOutOfBoundsException, wenn der User einfach nur /bau lock eingibt. Zudem solltest du auf das Argument noch .toUpperCase() ausführen, ansonsten muss der User den Lockzustand immer in Capslock schreiben.

Hier fliegt eine ArrayIndexOutOfBoundsException, wenn der User einfach nur /bau lock eingibt. Zudem solltest du auf das Argument noch .toUpperCase() ausführen, ansonsten muss der User den Lockzustand immer in Capslock schreiben.
xSpw markierte diese Unterhaltung als gelöst
@ -310,0 +331,4 @@
if(activeLockState == null)
activeLockState = BauLockState.OPEN;
return activeLockState == BauLockState.NONE || (activeLockState == BauLockState.TEAM && !(Team.get(owner.getId()) == Team.get(target.getId())));
Besitzer

Hier bekommst du nicht so ganz die Teams zurück ;). Du versuchst hier UserIDs als TeamIDs zu verwenden. Das funktioniert nicht so ganz... Du kannst auch einfach die TeamIDs vergleichen, das wäre dann (SteamWarUser u).getTeam() oder so ähnlich (Kein Team.get nötig, der Vergleich der Teamobjekte mit == würde zudem immer fehlschlagen, weil dabei bei Objekten nur die Objektadresse verglichen wird und in dem Fall 2x zwar das gleiche Team, aber unterschiedliche Objekte zurückgegeben werden würde).

Hier bekommst du nicht so ganz die Teams zurück ;). Du versuchst hier UserIDs als TeamIDs zu verwenden. Das funktioniert nicht so ganz... Du kannst auch einfach die TeamIDs vergleichen, das wäre dann (SteamWarUser u).getTeam() oder so ähnlich (Kein Team.get nötig, der Vergleich der Teamobjekte mit == würde zudem immer fehlschlagen, weil dabei bei Objekten nur die Objektadresse verglichen wird und in dem Fall 2x zwar das gleiche Team, aber unterschiedliche Objekte zurückgegeben werden würde).
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +2,4 @@
public enum BauLockState {
NONE, // Locks the build server for all users
Besitzer

Ich fände NOBODY oder NOMEMBERS treffender.

Ich fände NOBODY oder NOMEMBERS treffender.
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +4,4 @@
public class UserConfig {
public static final String lockConfigName = "baulockstate";
Besitzer

Bitte diesen String hier rausbewegen (z.B. zum Baucommand). Die SQL-Klasse soll generisch bleiben, insbesondere mit dem kommenden CommonDB im Hintergrund.

Bitte diesen String hier rausbewegen (z.B. zum Baucommand). Die SQL-Klasse soll generisch bleiben, insbesondere mit dem kommenden CommonDB im Hintergrund.
xSpw markierte diese Unterhaltung als gelöst
@ -0,0 +11,4 @@
private static final Statement select = new Statement("SELECT `Value` FROM `UserConfig` WHERE 'User' = ? AND 'Config' = ?");
private static final Statement delete = new Statement("DELETE FROM `UserConfig` WHERE 'User' = ? AND 'Config' = ?");
public static BauLockState getUserLockState(int userID) {
Besitzer

Diese Wrappermethode ebenso verschieben.

Diese Wrappermethode ebenso verschieben.
xSpw markierte diese Unterhaltung als gelöst
@ -196,6 +200,11 @@ BAU_ADDMEMBER_ADDED=§aThe player was added to your world.
BAU_ADDMEMBER_ADDED_TARGET=§aYou have been added to the world of §e{0}§a.
BAU_TP_USAGE=§8/§7build tp §8[§eplayer§8]
BAU_TP_NOALLOWED=§cYou are not allowed to teleport to this player's world.
BAU_LOCKED_NOALLOWED=&cThe buildserver is currently locked.
Besitzer

Im englischen musst du build und server trennen (zwei Wörter, betrifft auch die folgenden Zeilen)

Im englischen musst du build und server trennen (zwei Wörter, betrifft auch die folgenden Zeilen)
xSpw markierte diese Unterhaltung als gelöst
@ -39,2 +39,4 @@
HELP_LOCAL=§7Schreibe mit §8/§elocal §7nur auf dem lokalen Server!
HELP_LOCAL_HOVER=§eLokaler Chat
HELP_BAU_LOCK=§8/§ebuild lock §8- §7Schließe den Bauserver für bestimmte Spieler.
HELP_BAU_LOCK_HOVER=§eSchließe deinen bau
Besitzer

Schließen klingt irgendwie leicht falsch (für mich). Wie wäre es mit sperren?

Schließen klingt irgendwie leicht falsch (für mich). Wie wäre es mit sperren?
xSpw markierte diese Unterhaltung als gelöst
@ -180,6 +184,11 @@ BAU_ADDMEMBER_ADDED=§aDer Spieler wurde zu deiner Welt hinzugefügt.
BAU_ADDMEMBER_ADDED_TARGET=§aDu wurdest zu der Welt von §e{0} §ahinzugefügt.
BAU_TP_USAGE=§8/§7bau tp §8[§eSpieler§8]
BAU_TP_NOALLOWED=§cDu darfst dich nicht auf diese Welt teleportieren.
BAU_LOCKED_NOALLOWED=&cDer Buildserver ist momentan gelocked.
Besitzer

Auf Deutsch ist es der Bauserver

Auf Deutsch ist es der Bauserver
xSpw markierte diese Unterhaltung als gelöst
@ -181,2 +185,4 @@
BAU_TP_USAGE=§8/§7bau tp §8[§eSpieler§8]
BAU_TP_NOALLOWED=§cDu darfst dich nicht auf diese Welt teleportieren.
BAU_LOCKED_NOALLOWED=&cDer Buildserver ist momentan gelocked.
BAU_LOCKED_OPTIONS=§eBauserver schließ optionen: §cnone§8, §eteam§8, §aopen§8.
Besitzer

Im Deutschen wäre Bauserverschließoptionen ein Wort.

Im Deutschen wäre Bauserverschließoptionen ein Wort.
xSpw markierte diese Unterhaltung als gelöst
@ -183,0 +188,4 @@
BAU_LOCKED_OPTIONS=§eBauserver schließ optionen: §cnone§8, §eteam§8, §aopen§8.
BAU_LOCKED_NONE=§eDu hast dein Bau für alle Spieler geschlossen.
BAU_LOCKED_TEAM=§eDu hast dein Bau für alle außer hinzugefügte Teammitglieder geschlossen.
BAU_LOCKED_OPEN=§eDu hast dein Bau für alle hinzugefügten Spieler wieder geöffnet.
Besitzer

Das wieder ist ein bisschen doppelt gemoppelt.

Das wieder ist ein bisschen doppelt gemoppelt.
xSpw markierte diese Unterhaltung als gelöst
xSpw hat 1 Commit 2022-09-02 14:27:49 +02:00 hinzugefügt
+Fix BauCommand.setLocked
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
ef6435b176
+Fix BauCommand.isLocked
+Update BauLockState.NONE to BauLockState.NOBODY
+Move Userconfig.getUserLockState to BauCommand
xSpw hat 1 Commit 2022-09-08 20:49:23 +02:00 hinzugefügt
+Add Owner message when bau is locked for Team
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
fe0d0eaffb
xSpw hat 1 Commit 2022-09-08 21:28:28 +02:00 hinzugefügt
+Fixed Owner message when locked
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
9a5b938fba
Lixfel hat 1 Commit 2022-09-09 15:49:12 +02:00 hinzugefügt
Merge branch 'master' into BauLock
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
1cbec668d1
# Conflicts:
#	src/de/steamwar/bungeecore/commands/HelpCommand.java
xSpw hat 4 Commits 2022-09-13 22:52:44 +02:00 hinzugefügt
Lixfel hat die Änderungen 2022-09-14 11:51:42 +02:00 genehmigt
Lixfel hat Commit 160d482392 in master 2022-09-14 11:51:49 +02:00 gemerged
Lixfel löschte die Branch BauLock 2022-09-14 11:51:50 +02:00
Dieses Repo ist archiviert. Du kannst Pull-Requests nicht kommentieren.
Keine Beschreibung angegeben.