Umbau der MissileWars Commands auf das neue Command Framework #53
66
src/de/steamwar/misslewars/commands/AcceptCommand.java
Normale Datei
66
src/de/steamwar/misslewars/commands/AcceptCommand.java
Normale Datei
@ -0,0 +1,66 @@
|
||||
/*
|
||||
*
|
||||
* 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/>.
|
||||
* /
|
||||
PsiRobot markierte diese Unterhaltung als gelöst
|
||||
*/
|
||||
|
||||
package de.steamwar.misslewars.commands;
|
||||
|
||||
import de.steamwar.misslewars.Config;
|
||||
import de.steamwar.misslewars.MWTeam;
|
||||
import de.steamwar.misslewars.MissileWars;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.TypeValidator;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class AcceptCommand extends SWCommand {
|
||||
public AcceptCommand() {
|
||||
PsiRobot markierte diese Unterhaltung als gelöst
YoyoNow
hat
Leerzeile bitte davor Leerzeile bitte davor
|
||||
super("accept");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void onCommand(@Validator Player player, String... varargs) {
|
||||
MWTeam teamInvitation = MissileWars.getInvitation(player);
|
||||
if (teamInvitation == null) {
|
||||
player.sendMessage("§cDu wurdest nicht eingeladen.");
|
||||
}
|
||||
else {
|
||||
teamInvitation.acceptInvite(player);
|
||||
message(teamInvitation, "§7Der Spieler §e" + player.getName() + "§7 ist dem Team §abeigetreten§7.");
|
||||
}
|
||||
}
|
||||
|
||||
@ClassValidator(value = Player.class, local = true)
|
||||
public TypeValidator<Player> validator() {
|
||||
return new TypeValidator<Player>() {
|
||||
@Override
|
||||
public boolean validate(CommandSender commandSender, Player player, MessageSender messageSender) {
|
||||
if (Config.isChallenge()) {
|
||||
messageSender.send("§cDieser Command ist deaktiviert.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void message(MWTeam mwTeam, String s) {
|
||||
mwTeam.getPlayers().forEach(player -> player.sendMessage(s));
|
||||
}
|
||||
}
|
68
src/de/steamwar/misslewars/commands/DeclineCommand.java
Normale Datei
68
src/de/steamwar/misslewars/commands/DeclineCommand.java
Normale Datei
@ -0,0 +1,68 @@
|
||||
/*
|
||||
*
|
||||
* 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/>.
|
||||
* /
|
||||
PsiRobot markierte diese Unterhaltung als gelöst
YoyoNow
hat
s.o. s.o.
|
||||
*/
|
||||
|
||||
package de.steamwar.misslewars.commands;
|
||||
|
||||
import de.steamwar.misslewars.Config;
|
||||
import de.steamwar.misslewars.MWTeam;
|
||||
import de.steamwar.misslewars.MissileWars;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.TypeValidator;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class DeclineCommand extends SWCommand {
|
||||
public DeclineCommand() {
|
||||
PsiRobot markierte diese Unterhaltung als gelöst
YoyoNow
hat
s.o. s.o.
|
||||
super("decline");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void onCommand(@Validator Player player, String... varargs) {
|
||||
MWTeam teamInvitation = MissileWars.getInvitation(player);
|
||||
if (teamInvitation == null) {
|
||||
player.sendMessage("§cDu wurdest nicht eingeladen.");
|
||||
}
|
||||
else {
|
||||
PsiRobot markierte diese Unterhaltung als gelöst
YoyoNow
hat
else gehört in die gleiche Zeile mit } else gehört in die gleiche Zeile mit }
|
||||
MWTeam.removeInvitations(player);
|
||||
message(teamInvitation, "§7Der Spieler §e" + player.getName() + "§7 hat die Einladung §cabgelehnt§7.");
|
||||
}
|
||||
}
|
||||
|
||||
@ClassValidator(value = Player.class, local = true)
|
||||
public TypeValidator<Player> validator() {
|
||||
return new TypeValidator<Player>() {
|
||||
@Override
|
||||
public boolean validate(CommandSender commandSender, Player player, MessageSender messageSender) {
|
||||
if (!Config.isChallenge()) {
|
||||
messageSender.send("§cDieser Command ist deaktiviert.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void message(MWTeam mwTeam, String s) {
|
||||
mwTeam.getPlayers().forEach(player -> player.sendMessage(s));
|
||||
}
|
||||
|
||||
}
|
79
src/de/steamwar/misslewars/commands/InviteCommand.java
Normale Datei
79
src/de/steamwar/misslewars/commands/InviteCommand.java
Normale Datei
@ -0,0 +1,79 @@
|
||||
package de.steamwar.misslewars.commands;
|
||||
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.TypeValidator;
|
||||
import de.steamwar.misslewars.Config;
|
||||
import de.steamwar.misslewars.MWTeam;
|
||||
import de.steamwar.misslewars.MissileWars;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class InviteCommand extends SWCommand implements TabCompleter {
|
||||
|
||||
public InviteCommand() {
|
||||
super("invite", "inv");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void onCommand(@Validator Player player, String playerName, String... varargs) {
|
||||
MWTeam team = MissileWars.getTeam(player);
|
||||
Player invitedPlayer = Bukkit.getPlayer(playerName);
|
||||
if (!Config.RedLeader.equals(player.getUniqueId()) && !Config.BlueLeader.equals(player.getUniqueId()) || team == null) {
|
||||
player.sendMessage("§cDu kannst keine Spieler einladen.");
|
||||
}
|
||||
else if (invitedPlayer == null) {
|
||||
player.sendMessage("§cDieser Spieler ist nicht online.");
|
||||
}
|
||||
else if (MissileWars.getTeam(invitedPlayer) != null) {
|
||||
player.sendMessage("§cDieser Spieler ist bereits in einem Team.");
|
||||
}
|
||||
else if (MissileWars.getInvitation(invitedPlayer) != null) {
|
||||
player.sendMessage("§cDieser Spieler wurde bereits eingeladen.");
|
||||
}
|
||||
else {
|
||||
team.invitePlayer(invitedPlayer);
|
||||
player.sendMessage("§7Du hast §e" + invitedPlayer.getName() + " §7eingeladen.");
|
||||
invitedPlayer.sendMessage("§7Du wurdest von §e" + player.getName() + "§7 in das Team §e" + MissileWars.getTeam(player).getColoredName() + "§7 eingeladen.");
|
||||
invitedPlayer.sendMessage("§8/§eaccept §8- §7Zum akzeptieren.");
|
||||
invitedPlayer.sendMessage("§8/§edecline §8- §7Zum ablehnen.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
|
||||
PsiRobot markierte diese Unterhaltung als gelöst
YoyoNow
hat
So nicht. So nicht.
YoyoNow
hat
Ich komme gleich kurz vorbei und erkläre wie du das machst. Ich komme gleich kurz vorbei und erkläre wie du das machst.
|
||||
if (args.length == 1) {
|
||||
return Bukkit.getOnlinePlayers()
|
||||
.stream()
|
||||
.filter(p -> MissileWars.getTeam(p) != null)
|
||||
.filter(p -> MissileWars.getInvitation(p) != null)
|
||||
.map(Player::getName)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@ClassValidator(value = Player.class, local = true)
|
||||
public TypeValidator<Player> validator() {
|
||||
return new TypeValidator<Player>() {
|
||||
@Override
|
||||
public boolean validate(CommandSender commandSender, Player player, MessageSender messageSender) {
|
||||
if (Config.isChallenge()) {
|
||||
messageSender.send("§cDieser Command ist deaktiviert.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void message(MWTeam mwTeam, String s) {
|
||||
mwTeam.getPlayers().forEach(player -> player.sendMessage(s));
|
||||
}
|
||||
}
|
65
src/de/steamwar/misslewars/commands/SpectateCommand.java
Normale Datei
65
src/de/steamwar/misslewars/commands/SpectateCommand.java
Normale Datei
@ -0,0 +1,65 @@
|
||||
/*
|
||||
*
|
||||
* 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/>.
|
||||
* /
|
||||
PsiRobot markierte diese Unterhaltung als gelöst
YoyoNow
hat
s.o. s.o.
|
||||
*/
|
||||
|
||||
package de.steamwar.misslewars.commands;
|
||||
|
||||
import de.steamwar.misslewars.Config;
|
||||
import de.steamwar.misslewars.MWTeam;
|
||||
import de.steamwar.misslewars.MissileWars;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.TypeValidator;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class SpectateCommand extends SWCommand {
|
||||
public SpectateCommand() {
|
||||
PsiRobot markierte diese Unterhaltung als gelöst
YoyoNow
hat
s.o. s.o.
|
||||
super("spectate", "spec");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void onCommand(@Validator Player player, String... varargs) {
|
||||
PsiRobot markierte diese Unterhaltung als gelöst
YoyoNow
hat
Auch hier würde ich String... varargs weglassen Auch hier würde ich String... varargs weglassen
|
||||
MWTeam mwTeam = MissileWars.getTeam(player);
|
||||
if (mwTeam == null) return;
|
||||
if (mwTeam.size() == 1) {
|
||||
player.sendMessage("§cDu bist alleine im Team, zuschauen ist daher nicht möglich.");
|
||||
}
|
||||
MissileWars.leave(player);
|
||||
player.setGameMode(GameMode.SPECTATOR);
|
||||
player.getInventory().clear();
|
||||
player.updateInventory();
|
||||
}
|
||||
|
||||
@ClassValidator(value = Player.class, local = true)
|
||||
public TypeValidator<Player> validator() {
|
||||
return new TypeValidator<Player>() {
|
||||
@Override
|
||||
public boolean validate(CommandSender commandSender, Player player, MessageSender messageSender) {
|
||||
if (Config.isChallenge()) {
|
||||
messageSender.send("§cDieser Command ist deaktiviert.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
In neuem Issue referenzieren
Einen Benutzer sperren
Why?