geforkt von SteamWar/BungeeCore
Various updates
Dieser Commit ist enthalten in:
Ursprung
df834fab5f
Commit
78e6cd5696
@ -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){
|
||||
|
@ -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
|
||||
|
@ -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){
|
||||
private void sendPlayer(ArenaPlayer p){
|
||||
if(!started){
|
||||
p.player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "Die Arena wird gestartet, einen Moment bitte..."));
|
||||
p.player.sendMessage(BungeeCore.ChatPrefix + "Die Arena wird gestartet, einen Moment bitte...");
|
||||
cachedPlayers.add(p);
|
||||
}else
|
||||
}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();
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
|
32
src/de/warking/bungeecore/commands/Command.java
Normale Datei
32
src/de/warking/bungeecore/commands/Command.java
Normale Datei
@ -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;
|
||||
}
|
||||
}
|
@ -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 {
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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() {
|
||||
|
@ -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()));
|
||||
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 {
|
||||
player.sendMessage(new TextComponent(BungeeCore.ChatPrefix + "§cDu hast dazu keine Berechtigung."));
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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!"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren