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 Account MC_ACCOUNT;
|
||||||
public static URI PROXY_URL; // Example: type://address:port or type://username:password@address:port
|
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 IGNORE_PACKET_TRANSLATION_ERRORS;
|
||||||
|
public static boolean ALLOW_BETA_PINGING;
|
||||||
|
|
||||||
// GUI only config options
|
// GUI only config options
|
||||||
public static String CLASSIC_MP_PASS;
|
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> 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> 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> 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));
|
ViaProxy.EVENT_MANAGER.call(new PreOptionsParseEvent(parser));
|
||||||
|
|
||||||
final OptionSet options;
|
final OptionSet options;
|
||||||
@ -137,6 +139,7 @@ public class Options {
|
|||||||
SERVER_HAPROXY_PROTOCOL = options.has(serverHaProxyProtocol);
|
SERVER_HAPROXY_PROTOCOL = options.has(serverHaProxyProtocol);
|
||||||
LEGACY_CLIENT_PASSTHROUGH = options.has(legacyClientPassthrough);
|
LEGACY_CLIENT_PASSTHROUGH = options.has(legacyClientPassthrough);
|
||||||
IGNORE_PACKET_TRANSLATION_ERRORS = options.has(ignorePacketTranslationErrors);
|
IGNORE_PACKET_TRANSLATION_ERRORS = options.has(ignorePacketTranslationErrors);
|
||||||
|
ALLOW_BETA_PINGING = options.has(allowBetaPinging);
|
||||||
ViaProxy.EVENT_MANAGER.call(new PostOptionsParseEvent(options));
|
ViaProxy.EVENT_MANAGER.call(new PostOptionsParseEvent(options));
|
||||||
} catch (OptionException e) {
|
} catch (OptionException e) {
|
||||||
Logger.LOGGER.error("Error parsing options: " + e.getMessage());
|
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.IPacket;
|
||||||
import net.raphimc.netminecraft.packet.impl.handshake.C2SHandshakePacket;
|
import net.raphimc.netminecraft.packet.impl.handshake.C2SHandshakePacket;
|
||||||
import net.raphimc.viabedrock.api.BedrockProtocolVersion;
|
import net.raphimc.viabedrock.api.BedrockProtocolVersion;
|
||||||
|
import net.raphimc.vialegacy.api.LegacyProtocolVersion;
|
||||||
import net.raphimc.viaproxy.ViaProxy;
|
import net.raphimc.viaproxy.ViaProxy;
|
||||||
import net.raphimc.viaproxy.cli.options.Options;
|
import net.raphimc.viaproxy.cli.options.Options;
|
||||||
import net.raphimc.viaproxy.plugins.events.ConnectEvent;
|
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())) {
|
if (packet.intendedState.getConnectionState() == ConnectionState.LOGIN && TransferDataHolder.hasTempRedirect(this.proxyConnection.getC2P())) {
|
||||||
serverAddress = TransferDataHolder.removeTempRedirect(this.proxyConnection.getC2P());
|
serverAddress = TransferDataHolder.removeTempRedirect(this.proxyConnection.getC2P());
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,7 @@ public class AdvancedTab extends AUITab {
|
|||||||
JCheckBox legacySkinLoading;
|
JCheckBox legacySkinLoading;
|
||||||
JCheckBox chatSigning;
|
JCheckBox chatSigning;
|
||||||
JCheckBox ignorePacketTranslationErrors;
|
JCheckBox ignorePacketTranslationErrors;
|
||||||
|
JCheckBox allowBetaPinging;
|
||||||
JButton viaVersionDumpButton;
|
JButton viaVersionDumpButton;
|
||||||
JButton uploadLogsButton;
|
JButton uploadLogsButton;
|
||||||
|
|
||||||
@ -115,6 +116,13 @@ public class AdvancedTab extends AUITab {
|
|||||||
ViaProxy.getSaveManager().uiSave.loadCheckBox("ignore_packet_translation_errors", this.ignorePacketTranslationErrors);
|
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);
|
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);
|
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("legacy_skin_loading", String.valueOf(this.legacySkinLoading.isSelected()));
|
||||||
save.put("chat_signing", String.valueOf(this.chatSigning.isSelected()));
|
save.put("chat_signing", String.valueOf(this.chatSigning.isSelected()));
|
||||||
save.put("ignore_packet_translation_errors", String.valueOf(this.ignorePacketTranslationErrors.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();
|
ViaProxy.getSaveManager().save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,6 +215,7 @@ public class GeneralTab extends AUITab {
|
|||||||
ViaProxy.getUI().advancedTab.legacySkinLoading.setEnabled(state);
|
ViaProxy.getUI().advancedTab.legacySkinLoading.setEnabled(state);
|
||||||
ViaProxy.getUI().advancedTab.chatSigning.setEnabled(state);
|
ViaProxy.getUI().advancedTab.chatSigning.setEnabled(state);
|
||||||
ViaProxy.getUI().advancedTab.ignorePacketTranslationErrors.setEnabled(state);
|
ViaProxy.getUI().advancedTab.ignorePacketTranslationErrors.setEnabled(state);
|
||||||
|
ViaProxy.getUI().advancedTab.allowBetaPinging.setEnabled(state);
|
||||||
if (state) this.serverVersion.getActionListeners()[0].actionPerformed(null);
|
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 String proxyUrl = ViaProxy.getUI().advancedTab.proxy.getText().trim();
|
||||||
final boolean chatSigning = ViaProxy.getUI().advancedTab.chatSigning.isSelected();
|
final boolean chatSigning = ViaProxy.getUI().advancedTab.chatSigning.isSelected();
|
||||||
final boolean ignorePacketTranslationErrors = ViaProxy.getUI().advancedTab.ignorePacketTranslationErrors.isSelected();
|
final boolean ignorePacketTranslationErrors = ViaProxy.getUI().advancedTab.ignorePacketTranslationErrors.isSelected();
|
||||||
|
final boolean allowBetaPinging = ViaProxy.getUI().advancedTab.allowBetaPinging.isSelected();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
try {
|
try {
|
||||||
@ -295,6 +297,7 @@ public class GeneralTab extends AUITab {
|
|||||||
Options.OPENAUTHMOD_AUTH = authMethod == 2;
|
Options.OPENAUTHMOD_AUTH = authMethod == 2;
|
||||||
Options.CHAT_SIGNING = chatSigning;
|
Options.CHAT_SIGNING = chatSigning;
|
||||||
Options.IGNORE_PACKET_TRANSLATION_ERRORS = ignorePacketTranslationErrors;
|
Options.IGNORE_PACKET_TRANSLATION_ERRORS = ignorePacketTranslationErrors;
|
||||||
|
Options.ALLOW_BETA_PINGING = allowBetaPinging;
|
||||||
|
|
||||||
if (!proxyUrl.isEmpty()) {
|
if (!proxyUrl.isEmpty()) {
|
||||||
try {
|
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.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.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.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.label=ViaVersion Dump erstellen
|
||||||
tab.advanced.create_viaversion_dump.success=Der ViaVersion Dump Link wurde in die Zwischenablage kopiert.
|
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
|
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.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.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.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.label=Create ViaVersion dump
|
||||||
tab.advanced.create_viaversion_dump.success=Copied ViaVersion dump link to clipboard.
|
tab.advanced.create_viaversion_dump.success=Copied ViaVersion dump link to clipboard.
|
||||||
tab.advanced.upload_latest_log.label=Upload latest log file
|
tab.advanced.upload_latest_log.label=Upload latest log file
|
||||||
|
Loading…
Reference in New Issue
Block a user