Merge branch 'master' into betterDiscord
Dieser Commit ist enthalten in:
Commit
be2e1eaeed
@ -130,6 +130,7 @@ public class BungeeCore extends Plugin {
|
|||||||
new VerifyCommand();
|
new VerifyCommand();
|
||||||
|
|
||||||
if(!EVENT_MODE){
|
if(!EVENT_MODE){
|
||||||
|
new BauCommand();
|
||||||
new WebregisterCommand();
|
new WebregisterCommand();
|
||||||
new FightCommand();
|
new FightCommand();
|
||||||
new ChallengeCommand();
|
new ChallengeCommand();
|
||||||
|
@ -20,38 +20,38 @@
|
|||||||
package de.steamwar.bungeecore.commands;
|
package de.steamwar.bungeecore.commands;
|
||||||
|
|
||||||
import de.steamwar.bungeecore.*;
|
import de.steamwar.bungeecore.*;
|
||||||
|
import de.steamwar.bungeecore.comms.packets.BaumemberUpdatePacket;
|
||||||
import de.steamwar.bungeecore.inventory.SWInventory;
|
import de.steamwar.bungeecore.inventory.SWInventory;
|
||||||
import de.steamwar.bungeecore.inventory.SWItem;
|
import de.steamwar.bungeecore.inventory.SWItem;
|
||||||
import de.steamwar.bungeecore.sql.BauweltMember;
|
import de.steamwar.bungeecore.sql.BauweltMember;
|
||||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||||
|
import net.md_5.bungee.api.CommandSender;
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
|
import net.md_5.bungee.api.config.ServerInfo;
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
import net.md_5.bungee.api.event.ChatEvent;
|
|
||||||
|
|
||||||
public class BauCommand {
|
public class BauCommand extends BasicCommand {
|
||||||
|
|
||||||
private BauCommand(){}
|
public BauCommand(){
|
||||||
|
super("bau", null, "b", "gs");
|
||||||
|
}
|
||||||
|
|
||||||
public static void onBau(ChatEvent e, String[] command){
|
@Override
|
||||||
if(BungeeCore.EVENT_MODE)
|
public void execute(CommandSender sender, String[] args) {
|
||||||
|
if(!(sender instanceof ProxiedPlayer))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ProxiedPlayer p = (ProxiedPlayer) e.getSender();
|
ProxiedPlayer p = (ProxiedPlayer) sender;
|
||||||
Subserver server = Subserver.getSubserver(p);
|
|
||||||
Bauserver bau = (server != null && server.getType() == Servertype.BAUSERVER) ? (Bauserver)server : null;
|
|
||||||
boolean ownBau = bau != null && bau.getOwner().equals(p.getUniqueId());
|
|
||||||
e.setCancelled(true);
|
|
||||||
BungeeCore.log(p, e.getMessage());
|
|
||||||
|
|
||||||
if(command.length == 1){
|
if(args.length == 0){
|
||||||
if(bau15(p, command, 1))
|
if(bau15(p, args, 0))
|
||||||
SubserverSystem.sendToBau15(p, p.getUniqueId());
|
SubserverSystem.sendToBau15(p, p.getUniqueId());
|
||||||
else
|
else
|
||||||
SubserverSystem.sendToBauServer(p, p.getUniqueId());
|
SubserverSystem.sendToBauServer(p, p.getUniqueId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(command[1].toLowerCase()){
|
switch(args[0].toLowerCase()){
|
||||||
case "ws":
|
case "ws":
|
||||||
case "warship":
|
case "warship":
|
||||||
case "12":
|
case "12":
|
||||||
@ -72,52 +72,44 @@ public class BauCommand {
|
|||||||
SubserverSystem.sendToBau15paper(p, p.getUniqueId());
|
SubserverSystem.sendToBau15paper(p, p.getUniqueId());
|
||||||
break;
|
break;
|
||||||
case "addmember":
|
case "addmember":
|
||||||
addmember(p, command);
|
addmember(p, args);
|
||||||
break;
|
break;
|
||||||
case "tp":
|
case "tp":
|
||||||
case "teleport":
|
case "teleport":
|
||||||
teleport(p, command);
|
teleport(p, args);
|
||||||
break;
|
break;
|
||||||
case "info":
|
case "info":
|
||||||
if (bau != null) {
|
p.chat("/bauinfo");
|
||||||
e.setCancelled(false);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case "togglewe":
|
case "togglewe":
|
||||||
if(ownBau && command.length > 2)
|
togglewe(p, args);
|
||||||
e.setCancelled(false);
|
|
||||||
else
|
|
||||||
togglewe(p, command);
|
|
||||||
break;
|
break;
|
||||||
case "toggleworld":
|
case "toggleworld":
|
||||||
if(ownBau && command.length > 2)
|
toggleworld(p, args);
|
||||||
e.setCancelled(false);
|
|
||||||
else
|
|
||||||
toggleworld(p, command);
|
|
||||||
break;
|
break;
|
||||||
case "delmember":
|
case "delmember":
|
||||||
delmember(p, command);
|
delmember(p, args);
|
||||||
break;
|
break;
|
||||||
case "resetall":
|
case "resetall":
|
||||||
case "delete":
|
case "delete":
|
||||||
delete(p, command);
|
delete(p, args);
|
||||||
break;
|
break;
|
||||||
case "testarena":
|
case "testarena":
|
||||||
case "test":
|
case "test":
|
||||||
testarena(p, command);
|
testarena(p, args);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
HelpCommand.sendBauHelp(p);
|
HelpCommand.sendBauHelp(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addmember(ProxiedPlayer p, String[] command){
|
private static void addmember(ProxiedPlayer p, String[] args){
|
||||||
if (command.length == 2) {
|
if (args.length == 1) {
|
||||||
Message.send("BAU_ADDMEMBER_USAGE", p);
|
Message.send("BAU_ADDMEMBER_USAGE", p);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SteamwarUser target = SteamwarUser.get(command[2]);
|
SteamwarUser target = SteamwarUser.get(args[1]);
|
||||||
if (target == null) {
|
if (target == null) {
|
||||||
Message.send("UNKNOWN_PLAYER", p);
|
Message.send("UNKNOWN_PLAYER", p);
|
||||||
return;
|
return;
|
||||||
@ -137,13 +129,13 @@ public class BauCommand {
|
|||||||
Message.send("BAU_ADDMEMBER_ADDED_TARGET", z, p.getName());
|
Message.send("BAU_ADDMEMBER_ADDED_TARGET", z, p.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void teleport(ProxiedPlayer p, String[] command){
|
private static void teleport(ProxiedPlayer p, String[] args){
|
||||||
if (command.length == 2) {
|
if (args.length == 1) {
|
||||||
Message.send("BAU_TP_USAGE", p);
|
Message.send("BAU_TP_USAGE", p);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SteamwarUser worldOwner = SteamwarUser.get(command[2]);
|
SteamwarUser worldOwner = SteamwarUser.get(args[1]);
|
||||||
if (worldOwner == null) {
|
if (worldOwner == null) {
|
||||||
Message.send("UNKNOWN_PLAYER", p);
|
Message.send("UNKNOWN_PLAYER", p);
|
||||||
return;
|
return;
|
||||||
@ -153,7 +145,7 @@ public class BauCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(bau15(p, command, 3))
|
if(bau15(p, args, 2))
|
||||||
SubserverSystem.sendToBau15(p, worldOwner.getUuid());
|
SubserverSystem.sendToBau15(p, worldOwner.getUuid());
|
||||||
else
|
else
|
||||||
SubserverSystem.sendToBauServer(p, worldOwner.getUuid());
|
SubserverSystem.sendToBauServer(p, worldOwner.getUuid());
|
||||||
@ -183,31 +175,43 @@ public class BauCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void togglewe(ProxiedPlayer p, String[] command){
|
private static void togglewe(ProxiedPlayer p, String[] args){
|
||||||
BauweltMember target = toggle(p, command, "togglewe");
|
BauweltMember target = toggle(p, args, "togglewe");
|
||||||
if(target == null)
|
if(target == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
target.setWorldEdit(!target.isWorldEdit());
|
target.setWorldEdit(!target.isWorldEdit());
|
||||||
|
clearMembercache(p);
|
||||||
isAllowedTo(target.isWorldEdit(), p, target, "WorldEdit verwenden");
|
isAllowedTo(target.isWorldEdit(), p, target, "WorldEdit verwenden");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void toggleworld(ProxiedPlayer p, String[] command){
|
private static void toggleworld(ProxiedPlayer p, String[] args){
|
||||||
BauweltMember target = toggle(p, command, "toggleworld");
|
BauweltMember target = toggle(p, args, "toggleworld");
|
||||||
if(target == null)
|
if(target == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
target.setWorld(!target.isWorld());
|
target.setWorld(!target.isWorld());
|
||||||
|
clearMembercache(p);
|
||||||
isAllowedTo(target.isWorld(), p, target, "Einstellungen vornehmen");
|
isAllowedTo(target.isWorld(), p, target, "Einstellungen vornehmen");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void delmember(ProxiedPlayer p, String[] command){
|
private static void clearMembercache(ProxiedPlayer p){
|
||||||
if (command.length == 2) {
|
for(ServerInfo info : ProxyServer.getInstance().getServers().values()){
|
||||||
|
Subserver server = Subserver.getSubserver(info);
|
||||||
|
if(server != null && server.getType() == Servertype.BAUSERVER && ((Bauserver)server).getOwner().equals(p.getUniqueId())){
|
||||||
|
info.getPlayers().stream().findAny().ifPresent(player -> new BaumemberUpdatePacket().send(player));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void delmember(ProxiedPlayer p, String[] args){
|
||||||
|
if (args.length == 1) {
|
||||||
Message.send("BAU_DELMEMBER_USAGE", p);
|
Message.send("BAU_DELMEMBER_USAGE", p);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BauweltMember target = member(p, SteamwarUser.get(command[2]));
|
BauweltMember target = member(p, SteamwarUser.get(args[1]));
|
||||||
if(target == null)
|
if(target == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -228,13 +232,13 @@ public class BauCommand {
|
|||||||
Message.send("BAU_DELMEMBER_DELETED", p);
|
Message.send("BAU_DELMEMBER_DELETED", p);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void delete(ProxiedPlayer p, String[] command){
|
private static void delete(ProxiedPlayer p, String[] args){
|
||||||
SWInventory inventory = new SWInventory(p, 9, Message.parse("BAU_DELETE_GUI_NAME", p));
|
SWInventory inventory = new SWInventory(p, 9, Message.parse("BAU_DELETE_GUI_NAME", p));
|
||||||
inventory.addItem(8, new SWItem(Message.parse("BAU_DELETE_GUI_CANCEL", p), 1), click ->
|
inventory.addItem(8, new SWItem(Message.parse("BAU_DELETE_GUI_CANCEL", p), 1), click ->
|
||||||
inventory.close()
|
inventory.close()
|
||||||
);
|
);
|
||||||
inventory.addItem(0, new SWItem(Message.parse("BAU_DELETE_GUI_DELETE", p), 10), click -> {
|
inventory.addItem(0, new SWItem(Message.parse("BAU_DELETE_GUI_DELETE", p), 10), click -> {
|
||||||
if(bau15(p, command, 2)){
|
if(bau15(p, args, 1)){
|
||||||
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
||||||
deleteWorld(p, BungeeCore.USERWORLDS15 + user.getId());
|
deleteWorld(p, BungeeCore.USERWORLDS15 + user.getId());
|
||||||
}else{
|
}else{
|
||||||
@ -257,12 +261,12 @@ public class BauCommand {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void stopBauserver(ProxiedPlayer p){
|
public static boolean stopBauserver(ProxiedPlayer p){
|
||||||
for (Subserver subserver : Subserver.getServerList()) {
|
for (Subserver subserver : Subserver.getServerList()) {
|
||||||
if (subserver.getType() == Servertype.BAUSERVER && ((Bauserver) subserver).getOwner().equals(p.getUniqueId())) {
|
if (subserver.getType() == Servertype.BAUSERVER && ((Bauserver) subserver).getOwner().equals(p.getUniqueId())) {
|
||||||
if(subserver.getServer().getPlayers().isEmpty()){
|
if(!subserver.hasStarted()){
|
||||||
Message.send("BAU_START_ALREADY", p);
|
Message.send("BAU_START_ALREADY", p);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
subserver.stop();
|
subserver.stop();
|
||||||
try {
|
try {
|
||||||
@ -273,11 +277,12 @@ public class BauCommand {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void testarena(ProxiedPlayer p, String[] command){
|
private static void testarena(ProxiedPlayer p, String[] args){
|
||||||
FightCommand.createArena(p, "/bau testarena ", command, 2, false, (player, mode, map) -> ProxyServer.getInstance().getScheduler().runAsync(BungeeCore.get(), () -> {
|
FightCommand.createArena(p, "/bau testarena ", args, 1, false, (player, mode, map) -> ProxyServer.getInstance().getScheduler().runAsync(BungeeCore.get(), () -> {
|
||||||
stopBauserver(p);
|
if(stopBauserver(p))
|
||||||
SubserverSystem.startTestServer(p, mode, map, 0, 0);
|
SubserverSystem.startTestServer(p, mode, map, 0, 0);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -296,13 +301,13 @@ public class BauCommand {
|
|||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static BauweltMember toggle(ProxiedPlayer p, String[] command, String subcommand){
|
private static BauweltMember toggle(ProxiedPlayer p, String[] args, String subcommand){
|
||||||
if (command.length == 2) {
|
if (args.length == 1) {
|
||||||
Message.send("BAU_MEMBER_TOGGLE_USAGE", p, subcommand);
|
Message.send("BAU_MEMBER_TOGGLE_USAGE", p, subcommand);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
SteamwarUser member = SteamwarUser.get(command[2]);
|
SteamwarUser member = SteamwarUser.get(args[1]);
|
||||||
return member(p, member);
|
return member(p, member);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,7 +234,10 @@ public class CheckCommand extends BasicCommand {
|
|||||||
this.checkList = checkQuestions.get(schematic.getSchemType()).listIterator();
|
this.checkList = checkQuestions.get(schematic.getSchemType()).listIterator();
|
||||||
|
|
||||||
ProxyServer.getInstance().getScheduler().runAsync(BungeeCore.get(), () -> {
|
ProxyServer.getInstance().getScheduler().runAsync(BungeeCore.get(), () -> {
|
||||||
BauCommand.stopBauserver(checker);
|
if(!BauCommand.stopBauserver(checker)){
|
||||||
|
remove();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ArenaMode mode = ArenaMode.getBySchemType(schematic.getSchemType().fightType());
|
ArenaMode mode = ArenaMode.getBySchemType(schematic.getSchemType().fightType());
|
||||||
SubserverSystem.startTestServer(checker, mode, FightCommand.getMap(checker, mode, "Random"), schematic.getSchemID(), 0);
|
SubserverSystem.startTestServer(checker, mode, FightCommand.getMap(checker, mode, "Random"), schematic.getSchemID(), 0);
|
||||||
@ -323,8 +326,7 @@ public class CheckCommand extends BasicCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void stop(){
|
private void stop(){
|
||||||
currentCheckers.remove(checker.getUniqueId());
|
remove();
|
||||||
currentSchems.remove(schematic.getSchemID());
|
|
||||||
ProxyServer.getInstance().getScheduler().runAsync(BungeeCore.get(), () -> {
|
ProxyServer.getInstance().getScheduler().runAsync(BungeeCore.get(), () -> {
|
||||||
for (Subserver subserver : Subserver.getServerList()) {
|
for (Subserver subserver : Subserver.getServerList()) {
|
||||||
if (subserver.getType() == Servertype.BAUSERVER && ((Bauserver) subserver).getOwner().equals(checker.getUniqueId())) {
|
if (subserver.getType() == Servertype.BAUSERVER && ((Bauserver) subserver).getOwner().equals(checker.getUniqueId())) {
|
||||||
@ -334,5 +336,10 @@ public class CheckCommand extends BasicCommand {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void remove() {
|
||||||
|
currentCheckers.remove(checker.getUniqueId());
|
||||||
|
currentSchems.remove(schematic.getSchemID());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ public class PacketIdManager {
|
|||||||
public static final byte PING_PACKET = 0x01;
|
public static final byte PING_PACKET = 0x01;
|
||||||
public static final byte TABLIST_NAME = 0x02;
|
public static final byte TABLIST_NAME = 0x02;
|
||||||
public static final byte PREPARE_SCHEM = 0x03;
|
public static final byte PREPARE_SCHEM = 0x03;
|
||||||
|
public static final byte BAUMEMBER_UPDATE = 0x04;
|
||||||
|
|
||||||
//0x1(X) Bungee Inventory
|
//0x1(X) Bungee Inventory
|
||||||
public static final byte INVENTORY_PACKET = 0x10;
|
public static final byte INVENTORY_PACKET = 0x10;
|
||||||
|
36
src/de/steamwar/bungeecore/comms/packets/BaumemberUpdatePacket.java
Normale Datei
36
src/de/steamwar/bungeecore/comms/packets/BaumemberUpdatePacket.java
Normale Datei
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
This file is a part of the SteamWar software.
|
||||||
|
|
||||||
|
Copyright (C) 2020 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.comms.packets;
|
||||||
|
|
||||||
|
import com.google.common.io.ByteArrayDataOutput;
|
||||||
|
import de.steamwar.bungeecore.comms.BungeePacket;
|
||||||
|
import de.steamwar.bungeecore.comms.PacketIdManager;
|
||||||
|
|
||||||
|
public class BaumemberUpdatePacket extends BungeePacket {
|
||||||
|
@Override
|
||||||
|
public int getId() {
|
||||||
|
return PacketIdManager.BAUMEMBER_UPDATE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeVars(ByteArrayDataOutput byteArrayDataOutput) {
|
||||||
|
// empty
|
||||||
|
}
|
||||||
|
}
|
@ -22,7 +22,6 @@ package de.steamwar.bungeecore.listeners;
|
|||||||
import de.steamwar.bungeecore.*;
|
import de.steamwar.bungeecore.*;
|
||||||
import de.steamwar.bungeecore.bot.SteamwarDiscordBot;
|
import de.steamwar.bungeecore.bot.SteamwarDiscordBot;
|
||||||
import de.steamwar.bungeecore.bot.listeners.IngameChatListener;
|
import de.steamwar.bungeecore.bot.listeners.IngameChatListener;
|
||||||
import de.steamwar.bungeecore.commands.BauCommand;
|
|
||||||
import de.steamwar.bungeecore.commands.TpCommand;
|
import de.steamwar.bungeecore.commands.TpCommand;
|
||||||
import de.steamwar.bungeecore.comms.packets.PingPacket;
|
import de.steamwar.bungeecore.comms.packets.PingPacket;
|
||||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||||
@ -82,11 +81,6 @@ public class ChatListener extends BasicListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch(command[0].toLowerCase()){
|
switch(command[0].toLowerCase()){
|
||||||
case "/bau":
|
|
||||||
case "/b":
|
|
||||||
case "/gs":
|
|
||||||
BauCommand.onBau(e, command);
|
|
||||||
break;
|
|
||||||
case "/bc":
|
case "/bc":
|
||||||
case "/bauchat":
|
case "/bauchat":
|
||||||
case "/local":
|
case "/local":
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren