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": [
|
"client": [
|
||||||
"AbstractBlockStateMixin",
|
"AbstractBlockStateMixin",
|
||||||
"AbstractSignEditScreenMixin",
|
"AbstractSignEditScreenMixin",
|
||||||
|
"AllowedAddressResolverMixin",
|
||||||
"ArmorItemMixin",
|
"ArmorItemMixin",
|
||||||
"BackgroundRendererMixin",
|
"BackgroundRendererMixin",
|
||||||
"BlockEntityRenderDispatcherMixin",
|
"BlockEntityRenderDispatcherMixin",
|
||||||
|
Loading…
Reference in New Issue
Block a user