SteamWar/BungeeCore
Archiviert
13
2

BauLock2 #432

Zusammengeführt
Lixfel hat 7 Commits von BauLock2 nach BauLock 2022-09-13 22:35:18 +02:00 zusammengeführt
6 geänderte Dateien mit 94 neuen und 63 gelöschten Zeilen
Nur Änderungen aus Commit 3e1d60245a werden angezeigt - Alle Commits anzeigen

@ -1 +1 @@
Subproject commit 9df92595b2f344585bd3e1639cedc761680b7761
Subproject commit c1e175c3e84280c160ae5c7f84e44805f159bbf3

Datei anzeigen

@ -23,13 +23,15 @@ import de.steamwar.bungeecore.*;
import de.steamwar.bungeecore.inventory.SWInventory;
import de.steamwar.bungeecore.inventory.SWItem;
import de.steamwar.bungeecore.network.NetworkSender;
import de.steamwar.bungeecore.sql.*;
import de.steamwar.bungeecore.sql.BauLockState;
import de.steamwar.bungeecore.sql.BauweltMember;
import de.steamwar.bungeecore.sql.SteamwarUser;
import de.steamwar.bungeecore.sql.UserConfig;
import de.steamwar.bungeecore.util.Chat19;
import de.steamwar.messages.ChatSender;
import de.steamwar.network.packets.server.BaumemberUpdatePacket;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
@ -67,7 +69,7 @@ public class BauCommand extends BasicCommand {
togglewe(p, args);
break;
case "toggleworld":
toggleWorld(p, args);
toggleworld(p, args);
break;
case "delmember":
delmember(p, args);
@ -82,7 +84,7 @@ public class BauCommand extends BasicCommand {
break;
case "lock":
if(!(args.length < 2)) {
if(args.length < 2) {
Message.send("BAU_LOCKED_OPTIONS", p);
return;
}
@ -134,22 +136,20 @@ public class BauCommand extends BasicCommand {
}
SteamwarUser worldOwner = SteamwarUser.get(args[1]);
SteamwarUser user = SteamwarUser.get(p);
if (worldOwner == null) {
Message.send("UNKNOWN_PLAYER", user.getPlayer());
Message.send("UNKNOWN_PLAYER", p);
return;
}else if (!p.getUniqueId().equals(worldOwner.getUuid()) && BauweltMember.getBauMember(worldOwner.getUuid(), p.getUniqueId()) == null){
SubserverSystem.sendDeniedMessage(p, worldOwner.getUuid());
Message.send("BAU_TP_NOALLOWED", p);
}
if(isLocked(worldOwner, user)) {
Message.send("BAU_LOCKED_NOALLOWED", user.getPlayer());
if(isLocked(worldOwner, SteamwarUser.get(p))) {
Message.send("BAU_LOCKED_NOALLOWED", p);
return;
}
if ((!p.getUniqueId().equals(worldOwner.getUuid()) && BauweltMember.getBauMember(worldOwner.getUuid(), p.getUniqueId()) == null)){
}
versionSelector(p, args, 2,
() -> new ServerStarter().build19(worldOwner.getUuid()).send(p).start(),
() -> new ServerStarter().build15(worldOwner.getUuid()).send(p).start(),
@ -206,7 +206,7 @@ public class BauCommand extends BasicCommand {
isAllowedTo(target.isWorldEdit(), p, target, "BAU_MEMBER_TOGGLE_WORLD_EDIT");
}
private static void toggleWorld(ProxiedPlayer p, String[] args){
private static void toggleworld(ProxiedPlayer p, String[] args){
BauweltMember target = toggle(p, args, "toggleworld");
if(target == null)
return;
@ -329,34 +329,31 @@ public class BauCommand extends BasicCommand {
}
}
private static boolean isLocked(SteamwarUser owner, SteamwarUser target) {
BauLockState activeLockState = getUserLockState(owner.getId());
if(activeLockState == null)
activeLockState = BauLockState.OPEN;
if((!target.getUuid().equals(owner.getUuid()) && BauweltMember.getBauMember(owner.getId(), target.getId()) == null) && !(activeLockState == BauLockState.NOBODY)) {
SubserverSystem.sendDeniedMessage(target.getPlayer(), owner.getUuid());
Message.send("BAU_TP_NOALLOWED", target.getPlayer());
}
return activeLockState == BauLockState.NOBODY || (activeLockState == BauLockState.TEAM && owner.getTeam() == target.getTeam());
}
private static final String bauLockConfigName = "baulockstate";
private static final String BAU_LOCK_CONFIG_NAME = "baulockstate";
private static void setLocked(SteamwarUser owner, String arg) {
if(BauLockState.valueOf(arg) == null) {
BauLockState state;
try {
state = BauLockState.valueOf(arg);
} catch (IllegalStateException e) {
Message.send("BAU_LOCKED_OPTIONS", owner.getPlayer());
return;
}
Veraltet
Review

Hier vllt als idee eine mögichkeit zu haben, dass man das ausschaltet, indem du ein weiteren parameter angibt?

Hier vllt als idee eine mögichkeit zu haben, dass man das ausschaltet, indem du ein weiteren parameter angibt?
String lockState = arg.toUpperCase();
UserConfig.updateUserConfig(owner.getId(), bauLockConfigName, lockState);
Message.send("BAU_LOCKED_" + lockState, owner.getPlayer());
UserConfig.updateUserConfig(owner.getId(), BAU_LOCK_CONFIG_NAME, state == BauLockState.OPEN ? null : state.name());
Message.send("BAU_LOCKED_" + state.name(), owner.getPlayer());
}
private static BauLockState getUserLockState(int userID) {
return BauLockState.valueOf(UserConfig.getConfig(userID, bauLockConfigName));
private static boolean isLocked(SteamwarUser owner, SteamwarUser target) {
String state = UserConfig.getConfig(owner.getId(), BAU_LOCK_CONFIG_NAME);
switch (state == null ? BauLockState.OPEN : BauLockState.valueOf(state)) {
case NOBODY:
return true;
case TEAM:
return owner.getTeam() != target.getTeam();
case OPEN:
default:
return false;
}
}
}

Datei anzeigen

@ -1,3 +1,22 @@
/*
This file is a part of the SteamWar software.
Copyright (C) 2022 SteamWar.de-Serverteam
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bungeecore.sql;
public enum BauLockState {

Datei anzeigen

@ -1,12 +1,31 @@
/*
This file is a part of the SteamWar software.
Copyright (C) 2022 SteamWar.de-Serverteam
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bungeecore.sql;
import java.util.UUID;
public class UserConfig {
private static final Statement insert = new Statement("INSERT INTO `UserConfig`(`User`, `Config`, `Value`) VALUES (?,?,?)");
private static final Statement update = new Statement("UPDATE `UserConfig` SET `Value`= ? WHERE 'User' = ? AND 'Config' = ?");
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' = ?");
private UserConfig() {}
private static final Statement insert = new Statement("INSERT INTO UserConfig (User, Config, Value) VALUES (?,?,?) ON DUPLICATE KEY UPDATE Value = VALUES(Value)");
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 String getConfig(int userID, String config) {
return select.select(rs -> {
@ -17,15 +36,11 @@ public class UserConfig {
}
public static void updateUserConfig(int userID, String config, String value) {
if (getConfig(userID, config) == null) {
insert.update(userID, config, value);
} else {
update.update(value, config, config);
if(value == null) {
delete.update(userID, config);
return;
}
}
public static void removePlayerEntry(int userID, String config) {
delete.update(userID, config);
insert.update(userID, config, value);
}
}

Datei anzeigen

@ -101,10 +101,10 @@ HELP_BAU_DELETE=§8/§ebuild delete §8- §7Reset your entire build server
HELP_BAU_DELETE_HOVER=§eReset build server
HELP_BAU_TESTARENA=§8/§ebuild testarena §8- §7Start a test arena
HELP_BAU_TESTARENA_HOVER=§eStart test arena
HELP_BAU_LOCK=§8/§ebuild lock §8- §7Locks the buildserver for customized group of players.
HELP_BAU_LOCK_HOVER=§eLock the build
HELP_BAU_LOCK=§8/§ebuild lock §8- §7Locks the build server for a specified group of players.
HELP_BAU_LOCK_HOVER=§eLock your build server
HELP_BAU_UNLOCK=§8/§ebuild unlock §8- §7Unlocks the buildserver for all added user.
HELP_BAU_UNLOCK_HOVER=§eUnlock the build
HELP_BAU_UNLOCK_HOVER=§eUnlock your build server
#Usage description of various commands
USAGE_ALERT=§8/§7alert §8[§emessage§8]
@ -203,10 +203,10 @@ 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 build server is currently locked.
BAU_LOCKED_OPTIONS=§eBuild server lock options: §cnone§8, §eteam§8, §aopen§8.
BAU_LOCKED_NOBODY=§eYou have closed your buildserver to all players.
BAU_LOCKED_TEAM=§eYou've closed your buildserver to all beside added team members.
BAU_LOCKED_OPEN=§eYou have reopened your build for all added players.
BAU_LOCKED_OPTIONS=§7Build server lock options§8: §cnone§8, §eteam§8, §aopen
BAU_LOCKED_NOBODY=§eYou have closed your build server for all players.
BAU_LOCKED_TEAM=§eYou've closed your build server for all players except added team members.
BAU_LOCKED_OPEN=§eYou have opened your build server for all added players.
BAU_DELMEMBER_USAGE=§8/§7build delmember §8[§eplayer§8]
BAU_DELMEMBER_SELFDEL=§cYou cannot remove yourself!
BAU_DELMEMBER_DELETED=§cPlayer was removed.

Datei anzeigen

@ -40,9 +40,9 @@ HELP_JOIN=§7Trete mit §8/§ejoin §8[§eSpieler§8] §7einem Kampf bei!
HELP_JOIN_HOVER=§eSpieler beitreten
HELP_LOCAL=§7Schreibe mit §8/§elocal §7nur auf dem lokalen Server!
HELP_LOCAL_HOVER=§eLokaler Chat
HELP_BAU_LOCK=§8/§ebuild lock §8- §7Sperre dein Bauserver für bestimmte Spieler.
HELP_BAU_LOCK=§8/§ebuild lock §8- §7Sperre deinen Bauserver für bestimmte Spieler.
HELP_BAU_LOCK_HOVER=§eSperre deinen bau
HELP_BAU_UNLOCK=§8/§ebuild unlock §8- §7SÖffne den Bauserver für alle vertrauten Spieler.
HELP_BAU_UNLOCK=§8/§ebuild unlock §8- §7SÖffne den Bauserver für alle hinzugefügten Spieler.
HELP_BAU_UNLOCK_HOVER=§eÖffne deinen bau
HELP_TNT=§8/§7tnt §8- §7(de)aktiviert Explosionsschaden
@ -187,10 +187,10 @@ 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 Bauserver ist momentan gesperrt.
BAU_LOCKED_OPTIONS=§eBauserver sperr optionen: §cnone§8, §eteam§8, §aopen§8.
BAU_LOCKED_NOBODY=§eDu hast dein Bau für alle Spieler geschlossen.
BAU_LOCKED_TEAM=§eDu hast dein Bau für alle außer hinzugefügte Teammitglieder gesperrt.
BAU_LOCKED_OPEN=§eDu hast dein Bau für alle hinzugefügten Spieler wieder geöffnet.
BAU_LOCKED_OPTIONS=§eBauserver-Sperroptionen: §cnone§8, §eteam§8, §aopen§8.
BAU_LOCKED_NOBODY=§eDu hast deinen Bau für alle Spieler geschlossen.
BAU_LOCKED_TEAM=§eDu hast deinen Bau für alle außer hinzugefügte Teammitglieder gesperrt.
BAU_LOCKED_OPEN=§eDu hast deinen Bau für alle hinzugefügten Spieler geöffnet.
BAU_DELMEMBER_USAGE=§8/§7bau delmember §8[§eSpieler§8]
BAU_DELMEMBER_SELFDEL=§cDu kannst dich nicht selbst entfernen!
BAU_DELMEMBER_DELETED=§cDer Spieler wurde entfernt.