0
0
mirror of https://github.com/Wurst-Imperium/Wurst7.git synced 2024-09-20 01:12:13 +02:00

Allow connection to shadowbanned servers

This commit is contained in:
Alexander01998 2023-06-04 11:41:08 +02:00
parent b0fb08ff71
commit 81f0121e7c
2 changed files with 61 additions and 0 deletions

View File

@ -0,0 +1,60 @@
/*
* Copyright (c) 2014-2023 Wurst-Imperium and contributors.
*
* This source code is subject to the terms of the GNU General Public
* License, version 3. If a copy of the GPL was not distributed with this
* file, You can obtain one at: https://www.gnu.org/licenses/gpl-3.0.txt
*/
package net.wurstclient.mixin;
import java.util.Optional;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import net.minecraft.client.network.Address;
import net.minecraft.client.network.AddressResolver;
import net.minecraft.client.network.AllowedAddressResolver;
import net.minecraft.client.network.RedirectResolver;
import net.minecraft.client.network.ServerAddress;
import net.wurstclient.WurstClient;
@Mixin(AllowedAddressResolver.class)
public class AllowedAddressResolverMixin
{
@Shadow
@Final
private AddressResolver addressResolver;
@Shadow
@Final
private RedirectResolver redirectResolver;
/**
* This mixin allows users to connect to servers that have been shadowbanned
* by Mojang, such as CS:GO and GTA clones that are apparently "too
* adult-oriented" for having pixelated guns.
*/
@Inject(at = @At("HEAD"),
method = "resolve(Lnet/minecraft/client/network/ServerAddress;)Ljava/util/Optional;",
cancellable = true)
public void resolve(ServerAddress address,
CallbackInfoReturnable<Optional<Address>> cir)
{
if(!WurstClient.INSTANCE.isEnabled())
return;
Optional<Address> optionalAddress = addressResolver.resolve(address);
Optional<ServerAddress> optionalRedirect =
redirectResolver.lookupRedirect(address);
if(optionalRedirect.isPresent())
optionalAddress = addressResolver.resolve(optionalRedirect.get());
cir.setReturnValue(optionalAddress);
}
}

View File

@ -8,6 +8,7 @@
"client": [ "client": [
"AbstractBlockStateMixin", "AbstractBlockStateMixin",
"AbstractSignEditScreenMixin", "AbstractSignEditScreenMixin",
"AllowedAddressResolverMixin",
"ArmorItemMixin", "ArmorItemMixin",
"BackgroundRendererMixin", "BackgroundRendererMixin",
"BlockEntityRenderDispatcherMixin", "BlockEntityRenderDispatcherMixin",