SteamWar/BungeeCore
Archiviert
13
2

Various updates

Dieser Commit ist enthalten in:
Lixfel 2019-03-17 14:55:36 +01:00
Ursprung df834fab5f
Commit 78e6cd5696
17 geänderte Dateien mit 363 neuen und 92 gelöschten Zeilen

Datei anzeigen

@ -2,6 +2,7 @@ package de.warking.bungeecore;
import de.warking.bungeecore.arenasystem.ArenaSystem;
import de.warking.bungeecore.commands.*;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration;
@ -13,6 +14,7 @@ import java.io.IOException;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.logging.Level;
public class BungeeCore extends Plugin {
@ -23,6 +25,7 @@ public class BungeeCore extends Plugin {
public static final DateTimeFormatter DateFormat = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
public static String LobbyServer;
public static final HashMap<String, String> serverPermissions = new HashMap<>();
public static final HashMap<String, String> commands = new HashMap<>();
@Override
public void onEnable(){
@ -76,6 +79,8 @@ public class BungeeCore extends Plugin {
commands.toArray(new String[0])
));
}
commands.put("/bau", "");
commands.remove("/bauserver");
addCmd(new TeamchatCommand());
addCmd(new MsgCommand());
@ -94,6 +99,16 @@ public class BungeeCore extends Plugin {
public void onDisable(){
ArenaSystem.shutdown();
sql.close();
getProxy().getPluginManager().unregisterCommands(this);
getProxy().getPluginManager().unregisterListeners(this);
}
public static void log(final String message, final ServerInfo server){
log("[" + server.getName() + "] " + message);
}
public static void log(final String message){
instance.getLogger().log(Level.INFO, message);
}
private void addCmd(Command cmd){

Datei anzeigen

@ -1,6 +1,8 @@
package de.warking.bungeecore;
import de.warking.bungeecore.arenasystem.ArenaSystem;
import net.md_5.bungee.api.AbstractReconnectHandler;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.config.ServerInfo;
@ -24,7 +26,6 @@ public class PlayerListener implements Listener {
event.setCancelReason(new TextComponent(BungeeCore.ChatPrefix + " Du bist bis zum " +
user.BanTime.toLocalDateTime().format(BungeeCore.DateFormat) + " gebannt. §r§lGrund§r: §c" + user.BanReason));
}
return;
}
}
@ -35,17 +36,41 @@ public class PlayerListener implements Listener {
player.removeGroups("Admin", "team");
switch(user.UserGroup){
case "Admin":
player.addGroups("admin", "team");
player.setPermission("bungeecore.group.admin", true);
player.setDisplayName("§4Admin " + player.getName() + "§r");
break;
case "Developer":
player.addGroups("admin", "team", "default");
player.addGroups("admin", "team");
player.setPermission("bungeecore.group.developer", true);
player.setDisplayName("§3Developer " + player.getName() + "§r");
break;
case "Moderator":
player.addGroups("team");
player.setPermission("bungeecore.group.moderator", true);
player.setDisplayName("§bModerator " + player.getName() + "§r");
break;
case "Supporter":
player.addGroups("team");
player.setPermission("bungeecore.group.supporter", true);
player.setDisplayName("§1Supporter " + player.getName() + "§r");
break;
case "Builder":
player.addGroups("team", "default");
player.addGroups("team");
player.setPermission("bungeecore.group.builder", true);
player.setDisplayName("§2Architekt " + player.getName() + "§r");
break;
case "Youtuber":
player.setPermission("bungeecore.group.youtuber", true);
player.setDisplayName("§5Youtuber " + player.getName() + "§r");
break;
case "Premium":
player.setPermission("bungeecore.group.premium", true);
player.setDisplayName("§6Premium " + player.getName() + "§r");
break;
case "Member":
default:
player.addGroups("default");
player.setDisplayName("§7" + player.getName() + "§r");
break;
}
@ -89,6 +114,57 @@ public class PlayerListener implements Listener {
ProxiedPlayer sender = (ProxiedPlayer) e.getSender();
sender.sendMessage(BungeeCore.ChatPrefix + "§cUnbekannter Befehl.");
}
}else if(command[0].equals("/bau") && e.getSender() instanceof ProxiedPlayer){
ProxiedPlayer sender = (ProxiedPlayer) e.getSender();
if(!sender.getServer().getInfo().getName().equals("Bauserver")){
e.setCancelled(true);
sender.connect(ProxyServer.getInstance().getServerInfo("Bauserver"));
}
}
}else{
if(e.getSender() instanceof ProxiedPlayer){
ProxiedPlayer sender = (ProxiedPlayer) e.getSender();
if(sender.getChatMode() != ProxiedPlayer.ChatMode.SHOWN){
sender.sendMessage(BungeeCore.ChatPrefix + "§cUm Chatnachrichten versenden zu können, musst du erst einmal welche empfangen!");
e.setCancelled(true);
return;
}
if(ArenaSystem.getPlayer(sender) != null){
return;
}
String name = sender.getDisplayName();
String message = e.getMessage();
String chatsuffix = "§7» ";
e.setCancelled(true);
if(sender.hasPermission("bungeecore.group.admin")){
chatsuffix = "§7» §6";
message = ChatColor.translateAlternateColorCodes('&', message);
}else if(sender.hasPermission("bungeecore.group.developer")){
chatsuffix = "§7» §r";
message = ChatColor.translateAlternateColorCodes('&', message);
}else if(sender.hasPermission("bungeecore.group.moderator")){
chatsuffix = "§7» §r";
message = ChatColor.translateAlternateColorCodes('&', message);
}else if(sender.hasPermission("bungeecore.group.supporter")){
chatsuffix = "§7» §r";
message = ChatColor.translateAlternateColorCodes('&', message);
}else if(sender.hasPermission("bungeecore.group.builder")){
chatsuffix = "§7» §r";
message = ChatColor.translateAlternateColorCodes('&', message);
}else if(sender.hasPermission("bungeecore.group.youtuber") ||
sender.hasPermission("bungeecore.group.premium")){
message = ChatColor.translateAlternateColorCodes('&', message);
}
String msg = name + chatsuffix + message;
for(ProxiedPlayer target : sender.getServer().getInfo().getPlayers()){
if(target.getChatMode() == ProxiedPlayer.ChatMode.SHOWN){
target.sendMessage(msg);
}
}
BungeeCore.log(msg, sender.getServer().getInfo());
}
}
}
@ -104,6 +180,14 @@ public class PlayerListener implements Listener {
suggestions.add(name);
}
}
if(e.getSender() instanceof ProxiedPlayer && cursor.length == 1 && cursor[0].startsWith("/")){
ProxiedPlayer player = (ProxiedPlayer) e.getSender();
for(String cmd : BungeeCore.commands.keySet()){
if(cmd.startsWith(cursor[0]) && player.hasPermission(BungeeCore.commands.get(cmd))){
suggestions.add(cmd);
}
}
}
}
@EventHandler

