mirror of
https://github.com/Wurst-Imperium/Wurst7.git
synced 2024-09-19 17:02:13 +02:00
Merge branch '1.20.4'
This commit is contained in:
commit
be4da08466
@ -5,15 +5,15 @@ org.gradle.parallel=true
|
||||
# Fabric Properties
|
||||
# check these at https://fabricmc.net/develop/ and
|
||||
# https://www.curseforge.com/minecraft/mc-mods/fabric-api
|
||||
minecraft_version=1.20.2
|
||||
yarn_mappings=1.20.2+build.4
|
||||
minecraft_version=1.20.4
|
||||
yarn_mappings=1.20.4+build.3
|
||||
loader_version=0.15.2
|
||||
|
||||
#Fabric api
|
||||
fabric_version=0.91.2+1.20.2
|
||||
fabric_version=0.91.2+1.20.4
|
||||
|
||||
# Mod Properties
|
||||
mod_version = v7.40-MC1.20.2
|
||||
mod_version = v7.40-MC1.20.4
|
||||
maven_group = net.wurstclient
|
||||
archives_base_name = Wurst-Client
|
||||
|
||||
|
@ -60,7 +60,7 @@ public class FriendsList
|
||||
if(!middleClickFriends.isChecked())
|
||||
return;
|
||||
|
||||
String name = entity.getEntityName();
|
||||
String name = entity.getName().getString();
|
||||
|
||||
if(contains(name))
|
||||
removeAndSave(name);
|
||||
@ -75,7 +75,7 @@ public class FriendsList
|
||||
|
||||
public boolean isFriend(Entity entity)
|
||||
{
|
||||
return entity != null && contains(entity.getEntityName());
|
||||
return entity != null && contains(entity.getName().getString());
|
||||
}
|
||||
|
||||
public ArrayList<String> toList()
|
||||
|
@ -58,7 +58,7 @@ public enum WurstClient
|
||||
public static IMinecraftClient IMC;
|
||||
|
||||
public static final String VERSION = "7.40";
|
||||
public static final String MC_VERSION = "1.20.2";
|
||||
public static final String MC_VERSION = "1.20.4";
|
||||
|
||||
private WurstAnalytics analytics;
|
||||
private EventManager eventManager;
|
||||
|
@ -47,7 +47,7 @@ public final class CopyItemCmd extends Command
|
||||
{
|
||||
for(AbstractClientPlayerEntity player : MC.world.getPlayers())
|
||||
{
|
||||
if(!player.getEntityName().equalsIgnoreCase(name))
|
||||
if(!player.getName().getString().equalsIgnoreCase(name))
|
||||
continue;
|
||||
|
||||
return player;
|
||||
|
@ -333,7 +333,8 @@ public final class AnchorAuraHack extends Hack implements UpdateListener
|
||||
&& ((LivingEntity)e).getHealth() > 0)
|
||||
.filter(e -> e != MC.player)
|
||||
.filter(e -> !(e instanceof FakePlayerEntity))
|
||||
.filter(e -> !WURST.getFriends().contains(e.getEntityName()))
|
||||
.filter(
|
||||
e -> !WURST.getFriends().contains(e.getName().getString()))
|
||||
.filter(e -> MC.player.squaredDistanceTo(e) <= rangeSq);
|
||||
|
||||
stream = entityFilters.applyTo(stream);
|
||||
|
@ -206,7 +206,7 @@ public final class AutoFarmHack extends Hack
|
||||
if(block instanceof CocoaBlock)
|
||||
return state.get(CocoaBlock.AGE) >= 2;
|
||||
|
||||
if(block instanceof GourdBlock)
|
||||
if(block == Blocks.PUMPKIN || block == Blocks.MELON)
|
||||
return true;
|
||||
|
||||
if(block instanceof SugarCaneBlock)
|
||||
|
@ -79,6 +79,11 @@ public class ChestEspHack extends Hack implements UpdateListener,
|
||||
"Barrels will be highlighted in this color.", Color.GREEN),
|
||||
new CheckboxSetting("Include barrels", true));
|
||||
|
||||
private final ChestEspBlockGroup pots = new ChestEspBlockGroup(
|
||||
new ColorSetting("Pots color",
|
||||
"Decorated pots will be highlighted in this color.", Color.GREEN),
|
||||
new CheckboxSetting("Include pots", false));
|
||||
|
||||
private final ChestEspBlockGroup shulkerBoxes = new ChestEspBlockGroup(
|
||||
new ColorSetting("Shulker color",
|
||||
"Shulker boxes will be highlighted in this color.", Color.MAGENTA),
|
||||
@ -107,14 +112,20 @@ public class ChestEspHack extends Hack implements UpdateListener,
|
||||
new Color(0xFF8000)),
|
||||
new CheckboxSetting("Include dispensers", false));
|
||||
|
||||
private final ChestEspBlockGroup crafters = new ChestEspBlockGroup(
|
||||
new ColorSetting("Crafter color",
|
||||
"Crafters will be highlighted in this color.", Color.WHITE),
|
||||
new CheckboxSetting("Include crafters", false));
|
||||
|
||||
private final ChestEspBlockGroup furnaces =
|
||||
new ChestEspBlockGroup(new ColorSetting("Furnace color",
|
||||
"Furnaces, smokers, and blast furnaces will be highlighted in this color.",
|
||||
Color.RED), new CheckboxSetting("Include furnaces", false));
|
||||
|
||||
private final List<ChestEspGroup> groups = Arrays.asList(basicChests,
|
||||
trapChests, enderChests, chestCarts, chestBoats, barrels, shulkerBoxes,
|
||||
hoppers, hopperCarts, droppers, dispensers, furnaces);
|
||||
private final List<ChestEspGroup> groups =
|
||||
Arrays.asList(basicChests, trapChests, enderChests, chestCarts,
|
||||
chestBoats, barrels, pots, shulkerBoxes, hoppers, hopperCarts,
|
||||
droppers, dispensers, crafters, furnaces);
|
||||
|
||||
private final List<ChestEspEntityGroup> entityGroups =
|
||||
Arrays.asList(chestCarts, chestBoats, hopperCarts);
|
||||
@ -170,12 +181,16 @@ public class ChestEspHack extends Hack implements UpdateListener,
|
||||
shulkerBoxes.add(blockEntity);
|
||||
else if(blockEntity instanceof BarrelBlockEntity)
|
||||
barrels.add(blockEntity);
|
||||
else if(blockEntity instanceof DecoratedPotBlockEntity)
|
||||
pots.add(blockEntity);
|
||||
else if(blockEntity instanceof HopperBlockEntity)
|
||||
hoppers.add(blockEntity);
|
||||
else if(blockEntity instanceof DropperBlockEntity)
|
||||
droppers.add(blockEntity);
|
||||
else if(blockEntity instanceof DispenserBlockEntity)
|
||||
dispensers.add(blockEntity);
|
||||
else if(blockEntity instanceof CrafterBlockEntity)
|
||||
crafters.add(blockEntity);
|
||||
else if(blockEntity instanceof AbstractFurnaceBlockEntity)
|
||||
furnaces.add(blockEntity);
|
||||
|
||||
|
@ -251,7 +251,8 @@ public final class CrystalAuraHack extends Hack implements UpdateListener
|
||||
&& ((LivingEntity)e).getHealth() > 0)
|
||||
.filter(e -> e != MC.player)
|
||||
.filter(e -> !(e instanceof FakePlayerEntity))
|
||||
.filter(e -> !WURST.getFriends().contains(e.getEntityName()))
|
||||
.filter(
|
||||
e -> !WURST.getFriends().contains(e.getName().getString()))
|
||||
.filter(e -> MC.player.squaredDistanceTo(e) <= rangeSq);
|
||||
|
||||
stream = entityFilters.applyTo(stream);
|
||||
|
@ -160,7 +160,7 @@ public final class PlayerEspHack extends Hack implements UpdateListener,
|
||||
e.getHeight() + extraSize, e.getWidth() + extraSize);
|
||||
|
||||
// set color
|
||||
if(WURST.getFriends().contains(e.getEntityName()))
|
||||
if(WURST.getFriends().contains(e.getName().getString()))
|
||||
RenderSystem.setShaderColor(0, 0, 1, 0.5F);
|
||||
else
|
||||
{
|
||||
@ -199,7 +199,7 @@ public final class PlayerEspHack extends Hack implements UpdateListener,
|
||||
|
||||
float r, g, b;
|
||||
|
||||
if(WURST.getFriends().contains(e.getEntityName()))
|
||||
if(WURST.getFriends().contains(e.getName().getString()))
|
||||
{
|
||||
r = 0;
|
||||
g = 0;
|
||||
|
@ -47,7 +47,8 @@ public final class XRayHack extends Hack implements UpdateListener,
|
||||
"minecraft:brewing_stand", "minecraft:chain_command_block",
|
||||
"minecraft:chest", "minecraft:clay", "minecraft:coal_block",
|
||||
"minecraft:coal_ore", "minecraft:command_block", "minecraft:copper_ore",
|
||||
"minecraft:crafting_table", "minecraft:deepslate_coal_ore",
|
||||
"minecraft:crafter", "minecraft:crafting_table",
|
||||
"minecraft:decorated_pot", "minecraft:deepslate_coal_ore",
|
||||
"minecraft:deepslate_copper_ore", "minecraft:deepslate_diamond_ore",
|
||||
"minecraft:deepslate_emerald_ore", "minecraft:deepslate_gold_ore",
|
||||
"minecraft:deepslate_iron_ore", "minecraft:deepslate_lapis_ore",
|
||||
|
@ -14,8 +14,8 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import net.minecraft.client.gui.screen.DirectConnectScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.multiplayer.DirectConnectScreen;
|
||||
import net.minecraft.client.network.ServerInfo;
|
||||
import net.minecraft.text.Text;
|
||||
import net.wurstclient.WurstClient;
|
||||
|
@ -19,7 +19,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import com.mojang.authlib.exceptions.AuthenticationException;
|
||||
import com.mojang.authlib.minecraft.UserApiService;
|
||||
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
||||
|
||||
@ -179,23 +178,10 @@ public abstract class MinecraftClientMixin
|
||||
{
|
||||
wurstSession = session;
|
||||
|
||||
UserApiService userApiService =
|
||||
wurst_createUserApiService(session.getAccessToken());
|
||||
UserApiService userApiService = authenticationService
|
||||
.createUserApiService(session.getAccessToken());
|
||||
UUID uuid = wurstSession.getUuidOrNull();
|
||||
wurstProfileKeys =
|
||||
new ProfileKeysImpl(userApiService, uuid, runDirectory.toPath());
|
||||
}
|
||||
|
||||
private UserApiService wurst_createUserApiService(String accessToken)
|
||||
{
|
||||
try
|
||||
{
|
||||
return authenticationService.createUserApiService(accessToken);
|
||||
|
||||
}catch(AuthenticationException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
return UserApiService.OFFLINE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ package net.wurstclient.mixin;
|
||||
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
@ -19,11 +20,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
|
||||
import com.mojang.authlib.minecraft.MinecraftProfileTextures;
|
||||
|
||||
import net.minecraft.client.texture.PlayerSkinProvider;
|
||||
import net.minecraft.client.texture.PlayerSkinProvider.Textures;
|
||||
import net.minecraft.client.util.SkinTextures;
|
||||
|
||||
@Mixin(PlayerSkinProvider.class)
|
||||
@ -33,26 +33,21 @@ public abstract class PlayerSkinProviderMixin
|
||||
private MinecraftProfileTexture currentCape;
|
||||
|
||||
@Inject(at = @At("HEAD"),
|
||||
method = "fetchSkinTextures(Lcom/mojang/authlib/GameProfile;Lnet/minecraft/client/texture/PlayerSkinProvider$Textures;)Ljava/util/concurrent/CompletableFuture;")
|
||||
private void onFetchSkinTextures(GameProfile profile, Textures textures,
|
||||
method = "fetchSkinTextures(Ljava/util/UUID;Lcom/mojang/authlib/minecraft/MinecraftProfileTextures;)Ljava/util/concurrent/CompletableFuture;")
|
||||
private void onFetchSkinTextures(UUID uuid,
|
||||
MinecraftProfileTextures textures,
|
||||
CallbackInfoReturnable<CompletableFuture<SkinTextures>> cir)
|
||||
{
|
||||
String name = profile.getName();
|
||||
String uuid = profile.getId().toString();
|
||||
String uuidString = uuid.toString();
|
||||
|
||||
try
|
||||
{
|
||||
if(capes == null)
|
||||
setupWurstCapes();
|
||||
|
||||
if(capes.has(name))
|
||||
if(capes.has(uuidString))
|
||||
{
|
||||
String capeURL = capes.get(name).getAsString();
|
||||
currentCape = new MinecraftProfileTexture(capeURL, null);
|
||||
|
||||
}else if(capes.has(uuid))
|
||||
{
|
||||
String capeURL = capes.get(uuid).getAsString();
|
||||
String capeURL = capes.get(uuidString).getAsString();
|
||||
currentCape = new MinecraftProfileTexture(capeURL, null);
|
||||
|
||||
}else
|
||||
@ -60,15 +55,15 @@ public abstract class PlayerSkinProviderMixin
|
||||
|
||||
}catch(Exception e)
|
||||
{
|
||||
System.err.println("[Wurst] Failed to load cape for '" + name
|
||||
+ "' (" + uuid + ")");
|
||||
System.err
|
||||
.println("[Wurst] Failed to load cape for UUID " + uuidString);
|
||||
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@ModifyVariable(at = @At("STORE"),
|
||||
method = "fetchSkinTextures(Lcom/mojang/authlib/GameProfile;Lnet/minecraft/client/texture/PlayerSkinProvider$Textures;)Ljava/util/concurrent/CompletableFuture;",
|
||||
method = "fetchSkinTextures(Ljava/util/UUID;Lcom/mojang/authlib/minecraft/MinecraftProfileTextures;)Ljava/util/concurrent/CompletableFuture;",
|
||||
ordinal = 1,
|
||||
name = "minecraftProfileTexture2")
|
||||
private MinecraftProfileTexture modifyCapeTexture(
|
||||
|
@ -16,7 +16,7 @@ import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.client.gui.Drawable;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.text.LiteralTextContent;
|
||||
import net.minecraft.text.PlainTextContent.Literal;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.text.TranslatableTextContent;
|
||||
import net.wurstclient.WurstClient;
|
||||
@ -134,7 +134,7 @@ public final class ForcedChatReportsScreen extends Screen
|
||||
&& TRANSLATABLE_DISCONNECT_REASONS.contains(tr.getKey()))
|
||||
return true;
|
||||
|
||||
if(disconnectReason.getContent() instanceof LiteralTextContent lt
|
||||
if(disconnectReason.getContent() instanceof Literal lt
|
||||
&& LITERAL_DISCONNECT_REASONS.contains(lt.string()))
|
||||
return true;
|
||||
|
||||
|
@ -7,8 +7,8 @@
|
||||
*/
|
||||
package net.wurstclient.util;
|
||||
|
||||
import net.minecraft.client.gui.screen.ConnectScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.multiplayer.ConnectScreen;
|
||||
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;
|
||||
import net.minecraft.client.network.ServerAddress;
|
||||
import net.minecraft.client.network.ServerInfo;
|
||||
|
@ -46,7 +46,7 @@
|
||||
"description.wurst.hack.autotool": "Automatically equips the fastest applicable tool in your hotbar when you try to break a block.",
|
||||
"description.wurst.hack.autototem": "Automatically moves totems of undying to your off-hand.",
|
||||
"description.wurst.hack.autowalk": "Makes you walk automatically.",
|
||||
"description.wurst.hack.barrieresp": "Allows you to see nearby barrier blocks.\n\nNote: Due to Minecraft bug MC-47607, this hack does not work if your \"Particles\" option is set to \"Minimal\".",
|
||||
"description.wurst.hack.barrieresp": "Allows you to see nearby barrier blocks.",
|
||||
"description.wurst.hack.basefinder": "Finds player bases by searching for man-made blocks.\nThe blocks that it finds will be highlighted in the selected color.\nGood for finding faction bases.",
|
||||
"description.wurst.hack.blink": "Suspends all motion updates while enabled.",
|
||||
"description.wurst.hack.boatfly": "Allows you to fly with boats and other vehicles.\nPress the sprint key to go down faster.",
|
||||
|
@ -30,8 +30,8 @@
|
||||
|
||||
"depends": {
|
||||
"fabricloader": ">=0.15.0",
|
||||
"fabric-api": ">=0.88.4",
|
||||
"minecraft": "~1.20.2-beta.4",
|
||||
"fabric-api": ">=0.91.1",
|
||||
"minecraft": "~1.20.3-beta.3",
|
||||
"java": ">=17"
|
||||
},
|
||||
"suggests": {
|
||||
|
@ -1,6 +1,5 @@
|
||||
accessWidener v1 named
|
||||
accessible class net/minecraft/client/render/BackgroundRenderer$StatusEffectFogModifier
|
||||
accessible class net/minecraft/client/texture/PlayerSkinProvider$Textures
|
||||
accessible method net/minecraft/client/MinecraftClient doItemUse ()V
|
||||
accessible method net/minecraft/client/render/GameRenderer loadPostProcessor (Lnet/minecraft/util/Identifier;)V
|
||||
accessible method net/minecraft/entity/projectile/FishingBobberEntity isOpenOrWaterAround (Lnet/minecraft/util/math/BlockPos;)Z
|
||||
|
Loading…
Reference in New Issue
Block a user