mirror of
https://github.com/ViaVersion/ViaProxy.git
synced 2025-02-27 03:21:27 +01:00
Fixed connection issue when pinging beta servers too fast
This commit is contained in:
parent
80816603ed
commit
d35790e89c
@ -48,6 +48,7 @@ public class Options {
|
||||
public static Account MC_ACCOUNT;
|
||||
public static URI PROXY_URL; // Example: type://address:port or type://username:password@address:port
|
||||
public static boolean IGNORE_PACKET_TRANSLATION_ERRORS;
|
||||
public static boolean ALLOW_BETA_PINGING;
|
||||
|
||||
// GUI only config options
|
||||
public static String CLASSIC_MP_PASS;
|
||||
@ -81,6 +82,7 @@ public class Options {
|
||||
final OptionSpec<Void> serverHaProxyProtocol = parser.acceptsAll(asList("server-haproxy-protocol", "server-haproxy"), "Send HAProxy protocol messages to the backend server");
|
||||
final OptionSpec<Void> legacyClientPassthrough = parser.acceptsAll(asList("legacy_client_passthrough", "legacy_passthrough"), "Allow <= 1.6.4 clients to connect to the backend server (No protocol translation)");
|
||||
final OptionSpec<Void> ignorePacketTranslationErrors = parser.acceptsAll(List.of("ignore-packet-translation-errors"), "Enabling this will prevent getting disconnected from the server when a packet translation error occurs and instead only print the error in the console. This may cause issues depending on the type of packet which failed to translate");
|
||||
final OptionSpec<Void> allowBetaPinging = parser.acceptsAll(List.of("allow-beta-pinging"), "Enabling this will allow you to ping <= b1.7.3 servers. This may cause issues with servers that block too frequent connections");
|
||||
ViaProxy.EVENT_MANAGER.call(new PreOptionsParseEvent(parser));
|
||||
|
||||
final OptionSet options;
|
||||
@ -137,6 +139,7 @@ public class Options {
|
||||
SERVER_HAPROXY_PROTOCOL = options.has(serverHaProxyProtocol);
|
||||
LEGACY_CLIENT_PASSTHROUGH = options.has(legacyClientPassthrough);
|
||||
IGNORE_PACKET_TRANSLATION_ERRORS = options.has(ignorePacketTranslationErrors);
|
||||
ALLOW_BETA_PINGING = options.has(allowBetaPinging);
|
||||
ViaProxy.EVENT_MANAGER.call(new PostOptionsParseEvent(options));
|
||||
} catch (OptionException e) {
|
||||
Logger.LOGGER.error("Error parsing options: " + e.getMessage());
|
||||
|
@ -28,6 +28,7 @@ import net.raphimc.netminecraft.constants.IntendedState;
|
||||
import net.raphimc.netminecraft.packet.IPacket;
|
||||
import net.raphimc.netminecraft.packet.impl.handshake.C2SHandshakePacket;
|
||||
import net.raphimc.viabedrock.api.BedrockProtocolVersion;
|
||||
import net.raphimc.vialegacy.api.LegacyProtocolVersion;
|
||||
import net.raphimc.viaproxy.ViaProxy;
|
||||
import net.raphimc.viaproxy.cli.options.Options;
|
||||
import net.raphimc.viaproxy.plugins.events.ConnectEvent;
|
||||
@ -158,6 +159,10 @@ public class Client2ProxyHandler extends SimpleChannelInboundHandler<IPacket> {
|
||||
}
|
||||
}
|
||||
|
||||
if (!Options.ALLOW_BETA_PINGING && serverVersion.olderThanOrEqualTo(LegacyProtocolVersion.b1_7tob1_7_3)) {
|
||||
this.proxyConnection.kickClient("§7ViaProxy is working!\n§7Connect to join the configured server");
|
||||
}
|
||||
|
||||
if (packet.intendedState.getConnectionState() == ConnectionState.LOGIN && TransferDataHolder.hasTempRedirect(this.proxyConnection.getC2P())) {
|
||||
serverAddress = TransferDataHolder.removeTempRedirect(this.proxyConnection.getC2P());
|
||||
}
|
||||
|
@ -49,6 +49,7 @@ public class AdvancedTab extends AUITab {
|
||||
JCheckBox legacySkinLoading;
|
||||
JCheckBox chatSigning;
|
||||
JCheckBox ignorePacketTranslationErrors;
|
||||
JCheckBox allowBetaPinging;
|
||||
JButton viaVersionDumpButton;
|
||||
JButton uploadLogsButton;
|
||||
|
||||
@ -115,6 +116,13 @@ public class AdvancedTab extends AUITab {
|
||||
ViaProxy.getSaveManager().uiSave.loadCheckBox("ignore_packet_translation_errors", this.ignorePacketTranslationErrors);
|
||||
GBC.create(body).grid(0, gridy++).insets(BODY_BLOCK_PADDING, BORDER_PADDING, 0, 0).anchor(GBC.NORTHWEST).add(this.ignorePacketTranslationErrors);
|
||||
}
|
||||
{
|
||||
this.allowBetaPinging = new JCheckBox(I18n.get("tab.advanced.allow_beta_pinging.label"));
|
||||
this.allowBetaPinging.setToolTipText(I18n.get("tab.advanced.allow_beta_pinging.tooltip"));
|
||||
this.allowBetaPinging.setSelected(false);
|
||||
ViaProxy.getSaveManager().uiSave.loadCheckBox("allow_beta_pinging", this.allowBetaPinging);
|
||||
GBC.create(body).grid(0, gridy++).insets(BODY_BLOCK_PADDING, BORDER_PADDING, 0, 0).anchor(GBC.NORTHWEST).add(this.allowBetaPinging);
|
||||
}
|
||||
|
||||
parent.add(body, BorderLayout.NORTH);
|
||||
}
|
||||
@ -190,6 +198,7 @@ public class AdvancedTab extends AUITab {
|
||||
save.put("legacy_skin_loading", String.valueOf(this.legacySkinLoading.isSelected()));
|
||||
save.put("chat_signing", String.valueOf(this.chatSigning.isSelected()));
|
||||
save.put("ignore_packet_translation_errors", String.valueOf(this.ignorePacketTranslationErrors.isSelected()));
|
||||
save.put("allow_beta_pinging", String.valueOf(this.allowBetaPinging.isSelected()));
|
||||
ViaProxy.getSaveManager().save();
|
||||
}
|
||||
|
||||
|
@ -215,6 +215,7 @@ public class GeneralTab extends AUITab {
|
||||
ViaProxy.getUI().advancedTab.legacySkinLoading.setEnabled(state);
|
||||
ViaProxy.getUI().advancedTab.chatSigning.setEnabled(state);
|
||||
ViaProxy.getUI().advancedTab.ignorePacketTranslationErrors.setEnabled(state);
|
||||
ViaProxy.getUI().advancedTab.allowBetaPinging.setEnabled(state);
|
||||
if (state) this.serverVersion.getActionListeners()[0].actionPerformed(null);
|
||||
}
|
||||
|
||||
@ -258,6 +259,7 @@ public class GeneralTab extends AUITab {
|
||||
final String proxyUrl = ViaProxy.getUI().advancedTab.proxy.getText().trim();
|
||||
final boolean chatSigning = ViaProxy.getUI().advancedTab.chatSigning.isSelected();
|
||||
final boolean ignorePacketTranslationErrors = ViaProxy.getUI().advancedTab.ignorePacketTranslationErrors.isSelected();
|
||||
final boolean allowBetaPinging = ViaProxy.getUI().advancedTab.allowBetaPinging.isSelected();
|
||||
|
||||
try {
|
||||
try {
|
||||
@ -295,6 +297,7 @@ public class GeneralTab extends AUITab {
|
||||
Options.OPENAUTHMOD_AUTH = authMethod == 2;
|
||||
Options.CHAT_SIGNING = chatSigning;
|
||||
Options.IGNORE_PACKET_TRANSLATION_ERRORS = ignorePacketTranslationErrors;
|
||||
Options.ALLOW_BETA_PINGING = allowBetaPinging;
|
||||
|
||||
if (!proxyUrl.isEmpty()) {
|
||||
try {
|
||||
|
@ -53,6 +53,8 @@ tab.advanced.chat_signing.label=Chat Signatur
|
||||
tab.advanced.chat_signing.tooltip=Aktiviert das Senden von signierten Chat Nachrichten auf >= 1.19 Servern.
|
||||
tab.advanced.ignore_packet_translation_errors.label=Datenpaket Übersetzungsfehler ignorieren
|
||||
tab.advanced.ignore_packet_translation_errors.tooltip=Wenn du diese Option aktivierst, wirst du nicht mehr vom Server gekickt, wenn es einen Datenpaket Übersetzungsfehler gibt, sondern der Fehler wird nur in der Konsole angezeigt.\nDiese Option könnte abhängig vom Datenpaket, welches nicht übersetzt werden konnte, Folgeprobleme verursachen.
|
||||
tab.advanced.allow_beta_pinging.label=Aktiviere Pings für <= b1.7.3
|
||||
tab.advanced.allow_beta_pinging.tooltip=Aktiviert das Pingen für <= b1.7.3 Server. Das könnte zu Problemen bei Servern, welche zu schnelle Verbindungen blockieren führen.
|
||||
tab.advanced.create_viaversion_dump.label=ViaVersion Dump erstellen
|
||||
tab.advanced.create_viaversion_dump.success=Der ViaVersion Dump Link wurde in die Zwischenablage kopiert.
|
||||
tab.advanced.upload_latest_log.label=Neueste Log-Datei hochladen
|
||||
|
@ -53,6 +53,8 @@ tab.advanced.chat_signing.label=Chat signing
|
||||
tab.advanced.chat_signing.tooltip=Enables sending signed chat messages on >= 1.19 servers.
|
||||
tab.advanced.ignore_packet_translation_errors.label=Ignore packet translation errors
|
||||
tab.advanced.ignore_packet_translation_errors.tooltip=Enabling this will prevent getting disconnected from the server when a packet translation error occurs and instead only print the error in the console.\nThis may cause issues depending on the type of packet which failed to translate.
|
||||
tab.advanced.allow_beta_pinging.label=Allow <= b1.7.3 pinging
|
||||
tab.advanced.allow_beta_pinging.tooltip=Enabling this will allow you to ping <= b1.7.3 servers. This may cause issues with servers that block too frequent connections.
|
||||
tab.advanced.create_viaversion_dump.label=Create ViaVersion dump
|
||||
tab.advanced.create_viaversion_dump.success=Copied ViaVersion dump link to clipboard.
|
||||
tab.advanced.upload_latest_log.label=Upload latest log file
|
||||
|
Loading…
Reference in New Issue
Block a user