Datei anzeigen

@ -2,7 +2,6 @@ package de.warking.bungeecore.arenasystem;
import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
@ -11,19 +10,26 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.util.Vector;
import java.util.ArrayList;
import java.util.List;
public class Arena implements Runnable{
public final String serverName;
public final int arenenNummer;
public final String spielModus;
private Process p;
private PrintWriter writer;
private ServerInfo server;
private boolean started = false;
private Vector<ArenaPlayer> cachedPlayers = new Vector<>();
private PrintWriter writer;
private final List<ArenaPlayer> cachedPlayers = new ArrayList<>();
private final List<ArenaPlayer> players = new ArrayList<>();
public Arena(String modus, int id){
spielModus = modus;
arenenNummer = id;
serverName = modus + id;
int port = 2500 + arenenNummer;
@ -44,12 +50,55 @@ public class Arena implements Runnable{
}
}
public void sendPlayer(ArenaPlayer p){
if(!started) {
p.player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "Die Arena wird gestartet, einen Moment bitte..."));
private void sendPlayer(ArenaPlayer p){
if(!started){
p.player.sendMessage(BungeeCore.ChatPrefix + "Die Arena wird gestartet, einen Moment bitte...");
cachedPlayers.add(p);
}else
p.player.connect(server);
}else{
if(players.contains(p)){
p.player.connect(server);
players.add(p);
}
p.player.getServer().sendData("FightSystem:NewPlayer", p.role.name().getBytes());
}
}
public void sendPlayer(ProxiedPlayer p){
ArenaRole role;
switch(cachedPlayers.size() + players.size()){
case 0:
role = ArenaRole.RED_LEADER;
break;
case 1:
role = ArenaRole.BLUE_LEADER;
break;
default:
role = ArenaRole.SPECTATOR;
}
ArenaPlayer aP = new ArenaPlayer(p, role);
sendPlayer(aP);
}
public void sendPlayer(ProxiedPlayer p, ProxiedPlayer initiator){
ArenaPlayer parent = getPlayer(initiator);
if(parent == null)
return;
switch(parent.role){
case RED_LEADER:
case RED_MEMBER:
sendPlayer(new ArenaPlayer(p, ArenaRole.RED_MEMBER));
break;
case BLUE_MEMBER:
case BLUE_LEADER:
sendPlayer(new ArenaPlayer(p, ArenaRole.BLUE_MEMBER));
break;
case SPECTATOR:
default:
sendPlayer(new ArenaPlayer(p, ArenaRole.SPECTATOR));
break;
}
}
protected void stop(){
@ -69,6 +118,28 @@ public class Arena implements Runnable{
ArenaSystem.arenen.remove(this);
}
public ArenaPlayer getPlayer(ProxiedPlayer p){
for(int i = 0; i < cachedPlayers.size(); i++)
if(cachedPlayers.get(i).player.equals(p)){
if(server.equals(p.getServer().getInfo())) {
return cachedPlayers.get(i);
}else{
cachedPlayers.remove(i);
return null;
}
}
for(int i = 0; i < players.size(); i++)
if(players.get(i).player.equals(p)){
if(server.equals(p.getServer().getInfo())) {
return players.get(i);
}else{
players.remove(i);
return null;
}
}
return null;
}
@Override
public void run() {
try {
@ -76,10 +147,11 @@ public class Arena implements Runnable{
String line;
while (!started && (line = reader.readLine()) != null) {
started = line.contains(" INFO]: Done (");
//started = line.contains(" INFO]: Done ("); Problematisch
started = line.contains("INFO]: [AAC] AAC has been enabled.");
}
Thread.sleep(1000);
//Thread.sleep(1000);
for(ArenaPlayer aP : cachedPlayers){
sendPlayer(aP);
@ -90,7 +162,7 @@ public class Arena implements Runnable{
}catch(IOException e){
e.printStackTrace();
}catch(InterruptedException e){
System.out.println("Arena "+serverName+" was interrupted!");
BungeeCore.log("Arena "+serverName+" was interrupted!");
}
stop();
}

Datei anzeigen

@ -1,6 +1,8 @@
package de.warking.bungeecore.arenasystem;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.util.Vector;
public class ArenaSystem {
@ -33,4 +35,29 @@ public class ArenaSystem {
while(!arenen.isEmpty())
arenen.firstElement().stop();
}
public static ArenaPlayer getPlayer(ProxiedPlayer p){
for(Arena a : arenen){
ArenaPlayer aP = a.getPlayer(p);
if(aP != null)
return aP;
}
return null;
}
public static Arena getArena(ProxiedPlayer p){
for(Arena a : arenen){
ArenaPlayer aP = a.getPlayer(p);
if(aP != null)
return a;
}
return null;
}
public static Arena getArena(String serverName){
for(Arena a : arenen)
if(a.serverName.equals(serverName))
return a;
return null;
}
}

Datei anzeigen

@ -4,19 +4,18 @@ import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.plugin.Command;
public class AlertCommand extends Command {
public AlertCommand() {
super("bc", "bungeecore.alert");
super("bc", "bungeecore.alert", "alert");
}
@Override
public void execute(CommandSender sender, String[] args) {
if(args.length == 0){
sender.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "/alert [Nachricht]"));
sender.sendMessage(BungeeCore.ChatPrefix + "/alert [Nachricht]");
return;
}
StringBuilder msgBuilder = new StringBuilder();

Datei anzeigen

@ -0,0 +1,32 @@
package de.warking.bungeecore.commands;
import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.TabExecutor;
import java.util.ArrayList;
import java.util.List;
public abstract class Command extends net.md_5.bungee.api.plugin.Command implements TabExecutor {
public Command(String name, String permission, String... aliases) {
super(name, permission, aliases);
BungeeCore.commands.put("/" + name, permission);
}
public Iterable<String> allPlayers(String begin) {
List<String> suggestions = new ArrayList<>();
for(ProxiedPlayer player : ProxyServer.getInstance().getPlayers()){
String playerName = player.getName();
if(playerName.startsWith(begin))
suggestions.add(playerName);
}
return suggestions;
}
public Iterable<String> onTabComplete(CommandSender commandSender, String[] args) {
return null;
}
}

Datei anzeigen

@ -4,7 +4,6 @@ import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
public class DenyCommand extends Command {

Datei anzeigen

@ -2,13 +2,17 @@ package de.warking.bungeecore.commands;
import de.warking.bungeecore.BungeeCore;
import de.warking.bungeecore.arenasystem.Arena;
import de.warking.bungeecore.arenasystem.ArenaPlayer;
import de.warking.bungeecore.arenasystem.ArenaRole;
import de.warking.bungeecore.arenasystem.ArenaSystem;
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.chat.ComponentBuilder;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import java.util.ArrayList;
import java.util.List;
public class FightCommand extends Command {
@ -24,16 +28,33 @@ public class FightCommand extends Command {
}
if(sender instanceof ProxiedPlayer){
ProxiedPlayer player = (ProxiedPlayer) sender;
Arena arena;
switch(args[0].toLowerCase()){
case "as":
case "airship":
Arena arena = ArenaSystem.startServer("Airship");
arena.sendPlayer(new ArenaPlayer(player, ArenaRole.RED_LEADER));
arena = ArenaSystem.startServer("Airship");
break;
default:
sender.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cUnbekannter Spielmodus: " + args[0]));
break;
sender.sendMessage(BungeeCore.ChatPrefix + "§cUnbekannter Spielmodus: " + args[0]);
return;
}
arena.sendPlayer(player);
TextComponent tc = new TextComponent(BungeeCore.ChatPrefix + "Kämpfe jetzt " + arena.spielModus + " gegen " + player.getName() + "[Hier Klicken]!");
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("§aGegen Spieler kämpfen").create()));
tc.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/join " + player.getName()));
ProxyServer.getInstance().broadcast(tc);
}
}
@Override
public Iterable<String> onTabComplete(CommandSender commandSender, String[] args) {
List<String> gamemodes = new ArrayList<>();
if(args.length == 1){
gamemodes.add("airship");
gamemodes.add("as");
}
System.out.println(args);
return gamemodes;
}
}

Datei anzeigen

@ -6,7 +6,6 @@ import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.plugin.Command;
public class HelpCommand extends Command {
public HelpCommand() {

Datei anzeigen

@ -1,6 +1,9 @@
package de.warking.bungeecore.commands;
import de.warking.bungeecore.BungeeCore;
import de.warking.bungeecore.arenasystem.Arena;
import de.warking.bungeecore.arenasystem.ArenaPlayer;
import de.warking.bungeecore.arenasystem.ArenaSystem;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.ClickEvent;
@ -9,12 +12,11 @@ import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
public class JoinmeCommand extends Command {
public JoinmeCommand() {
super("join", "");
super("join", "", "joinme");
}
@Override
@ -22,25 +24,48 @@ public class JoinmeCommand extends Command {
if(sender instanceof ProxiedPlayer) {
ProxiedPlayer player = (ProxiedPlayer) sender;
if (args.length == 0) {
if(player.hasPermission("bungeecore.joinme")){
TextComponent tc = new TextComponent(BungeeCore.ChatPrefix + "Klicke hier, um dem Server " + player.getServer().getInfo().getName() + " beizutreten!");
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("§cServer beitreten").create()));
tc.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/join " + player.getName()));
ProxyServer.getInstance().broadcast(tc);
}else {
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDu hast dazu keine Berechtigung."));
}
if (args.length == 0 && player.hasPermission("bungeecore.joinme")) {
TextComponent tc = new TextComponent(BungeeCore.ChatPrefix + "Klicke hier, um dem Spieler " + player.getName() + " auf " + player.getServer().getInfo().getName() + " zu folgen!");
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("§aSpieler folgen").create()));
tc.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/join " + player.getName()));
ProxyServer.getInstance().broadcast(tc);
} else if (args.length == 1) {
//TODO: Joinme to player
ServerInfo server = ProxyServer.getInstance().getPlayer(args[0]).getServer().getInfo();
String ServerPerm = BungeeCore.serverPermissions.get(server.getName());
if(ServerPerm == null || !player.hasPermission(ServerPerm)){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDiesen Server gibt es nicht."));
ProxiedPlayer target = ProxyServer.getInstance().getPlayer(args[0]);
if(target == null || !target.isConnected()){
player.sendMessage(BungeeCore.ChatPrefix + "§cDieser Spieler ist derzeit offline.");
return;
}else if(target.equals(player)){
player.sendMessage(BungeeCore.ChatPrefix + "§cDu bist bereits in deiner Sphäre.");
return;
}
player.connect(server);
ServerInfo server = ProxyServer.getInstance().getPlayer(args[0]).getServer().getInfo();
String ServerPerm = BungeeCore.serverPermissions.get(server.getName());
if(ServerPerm == null){
Arena arena = ArenaSystem.getArena(player);
if(arena == null){
player.sendMessage(BungeeCore.ChatPrefix + "§cDu kannst diesem Spieler derzeit nicht folgen.");
return;
}
arena.sendPlayer(player, target);
}else if(!player.hasPermission(ServerPerm)){
player.sendMessage(BungeeCore.ChatPrefix + "§cDu kannst diesem Spieler derzeit nicht folgen.");
}else{
player.connect(server);
}
} else {
player.sendMessage(BungeeCore.ChatPrefix + "/join [Spieler]");
}
}
}
@Override
public Iterable<String> onTabComplete(CommandSender commandSender, String[] args) {
if(args.length == 1){
return allPlayers(args[0]);
}
return null;
}
}

Datei anzeigen

@ -3,9 +3,7 @@ package de.warking.bungeecore.commands;
import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
public class KickCommand extends Command {
@ -16,25 +14,34 @@ public class KickCommand extends Command {
@Override
public void execute(CommandSender sender, String[] args) {
if(args.length == 0){
sender.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "/kick [Spieler] [Nachricht]"));
sender.sendMessage(BungeeCore.ChatPrefix + "/kick [Spieler] [Nachricht]");
return;
}
ProxiedPlayer target = ProxyServer.getInstance().getPlayer(args[0]);
if(target == null){
sender.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDieser Spieler ist derzeit nicht online!"));
sender.sendMessage(BungeeCore.ChatPrefix + "§cDieser Spieler ist derzeit nicht online!");
return;
}
if(args.length == 1){
target.disconnect(new TextComponent(BungeeCore.ChatPrefix + "§cDu wurdest gekickt."));
target.disconnect(BungeeCore.ChatPrefix + "§cDu wurdest gekickt.");
}else{
StringBuilder msgBuilder = new StringBuilder();
msgBuilder.append(BungeeCore.ChatPrefix).append("§c");
for (int i = 1; i < args.length; i++){
msgBuilder.append(args[i]).append(" ");
}
target.disconnect(new TextComponent(msgBuilder.toString()));
target.disconnect(msgBuilder.toString());
}
sender.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "Der Spieler " + target.getName() + " wurde gekickt."));
sender.sendMessage(BungeeCore.ChatPrefix + "Der Spieler " + target.getName() + " wurde gekickt.");
}
@Override
public Iterable<String> onTabComplete(CommandSender commandSender, String[] args) {
if(args.length == 1){
return allPlayers(args[0]);
}
return null;
}
}

