diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/bau/BauCommand.java b/BauSystem_Main/src/de/steamwar/bausystem/features/bau/BauCommand.java
new file mode 100644
index 00000000..40f9fa4f
--- /dev/null
+++ b/BauSystem_Main/src/de/steamwar/bausystem/features/bau/BauCommand.java
@@ -0,0 +1,133 @@
+/*
+ * This file is a part of the SteamWar software.
+ *
+ * Copyright (C) 2021 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 .
+ */
+
+package de.steamwar.bausystem.features.bau;
+
+import de.steamwar.bausystem.BauSystem;
+import de.steamwar.bausystem.Permission;
+import de.steamwar.bausystem.config.BauServer;
+import de.steamwar.bausystem.linkage.LinkageType;
+import de.steamwar.bausystem.linkage.Linked;
+import de.steamwar.command.SWCommand;
+import de.steamwar.command.SWCommandUtils;
+import de.steamwar.command.TypeMapper;
+import de.steamwar.sql.BauweltMember;
+import de.steamwar.sql.SteamwarUser;
+import org.bukkit.entity.Player;
+
+import java.util.stream.Collectors;
+
+@Linked(LinkageType.COMMAND)
+public class BauCommand extends SWCommand {
+
+ public BauCommand() {
+ super("bau", "b", "gs");
+ }
+
+ @Register(help = true)
+ public void genericHelp(Player p, String... args) {
+ p.sendMessage("§8/§ebau togglewe §8[§7Player§8] §8- §7Editiere die WorldEdit Rechte eines Spielers");
+ p.sendMessage("§8/§ebau toggleworld §8[§7Player§8] §8- §7Editiere die Werlt Rechte eines Spielers");
+ }
+
+ @Register("info")
+ public void infoCommand(Player p) {
+ // TODO: Implement this
+ // CommandInfo.sendBauInfo(p);
+ }
+
+ @Register("togglewe")
+ public void toggleWECommand(Player p, SteamwarUser user) {
+ if (!permissionCheck(p)) {
+ return;
+ }
+ onToggleWE(p, user);
+ }
+
+ @Register("toggleworld")
+ public void toggleWorldCommand(Player p, SteamwarUser user) {
+ if (!permissionCheck(p)) {
+ return;
+ }
+ onToggleWorld(p, user);
+ }
+
+ private void onToggleWE(Player p, SteamwarUser id) {
+ if (negativeToggleCheck(p, id)) {
+ return;
+ }
+
+ BauweltMember target = BauweltMember.getBauMember(BauServer.getInstance().getOwnerID(), id.getId());
+ Permission.WORLDEDIT.toggle(p, target);
+ }
+
+ private void onToggleWorld(Player p, SteamwarUser id) {
+ if (negativeToggleCheck(p, id)) {
+ return;
+ }
+
+ BauweltMember target = BauweltMember.getBauMember(BauServer.getInstance().getOwnerID(), id.getId());
+ Permission.WORLD.toggle(p, target);
+ }
+
+ private boolean negativeToggleCheck(Player p, SteamwarUser id) {
+ if (id == null) {
+ p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
+ return true;
+ }
+
+ BauweltMember target = BauweltMember.getBauMember(BauServer.getInstance().getOwnerID(), id.getId());
+ if (target == null) {
+ p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt!");
+ return true;
+ }
+ return false;
+ }
+
+
+ private boolean permissionCheck(Player p) {
+ if (!BauServer.getInstance().getOwner().equals(p.getUniqueId())) {
+ p.sendMessage(BauSystem.PREFIX + "§cDies ist nicht deine Welt!");
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+
+ @ClassMapper(value = SteamwarUser.class, local = true)
+ private TypeMapper steamwarUserTypeMapper() {
+ return SWCommandUtils.createMapper(s -> BauweltMember.getMembers(BauServer.getInstance().getOwnerID())
+ .stream()
+ .map(m -> SteamwarUser.get(m.getMemberID()))
+ .filter(u -> u.getUserName().equals(s))
+ .findFirst()
+ .orElse(null),
+ (c, s) -> {
+ if (!(c instanceof Player)) {
+ return null;
+ }
+ Player p = (Player) c;
+ return BauweltMember.getMembers(SteamwarUser.get(p.getUniqueId()).getId())
+ .stream()
+ .map(m -> SteamwarUser.get(m.getMemberID()).getUserName())
+ .collect(Collectors.toList());
+ });
+ }
+}