mirror of
https://github.com/WorldEditAxe/eaglerproxy.git
synced 2024-11-21 04:56:04 -08:00
i did a dumb
This commit is contained in:
parent
70119361f7
commit
b757cc0604
|
@ -332,7 +332,7 @@ export async function onConnect(client: ClientState) {
|
||||||
});
|
});
|
||||||
sendCustomMessage(
|
sendCustomMessage(
|
||||||
client.gameClient,
|
client.gameClient,
|
||||||
"Select an option from the above (1 = online, 2 = offline, 3 = EasyMC), either by clicking or manually typing out the option.",
|
"Select an option from the above (1 = online, 2 = offline, 3 = EasyMC), either by clicking or manually typing out the option's number on the list.",
|
||||||
"green"
|
"green"
|
||||||
);
|
);
|
||||||
updateState(client.gameClient, "CONNECTION_TYPE");
|
updateState(client.gameClient, "CONNECTION_TYPE");
|
||||||
|
@ -831,6 +831,126 @@ export async function onConnect(client: ClientState) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
client.state = ConnectionState.SUCCESS;
|
||||||
|
client.lastStatusUpdate = Date.now();
|
||||||
|
updateState(client.gameClient, "SERVER");
|
||||||
|
sendMessage(
|
||||||
|
client.gameClient,
|
||||||
|
`Provide a server to join. ${Enums.ChatColor.GOLD}/join <ip>${
|
||||||
|
config.allowCustomPorts ? " [port]" : ""
|
||||||
|
}${Enums.ChatColor.RESET}.`
|
||||||
|
);
|
||||||
|
let host: string, port: number;
|
||||||
|
while (true) {
|
||||||
|
const msg = await awaitCommand(client.gameClient, (msg) =>
|
||||||
|
msg.startsWith("/join")
|
||||||
|
),
|
||||||
|
parsed = msg.split(/ /gi, 3);
|
||||||
|
if (parsed.length < 2)
|
||||||
|
sendMessage(
|
||||||
|
client.gameClient,
|
||||||
|
`Please provide a server to connect to. ${
|
||||||
|
Enums.ChatColor.GOLD
|
||||||
|
}/join <ip>${config.allowCustomPorts ? " [port]" : ""}${
|
||||||
|
Enums.ChatColor.RESET
|
||||||
|
}.`
|
||||||
|
);
|
||||||
|
else if (parsed.length > 2 && isNaN(parseInt(parsed[2])))
|
||||||
|
sendMessage(
|
||||||
|
client.gameClient,
|
||||||
|
`A valid port number has to be passed! ${
|
||||||
|
Enums.ChatColor.GOLD
|
||||||
|
}/join <ip>${config.allowCustomPorts ? " [port]" : ""}${
|
||||||
|
Enums.ChatColor.RESET
|
||||||
|
}.`
|
||||||
|
);
|
||||||
|
else {
|
||||||
|
host = parsed[1];
|
||||||
|
if (parsed.length > 2) port = parseInt(parsed[2]);
|
||||||
|
if (port != null && !config.allowCustomPorts) {
|
||||||
|
sendCustomMessage(
|
||||||
|
client.gameClient,
|
||||||
|
"You are not allowed to use custom server ports! /join <ip>",
|
||||||
|
"red"
|
||||||
|
);
|
||||||
|
host = null;
|
||||||
|
port = null;
|
||||||
|
} else {
|
||||||
|
port = port ?? 25565;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
sendChatComponent(client.gameClient, {
|
||||||
|
text: `Joining server under ${client.gameClient.username}/Eaglercraft username! Run `,
|
||||||
|
color: "aqua",
|
||||||
|
extra: [
|
||||||
|
{
|
||||||
|
text: "/eag-help",
|
||||||
|
color: "gold",
|
||||||
|
hoverEvent: {
|
||||||
|
action: "show_text",
|
||||||
|
value: Enums.ChatColor.GOLD + "Click me to run this command!",
|
||||||
|
},
|
||||||
|
clickEvent: {
|
||||||
|
action: "run_command",
|
||||||
|
value: "/eag-help",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: " for a list of proxy commands.",
|
||||||
|
color: "aqua",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
sendCustomMessage(
|
||||||
|
client.gameClient,
|
||||||
|
"Attempting to switch servers, please wait... (if you don't get connected to the target server for a while, the server might be online only)",
|
||||||
|
"gray"
|
||||||
|
);
|
||||||
|
const player = PLUGIN_MANAGER.proxy.players.get(
|
||||||
|
client.gameClient.username
|
||||||
|
);
|
||||||
|
player.on("vanillaPacket", (packet, origin) => {
|
||||||
|
if (
|
||||||
|
origin == "CLIENT" &&
|
||||||
|
packet.name == "chat" &&
|
||||||
|
(packet.params.message as string)
|
||||||
|
.toLowerCase()
|
||||||
|
.startsWith("/eag-") &&
|
||||||
|
!packet.cancel
|
||||||
|
) {
|
||||||
|
packet.cancel = true;
|
||||||
|
handleCommand(player, packet.params.message as string);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
await player.switchServers({
|
||||||
|
host: host,
|
||||||
|
port: port,
|
||||||
|
auth: "offline",
|
||||||
|
username: client.gameClient.username,
|
||||||
|
version: "1.8.8",
|
||||||
|
keepAlive: false,
|
||||||
|
skipValidation: true,
|
||||||
|
hideErrors: true,
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
if (!client.gameClient.ended) {
|
||||||
|
client.gameClient.end(
|
||||||
|
Enums.ChatColor.RED +
|
||||||
|
`Something went wrong whilst switching servers: ${err.message}${
|
||||||
|
err.code == "ENOTFOUND"
|
||||||
|
? host.includes(":")
|
||||||
|
? `\n${Enums.ChatColor.GRAY}Suggestion: Replace the : in your IP with a space.`
|
||||||
|
: "\nIs that IP valid?"
|
||||||
|
: ""
|
||||||
|
}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (!client.gameClient.ended) {
|
if (!client.gameClient.ended) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user