Datei anzeigen

@ -3,14 +3,13 @@ package de.warking.bungeecore.commands;
import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import java.util.HashMap;
public class MsgCommand extends Command {
public static HashMap<String, ProxiedPlayer> lastChats = new HashMap<>();
protected static final HashMap<String, ProxiedPlayer> lastChats = new HashMap<>();
public MsgCommand() {
super("msg", "", "w", "tell");
@ -22,19 +21,19 @@ public class MsgCommand extends Command {
ProxiedPlayer player = (ProxiedPlayer) sender;
if (args.length < 2) {
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "/msg [Benutzer] [Nachricht]"));
player.sendMessage(BungeeCore.ChatPrefix + "/msg [Benutzer] [Nachricht]");
return;
}
ProxiedPlayer target = ProxyServer.getInstance().getPlayer(args[0]);
if(target == null){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDieser Spieler ist derzeit nicht online!"));
player.sendMessage(BungeeCore.ChatPrefix + "§cDieser Spieler ist derzeit nicht online!");
return;
}else if(target.getChatMode() != ProxiedPlayer.ChatMode.SHOWN){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDieser Spieler empfängt derzeit keine Chatnachrichten!"));
player.sendMessage(BungeeCore.ChatPrefix + "§cDieser Spieler empfängt derzeit keine Chatnachrichten!");
return;
}else if(target.equals(player)){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cNachrichten an dich selbst hast du wirklich nicht nötig!"));
player.sendMessage(BungeeCore.ChatPrefix + "§cNachrichten an dich selbst hast du wirklich nicht nötig!");
return;
}
@ -43,14 +42,21 @@ public class MsgCommand extends Command {
for (int i = 1; i < args.length; i++){
msgBuilder.append(args[i]).append(" ");
}
TextComponent msg = new TextComponent(msgBuilder.toString());
String msg = msgBuilder.toString();
player.sendMessage(msg);
target.sendMessage(msg);
BungeeCore.log(msg);
lastChats.put(player.getName().toLowerCase(), target);
lastChats.put(target.getName().toLowerCase(), player);
}
}
@Override
public Iterable<String> onTabComplete(CommandSender commandSender, String[] args) {
if(args.length == 1){
return allPlayers(args[0]);
}
return null;
}
}

Datei anzeigen

@ -2,9 +2,7 @@ package de.warking.bungeecore.commands;
import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
public class PingCommand extends Command {
@ -16,7 +14,7 @@ public class PingCommand extends Command {
public void execute(CommandSender sender, String[] args) {
if(sender instanceof ProxiedPlayer){
ProxiedPlayer player = (ProxiedPlayer) sender;
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§7Dein Ping beträgt §c" + player.getPing() + "§r§7 ms!"));
player.sendMessage(BungeeCore.ChatPrefix + "§7Dein Ping beträgt §c" + player.getPing() + "§r§7 ms!");
}
}
}

Datei anzeigen

@ -2,9 +2,7 @@ package de.warking.bungeecore.commands;
import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
public class RCommand extends Command {
@ -17,21 +15,21 @@ public class RCommand extends Command {
if(sender instanceof ProxiedPlayer){
ProxiedPlayer player = (ProxiedPlayer) sender;
if(args.length == 0){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "/r [Antwort]"));
player.sendMessage(BungeeCore.ChatPrefix + "/r [Antwort]");
return;
}
ProxiedPlayer target = MsgCommand.lastChats.get(player.getName().toLowerCase());
if(target == null){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDu hast bisher mit niemandem geschrieben!"));
player.sendMessage(BungeeCore.ChatPrefix + "§cDu hast bisher mit niemandem geschrieben!");
return;
}
if(!target.isConnected()){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDieser Spieler ist derzeit nicht online!"));
player.sendMessage(BungeeCore.ChatPrefix + "§cDieser Spieler ist derzeit nicht online!");
return;
}else if(target.getChatMode() != ProxiedPlayer.ChatMode.SHOWN){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDieser Spieler empfängt derzeit keine Chatnachrichten!"));
player.sendMessage(BungeeCore.ChatPrefix + "§cDieser Spieler empfängt derzeit keine Chatnachrichten!");
return;
}
@ -40,9 +38,10 @@ public class RCommand extends Command {
for (String arg : args){
msgBuilder.append(arg).append(" ");
}
TextComponent msg = new TextComponent(msgBuilder.toString());
String msg = msgBuilder.toString();
player.sendMessage(msg);
target.sendMessage(msg);
BungeeCore.log(msg);
MsgCommand.lastChats.put(target.getName().toLowerCase(), player);
}

Datei anzeigen

@ -1,12 +1,9 @@
package de.warking.bungeecore.commands;
import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
public class ServerSwitchCommand extends Command {
@ -21,12 +18,8 @@ public class ServerSwitchCommand extends Command {
public void execute(CommandSender sender, String[] strings) {
if(sender instanceof ProxiedPlayer){
ProxiedPlayer player = (ProxiedPlayer) sender;
if(!player.getServer().getInfo().getName().equalsIgnoreCase(serverName)){
ServerInfo target = ProxyServer.getInstance().getServerInfo(serverName);
player.connect(target);
}else{
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDu bist bereits auf diesem Server!"));
}
ServerInfo target = ProxyServer.getInstance().getServerInfo(serverName);
player.connect(target);
}
}
}

Datei anzeigen

@ -4,9 +4,7 @@ import de.warking.bungeecore.BungeeCore;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
public class TeamchatCommand extends Command {
@ -20,7 +18,7 @@ public class TeamchatCommand extends Command {
ProxiedPlayer player = (ProxiedPlayer) sender;
if(args.length == 0){
player.sendMessage(new TextComponent(BungeeCore.TeamchatPrefix + "/teamchat [Nachricht an das Team]"));
player.sendMessage(BungeeCore.TeamchatPrefix + "/teamchat [Nachricht an das Team]");
return;
}
@ -31,12 +29,11 @@ public class TeamchatCommand extends Command {
}
String msg = msgBuilder.toString();
msg = ChatColor.translateAlternateColorCodes('&', msg);
TextComponent message = new TextComponent(msg);
for (ProxiedPlayer target : ProxyServer.getInstance().getPlayers()){
if ((target.hasPermission("bungeecore.teamchat") || target.hasPermission("bungeecore.*"))
&& target.getChatMode() == ProxiedPlayer.ChatMode.SHOWN){
target.sendMessage(message);
target.sendMessage(msg);
}
}
}

Datei anzeigen

@ -4,9 +4,7 @@ import de.warking.bungeecore.BungeeCore;
import de.warking.bungeecore.WarkingUser;
import de.warking.bungeecore.sql;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
public class WebpwCommand extends Command {
@ -19,18 +17,18 @@ public class WebpwCommand extends Command {
if(sender instanceof ProxiedPlayer){
ProxiedPlayer player = (ProxiedPlayer) sender;
if(args.length != 2){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "/webpw [Passwort] [Passwort wiederholen]"));
player.sendMessage(BungeeCore.ChatPrefix + "/webpw [Passwort] [Passwort wiederholen]");
return;
}else if(!args[0].equals(args[1])){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDie Passwörter stimmen nicht überein!"));
player.sendMessage(BungeeCore.ChatPrefix + "§cDie Passwörter stimmen nicht überein!");
return;
}else if(args[0].length() < 6){
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDas Passwort muss mindestens 6 Zeichen lang sein!"));
player.sendMessage(BungeeCore.ChatPrefix + "§cDas Passwort muss mindestens 6 Zeichen lang sein!");
return;
}
sql.setWebpw(new WarkingUser(player), args[0]);
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "Webpasswort gesetzt!"));
player.sendMessage(BungeeCore.ChatPrefix + "Webpasswort gesetzt!");
}
}
}