SteamWar/BungeeCore
Archiviert
13
2

Commands #427

Zusammengeführt
Lixfel hat 5 Commits von Commands nach master 2022-09-06 15:44:37 +02:00 zusammengeführt
4 geänderte Dateien mit 20 neuen und 23 gelöschten Zeilen
Nur Änderungen aus Commit 2325190cf1 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -45,7 +45,7 @@ public class ChallengeCommand extends SWCommand {
}
@Register(description = "CHALLENGE_USAGE")
public void challenge(@Validator("fabric") ProxiedPlayer player, @Validator("target") ProxiedPlayer target, @Mapper("nonHistoricArenaMode") @OptionalValue("") @AllowNull ArenaMode arenaMode, @Mapper("arenaMap") @OptionalValue("") @AllowNull String map) {
public void challenge(@Validator("arenaPlayer") ProxiedPlayer player, @Validator("target") ProxiedPlayer target, @Mapper("nonHistoricArenaMode") @OptionalValue("") @AllowNull ArenaMode arenaMode, @Mapper("arenaMap") @OptionalValue("") @AllowNull String map) {
FightCommand.createArena(player, "/challenge " + target.getName() + " ", false, arenaMode, map, false, (p, mode, m) -> {
if(challenges.containsKey(target) && challenges.get(target).contains(p)){
challenges.remove(target);
@ -69,7 +69,7 @@ public class ChallengeCommand extends SWCommand {
});
}
@Validator("target")
@Validator(value = "target", local = true)
public TypeValidator<ProxiedPlayer> targetValidator() {
YoyoNow markierte diese Unterhaltung als gelöst
Review

Könnte der Validator nicht noch local sein? Weil targets gibts häufiger mal im BungeeCore und Challenge-Targets gibts halt nur im ChallengeCommand.

Könnte der Validator nicht noch local sein? Weil targets gibts häufiger mal im BungeeCore und Challenge-Targets gibts halt nur im ChallengeCommand.
return (sender, value, messageSender) -> {
if (value == null) {

Datei anzeigen

@ -35,8 +35,6 @@ import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.chat.hover.content.Text;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.util.LinkedList;
/**
* Jeder Fightcommand (auch bau testarena und challenge) haben folgende Optionskette:
*
@ -132,18 +130,10 @@ public class FightCommand extends SWCommand {
static void createArena(ProxiedPlayer player, String precommand, boolean allowMerging, ArenaMode arenaMode, String map, boolean historic, FightCallback callback) {
ChatSender sender = ChatSender.of(player);
if (sender.user().isPunishedWithMessage(sender, Punishment.PunishmentType.NoFightServer)) {
return;
}
Lixfel markierte diese Unterhaltung als gelöst
Review

Ich würde das FightCallback hier zu einem Runnable machen, da die Commands (wenn das dann aufgerufen wird) ja selbst auch schon Player, ArenaMode und Map haben. Dann musst du auch nicht überall mit m, p und arenaMode hantieren...

Ich würde das FightCallback hier zu einem Runnable machen, da die Commands (wenn das dann aufgerufen wird) ja selbst auch schon Player, ArenaMode und Map haben. Dann musst du auch nicht überall mit m, p und arenaMode hantieren...
Review

Sicher das das geht, ich weiß nicht ob es wirklich da ist aber sollte gehen, würde ich aber gerne erst machen wenn ich auch den 'bau test' Befehl umgebaut habe.

Sicher das das geht, ich weiß nicht ob es wirklich da ist aber sollte gehen, würde ich aber gerne erst machen wenn ich auch den 'bau test' Befehl umgebaut habe.
Review

Ja, ich bin mir sicher, dass das geht (bau test hat ja dann selbe Architektur)

Ja, ich bin mir sicher, dass das geht (bau test hat ja dann selbe Architektur)
Review

Darf ich das auch erst dann machen?

Darf ich das auch erst dann machen?
Review

Ja

Ja
Review

Bzw. erst danach (nicht zeitgleich mit Baucommand, der wird so schon Kopfzerbrechend genug)

Bzw. erst danach (nicht zeitgleich mit Baucommand, der wird so schon Kopfzerbrechend genug)
Review

ok

ok
if(alreadyInArena(player))
return;
YoyoNow markierte diese Unterhaltung als gelöst
Review

Könnte man diese Prüfung nicht in den "fabric" Validator packen? (Bzw. ihn dann arenaPlayer nennen oder so)

Könnte man diese Prüfung nicht in den "fabric" Validator packen? (Bzw. ihn dann arenaPlayer nennen oder so)
if(ModLoaderBlocker.isFabric(player) && !precommand.equals("/bau testarena ")) {
sender.system("MODLOADER_DENIED");
return;
}
if (arenaMode == null) {
getModes(sender, precommand, historic);
return;
@ -254,9 +244,9 @@ public class FightCommand extends SWCommand {
inventory.open();
}
@Register(description = "CHALLENGE_USAGE")
public void challenge(@Validator("fabric") ProxiedPlayer player, @Mapper("nonHistoricArenaMode") @OptionalValue("") @AllowNull ArenaMode arenaMode, @Mapper("arenaMap") @OptionalValue("") @AllowNull String map) {
createArena(player, "/fight", true, arenaMode, map, false, (p, mode, m) -> {
@Register
public void challenge(@Validator("arenaPlayer") ProxiedPlayer player, @Mapper("nonHistoricArenaMode") @OptionalValue("") @AllowNull ArenaMode arenaMode, @Mapper("arenaMap") @OptionalValue("") @AllowNull String map) {
createArena(player, "/fight ", true, arenaMode, map, false, (p, mode, m) -> {
Subserver arena = new ServerStarter().arena(mode, m).blueLeader(p).start();
Message.broadcast("FIGHT_BROADCAST", "FIGHT_BROADCAST_HOVER"
, new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/arena " + arena.getServer().getName()), mode.getDisplayName(), p.getName());

Datei anzeigen

@ -32,11 +32,11 @@ public class HistoricCommand extends SWCommand {
super("historic", null);
}
@Register(description = "CHALLENGE_USAGE")
public void challenge(@Validator("fabric") ProxiedPlayer player, @Mapper("nonHistoricArenaMode") @OptionalValue("") @AllowNull ArenaMode arenaMode, @Mapper("arenaMap") @OptionalValue("") @AllowNull String map) {
FightCommand.createArena(player, "/historic", true, arenaMode, map, true, (p, mode, m) -> {
@Register
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Auch hier wieder so eine merkwürdige CHALLENGE_USAGE.

Auch hier wieder so eine merkwürdige CHALLENGE_USAGE.
public void challenge(@Validator("arenaPlayer") ProxiedPlayer player, @Mapper("nonHistoricArenaMode") @OptionalValue("") @AllowNull ArenaMode arenaMode, @Mapper("arenaMap") @OptionalValue("") @AllowNull String map) {
FightCommand.createArena(player, "/historic ", true, arenaMode, map, true, (p, mode, m) -> {
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Leerzeichen nach /historic!

Leerzeichen nach /historic!
Subserver arena = new ServerStarter().arena(mode, m).blueLeader(p).start();
Message.broadcast("CHALLENGE_BROADCAST", "CHALLENGE_BROADCAST_HOVER",
Message.broadcast("HISTORIC_BROADCAST", "HISTORIC_BROADCAST_HOVER",
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Wie wäre es mit HISTORIC statt CHALLENGE?

Wie wäre es mit HISTORIC statt CHALLENGE?
new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/arena " + arena.getServer().getName()), mode.getDisplayName(), p.getName());
});
}

Datei anzeigen

@ -21,9 +21,11 @@ package de.steamwar.bungeecore.commands;
import de.steamwar.bungeecore.ArenaMode;
import de.steamwar.bungeecore.listeners.mods.ModLoaderBlocker;
import de.steamwar.bungeecore.sql.Punishment;
import de.steamwar.command.SWCommandUtils;
import de.steamwar.command.TypeMapper;
import de.steamwar.command.TypeValidator;
import de.steamwar.messages.ChatSender;
import lombok.experimental.UtilityClass;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.connection.ProxiedPlayer;
@ -36,14 +38,19 @@ import java.util.List;
public class TypeMappers {
public static void init() {
SWCommandUtils.addValidator("fabric", fabricChecker());
SWCommandUtils.addValidator("arenaPlayer", fabricChecker());
SWCommandUtils.addMapper("nonHistoricArenaMode", arenaModeTypeMapper(false));
SWCommandUtils.addMapper("historicArenaMode", arenaModeTypeMapper(true));
SWCommandUtils.addMapper("arenaMap", arenaMapTypeMapper());
}
YoyoNow markierte diese Unterhaltung als gelöst
Review

Könnte man diese Konstruktoren nicht private machen?

Könnte man diese Konstruktoren nicht private machen?
public static TypeValidator<ProxiedPlayer> fabricChecker() {
private static TypeValidator<ProxiedPlayer> fabricChecker() {
return (sender, value, messageSender) -> {
ChatSender player = ChatSender.of(value);
if (player.user().isPunishedWithMessage(player, Punishment.PunishmentType.NoFightServer)) {
return false;
}
if (ModLoaderBlocker.isFabric(value)) {
messageSender.send("MODLOADER_DENIED");
return false;
@ -52,7 +59,7 @@ public class TypeMappers {
};
}
public static TypeMapper<ArenaMode> arenaModeTypeMapper(boolean historic) {
private static TypeMapper<ArenaMode> arenaModeTypeMapper(boolean historic) {
return new TypeMapper<ArenaMode>() {
@Override
public ArenaMode map(CommandSender commandSender, String[] previousArguments, String s) {
@ -66,7 +73,7 @@ public class TypeMappers {
};
}
public static TypeMapper<String> arenaMapTypeMapper() {
private static TypeMapper<String> arenaMapTypeMapper() {
return new TypeMapper<String>() {
@Override
public String map(CommandSender commandSender, String[] previousArguments, String s) {