geforkt von SteamWar/BungeeCore
Merge remote-tracking branch 'origin/master'
Dieser Commit ist enthalten in:
Commit
8267966409
@ -1 +1 @@
|
|||||||
Subproject commit 919c4d525ea39756b24bd961bb72d8d58bdd5bd4
|
Subproject commit 492894ca8d41ee0bde4dcb9d520db5f7478c50c7
|
@ -26,7 +26,7 @@ public class ServerStarter {
|
|||||||
private static final String EVENT_PATH = BACKBONE + "event/";
|
private static final String EVENT_PATH = BACKBONE + "event/";
|
||||||
public static final String TEMP_WORLD_PATH = BACKBONE + "arenaserver/";
|
public static final String TEMP_WORLD_PATH = BACKBONE + "arenaserver/";
|
||||||
public static final String TUTORIAL_PATH = BACKBONE + "tutorials/";
|
public static final String TUTORIAL_PATH = BACKBONE + "tutorials/";
|
||||||
public static final String WORLDS18_PATH = BACKBONE + "userworlds18/";
|
public static final String WORLDS19_PATH = BACKBONE + "userworlds19/";
|
||||||
|
|
||||||
private File directory = null;
|
private File directory = null;
|
||||||
private String worldDir = null;
|
private String worldDir = null;
|
||||||
@ -109,10 +109,10 @@ public class ServerStarter {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerStarter build18(UUID owner) {
|
public ServerStarter build19(UUID owner) {
|
||||||
directory = new File(SERVER_PATH, "Bau18");
|
directory = new File(SERVER_PATH, "Bau19");
|
||||||
serverJar = "paper-1.18.2.jar";
|
serverJar = "paper-1.19.jar";
|
||||||
worldDir = WORLDS18_PATH;
|
worldDir = WORLDS19_PATH;
|
||||||
worldName = String.valueOf(SteamwarUser.get(owner).getId());
|
worldName = String.valueOf(SteamwarUser.get(owner).getId());
|
||||||
buildWithWorld(owner, new File(directory, "Bauwelt").getPath());
|
buildWithWorld(owner, new File(directory, "Bauwelt").getPath());
|
||||||
return this;
|
return this;
|
||||||
|
@ -46,7 +46,7 @@ public class BauCommand extends BasicCommand {
|
|||||||
ProxiedPlayer p = (ProxiedPlayer) sender;
|
ProxiedPlayer p = (ProxiedPlayer) sender;
|
||||||
|
|
||||||
versionSelector(p, args, 0,
|
versionSelector(p, args, 0,
|
||||||
() -> new ServerStarter().build18(p.getUniqueId()).send(p).start(),
|
() -> new ServerStarter().build19(p.getUniqueId()).send(p).start(),
|
||||||
() -> new ServerStarter().build15(p.getUniqueId()).send(p).start(),
|
() -> new ServerStarter().build15(p.getUniqueId()).send(p).start(),
|
||||||
() -> new ServerStarter().build12(p.getUniqueId()).send(p).start(),
|
() -> new ServerStarter().build12(p.getUniqueId()).send(p).start(),
|
||||||
() -> {
|
() -> {
|
||||||
@ -128,13 +128,13 @@ public class BauCommand extends BasicCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
versionSelector(p, args, 2,
|
versionSelector(p, args, 2,
|
||||||
() -> new ServerStarter().build18(worldOwner.getUuid()).send(p).start(),
|
() -> new ServerStarter().build19(worldOwner.getUuid()).send(p).start(),
|
||||||
() -> new ServerStarter().build15(worldOwner.getUuid()).send(p).start(),
|
() -> new ServerStarter().build15(worldOwner.getUuid()).send(p).start(),
|
||||||
() -> new ServerStarter().build12(worldOwner.getUuid()).send(p).start(),
|
() -> new ServerStarter().build12(worldOwner.getUuid()).send(p).start(),
|
||||||
() -> HelpCommand.sendBauHelp(ChatSender.of(p)));
|
() -> HelpCommand.sendBauHelp(ChatSender.of(p)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void versionSelector(ProxiedPlayer p, String[] args, int pos, Runnable run18, Runnable run15, Runnable run12, Runnable runElse) {
|
private static void versionSelector(ProxiedPlayer p, String[] args, int pos, Runnable run19, Runnable run15, Runnable run12, Runnable runElse) {
|
||||||
if(args.length <= pos) {
|
if(args.length <= pos) {
|
||||||
int version = p.getPendingConnection().getVersion();
|
int version = p.getPendingConnection().getVersion();
|
||||||
if(version > 340) { // Version > 1.12.2
|
if(version > 340) { // Version > 1.12.2
|
||||||
@ -146,9 +146,11 @@ public class BauCommand extends BasicCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (args[pos].toLowerCase()) {
|
switch (args[pos].toLowerCase()) {
|
||||||
|
case "19":
|
||||||
|
case "1.19":
|
||||||
case "18":
|
case "18":
|
||||||
case "1.18":
|
case "1.18":
|
||||||
run18.run();
|
run19.run();
|
||||||
break;
|
break;
|
||||||
case "ws":
|
case "ws":
|
||||||
case "warship":
|
case "warship":
|
||||||
@ -231,7 +233,7 @@ public class BauCommand extends BasicCommand {
|
|||||||
private static void delete(ProxiedPlayer p, String[] args){
|
private static void delete(ProxiedPlayer p, String[] args){
|
||||||
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
||||||
versionSelector(p, args, 1,
|
versionSelector(p, args, 1,
|
||||||
() -> deleteConfirmation(p, () -> deleteWorld(p, ServerStarter.WORLDS18_PATH + user.getId())),
|
() -> deleteConfirmation(p, () -> deleteWorld(p, ServerStarter.WORLDS19_PATH + user.getId())),
|
||||||
() -> deleteConfirmation(p, () -> deleteWorld(p, BungeeCore.USERWORLDS15 + user.getId())),
|
() -> deleteConfirmation(p, () -> deleteWorld(p, BungeeCore.USERWORLDS15 + user.getId())),
|
||||||
() -> deleteConfirmation(p, () -> deleteWorld(p, BungeeCore.WORLD_FOLDER + p.getUniqueId().toString())),
|
() -> deleteConfirmation(p, () -> deleteWorld(p, BungeeCore.WORLD_FOLDER + p.getUniqueId().toString())),
|
||||||
() -> HelpCommand.sendBauHelp(ChatSender.of(p)));
|
() -> HelpCommand.sendBauHelp(ChatSender.of(p)));
|
||||||
|
@ -31,6 +31,7 @@ import net.md_5.bungee.UserConnection;
|
|||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
import net.md_5.bungee.api.CommandSender;
|
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.ServerConnectRequest;
|
||||||
import net.md_5.bungee.api.chat.ClickEvent;
|
import net.md_5.bungee.api.chat.ClickEvent;
|
||||||
import net.md_5.bungee.api.chat.ComponentBuilder;
|
import net.md_5.bungee.api.chat.ComponentBuilder;
|
||||||
import net.md_5.bungee.api.chat.HoverEvent;
|
import net.md_5.bungee.api.chat.HoverEvent;
|
||||||
@ -595,11 +596,24 @@ public class TeamCommand extends BasicCommand {
|
|||||||
ProxyServer.getInstance().getServers().put(info.getName(), info);
|
ProxyServer.getInstance().getServers().put(info.getName(), info);
|
||||||
return info;
|
return info;
|
||||||
});
|
});
|
||||||
|
player.connect(ServerConnectRequest.builder()
|
||||||
|
.target(serverInfo)
|
||||||
|
.connectTimeout(BungeeCord.getInstance().getConfig().getServerConnectTimeout())
|
||||||
|
.retry(false)
|
||||||
|
.reason(ServerConnectEvent.Reason.PLUGIN)
|
||||||
|
.callback((success, error) -> {
|
||||||
|
if (error != null) {
|
||||||
|
Message.send("TEAM_OFFLINE", player);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.build());
|
||||||
|
/*
|
||||||
((UserConnection) player).connect(serverInfo, (success, error) -> {
|
((UserConnection) player).connect(serverInfo, (success, error) -> {
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
Message.send("TEAM_OFFLINE", player);
|
Message.send("TEAM_OFFLINE", player);
|
||||||
}
|
}
|
||||||
}, false, ServerConnectEvent.Reason.PLUGIN, BungeeCord.getInstance().getConfig().getServerConnectTimeout(), false);
|
}, false, ServerConnectEvent.Reason.PLUGIN, BungeeCord.getInstance().getConfig().getServerConnectTimeout(), false);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private void server(ProxiedPlayer player, SteamwarUser user, Team team, String[] args){
|
private void server(ProxiedPlayer player, SteamwarUser user, Team team, String[] args){
|
||||||
|
@ -19,12 +19,12 @@
|
|||||||
|
|
||||||
package de.steamwar.bungeecore.listeners;
|
package de.steamwar.bungeecore.listeners;
|
||||||
|
|
||||||
import io.github.waterfallmc.waterfall.utils.UUIDUtils;
|
|
||||||
import net.md_5.bungee.BungeeCord;
|
import net.md_5.bungee.BungeeCord;
|
||||||
import net.md_5.bungee.api.event.LoginEvent;
|
import net.md_5.bungee.api.event.LoginEvent;
|
||||||
import net.md_5.bungee.connection.InitialHandler;
|
import net.md_5.bungee.connection.InitialHandler;
|
||||||
import net.md_5.bungee.connection.LoginResult;
|
import net.md_5.bungee.connection.LoginResult;
|
||||||
import net.md_5.bungee.event.EventHandler;
|
import net.md_5.bungee.event.EventHandler;
|
||||||
|
import net.md_5.bungee.protocol.Property;
|
||||||
import net.md_5.bungee.util.AddressUtil;
|
import net.md_5.bungee.util.AddressUtil;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@ -50,11 +50,12 @@ public class SubserverProtocolFixer extends BasicListener {
|
|||||||
public void loginEvent(LoginEvent e) {
|
public void loginEvent(LoginEvent e) {
|
||||||
InitialHandler initialHandler = ((InitialHandler) e.getConnection());
|
InitialHandler initialHandler = ((InitialHandler) e.getConnection());
|
||||||
|
|
||||||
String extraData = "\00" + AddressUtil.sanitizeAddress(inetSocketAddress) + "\00" + UUIDUtils.undash(initialHandler.getUniqueId().toString());
|
String undashedUUID = initialHandler.getUniqueId().toString().replace("-", "");
|
||||||
|
String extraData = "\00" + AddressUtil.sanitizeAddress(inetSocketAddress) + "\00" + undashedUUID;
|
||||||
|
|
||||||
LoginResult result = initialHandler.getLoginProfile();
|
LoginResult result = initialHandler.getLoginProfile();
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
LoginResult.Property[] properties = result.getProperties();
|
Property[] properties = result.getProperties();
|
||||||
if (properties.length > 0) {
|
if (properties.length > 0) {
|
||||||
extraData += "\00" + BungeeCord.getInstance().gson.toJson(properties);
|
extraData += "\00" + BungeeCord.getInstance().gson.toJson(properties);
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ import de.steamwar.bungeecore.Subserver;
|
|||||||
import de.steamwar.bungeecore.comms.packets.FightInfoPacket;
|
import de.steamwar.bungeecore.comms.packets.FightInfoPacket;
|
||||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||||
import de.steamwar.bungeecore.sql.UserGroup;
|
import de.steamwar.bungeecore.sql.UserGroup;
|
||||||
|
import net.md_5.bungee.BungeeCord;
|
||||||
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.config.ServerInfo;
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
@ -48,7 +49,11 @@ public class TablistManager extends BasicListener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public synchronized void onJoin(PostLoginEvent e){
|
public synchronized void onJoin(PostLoginEvent e){
|
||||||
tablists.put(e.getPlayer(), new Tablist(e.getPlayer()));
|
BungeeCord.getInstance().getScheduler().schedule(BungeeCore.get(), () -> {
|
||||||
|
if (e.getPlayer().isConnected()) {
|
||||||
|
tablists.put(e.getPlayer(), new Tablist(e.getPlayer()));
|
||||||
|
}
|
||||||
|
}, 1, TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -88,7 +93,7 @@ public class TablistManager extends BasicListener {
|
|||||||
//Calculate server-player-map
|
//Calculate server-player-map
|
||||||
tablist = new TablistGroup(true, "");
|
tablist = new TablistGroup(true, "");
|
||||||
TablistGroup bau = new TablistGroup(false, "Bau");
|
TablistGroup bau = new TablistGroup(false, "Bau");
|
||||||
for (ServerInfo server : ProxyServer.getInstance().getServersCopy().values()){
|
for (ServerInfo server : new ArrayList<>(ProxyServer.getInstance().getServers().values())){
|
||||||
if(server.getPlayers().isEmpty())
|
if(server.getPlayers().isEmpty())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren