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:
parent
b0fb08ff71
commit
81f0121e7c
@ -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);
|
||||
}
|
||||
}
|
@ -8,6 +8,7 @@
|
||||
"client": [
|
||||
"AbstractBlockStateMixin",
|
||||
"AbstractSignEditScreenMixin",
|
||||
"AllowedAddressResolverMixin",
|
||||
"ArmorItemMixin",
|
||||
"BackgroundRendererMixin",
|
||||
"BlockEntityRenderDispatcherMixin",
|
||||
|
Loading…
Reference in New Issue
Block a user