mirror of
https://github.com/refactorinqq/SLC-1.8.9.git
synced 2024-11-10 06:51:32 +01:00
Fixes
This commit is contained in:
parent
a6b499c605
commit
ba183b0935
@ -1,49 +1,27 @@
|
||||
package net.silentclient.client.gui;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiMultiplayer;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.gui.GuiScreenServerList;
|
||||
import net.minecraft.client.multiplayer.ServerData;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.silentclient.client.mixin.accessors.GuiMultiplayerAccessor;
|
||||
import net.silentclient.client.gui.minecraft.GuiMainMenu;
|
||||
|
||||
public class GuiMultiplayerInGame extends GuiMultiplayer {
|
||||
|
||||
public GuiMultiplayerInGame(GuiScreen parentScreen) {
|
||||
super(parentScreen);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void actionPerformed(GuiButton button) throws IOException {
|
||||
if(button.id == 1) {
|
||||
disconnect();
|
||||
}
|
||||
|
||||
if(button.id == 4) {
|
||||
((GuiMultiplayerAccessor) this).setDirectConnect(true);
|
||||
((GuiMultiplayerAccessor) this).setSelectedServer(new ServerData(I18n.format("selectServer.defaultName", new Object[0]), "", false));
|
||||
|
||||
this.mc.displayGuiScreen(new GuiScreenServerList(this, ((GuiMultiplayerAccessor) this).getSelectedServer()));
|
||||
}
|
||||
|
||||
super.actionPerformed(button);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectToSelected() {
|
||||
disconnect();
|
||||
this.performDisconnection();
|
||||
super.connectToSelected();
|
||||
}
|
||||
|
||||
private void disconnect() {
|
||||
if(this.mc.theWorld != null) {
|
||||
public void performDisconnection() {
|
||||
if (this.mc.theWorld != null) {
|
||||
this.mc.theWorld.sendQuittingDisconnectingPacket();
|
||||
this.mc.loadWorld(null);
|
||||
this.mc.displayGuiScreen(null);
|
||||
((GuiMultiplayerAccessor) this).setParentScreen(null);
|
||||
// ((GuiMultiplayerAccessor) this).setParentScreen(new GuiMultiplayer(new GuiMainMenu()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -323,7 +323,7 @@ public class GuiMainMenu extends GuiScreen implements GuiYesNoCallback
|
||||
GlStateManager.scale(f, f, f);
|
||||
// this.drawCenteredString(this.fontRendererObj, this.splashText, 0, -8, -256);
|
||||
GlStateManager.popMatrix();
|
||||
String s = "Silent Client 1.8.8";
|
||||
String s = "Silent Client 1.8.9";
|
||||
|
||||
if (this.mc.isDemo())
|
||||
{
|
||||
|
@ -26,15 +26,10 @@ public class SilentClientTweaker implements ITweaker {
|
||||
catch(ClassNotFoundException e) {
|
||||
Client.logger.info("Optifine not found!");
|
||||
}
|
||||
// Add the launch arguments to our launchArgs array
|
||||
this.launchArgs.addAll(args);
|
||||
|
||||
// Constants
|
||||
final String VERSION = "--version";
|
||||
final String ASSET_DIR = "--assetDir";
|
||||
final String GAME_DIR = "--gameDir";
|
||||
|
||||
// Check if version is passed as a launch argument, if not add it
|
||||
if (!args.contains(VERSION) && profile != null)
|
||||
{
|
||||
launchArgs.add(VERSION);
|
||||
|
@ -2,14 +2,10 @@ package net.silentclient.client.mixin.accessors;
|
||||
|
||||
import net.minecraft.client.gui.GuiMultiplayer;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.multiplayer.ServerData;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(GuiMultiplayer.class)
|
||||
public interface GuiMultiplayerAccessor {
|
||||
@Accessor void setSelectedServer(ServerData a);
|
||||
@Accessor ServerData getSelectedServer();
|
||||
@Accessor void setParentScreen(GuiScreen a);
|
||||
@Accessor void setDirectConnect(boolean a);
|
||||
}
|
||||
|
@ -0,0 +1,7 @@
|
||||
package net.silentclient.client.mixin.ducks;
|
||||
|
||||
import net.silentclient.client.cosmetics.StaticResourceLocation;
|
||||
|
||||
public interface EntityRendererExt {
|
||||
void silent$loadShader(StaticResourceLocation location);
|
||||
}
|
@ -5,9 +5,11 @@ import net.minecraft.client.entity.AbstractClientPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.StringUtils;
|
||||
import net.minecraft.world.World;
|
||||
import net.silentclient.client.Client;
|
||||
import net.silentclient.client.cosmetics.*;
|
||||
import net.silentclient.client.cosmetics.dynamiccurved.DynamicCape;
|
||||
import net.silentclient.client.mixin.ducks.AbstractClientPlayerExt;
|
||||
import net.silentclient.client.mods.settings.CosmeticsMod;
|
||||
import net.silentclient.client.utils.Players;
|
||||
import net.silentclient.client.utils.types.PlayerResponse;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
@ -53,6 +55,9 @@ public abstract class AbstractClientPlayerMixin implements AbstractClientPlayerE
|
||||
|
||||
@Override
|
||||
public String silent$getCapeType() {
|
||||
if(!Client.getInstance().getSettingsManager().getSettingByClass(CosmeticsMod.class, "Capes").getValBoolean()) {
|
||||
return null;
|
||||
}
|
||||
return silent$capeType;
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,8 @@ package net.silentclient.client.mixin.mixins;
|
||||
|
||||
import net.minecraft.client.renderer.EntityRenderer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.silentclient.client.cosmetics.StaticResourceLocation;
|
||||
import net.silentclient.client.mixin.ducks.EntityRendererExt;
|
||||
import net.silentclient.client.utils.culling.EntityCulling;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
@ -11,9 +13,13 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(EntityRenderer.class)
|
||||
public abstract class EntityRendererMixin {
|
||||
@Shadow
|
||||
abstract void loadShader(ResourceLocation shader);
|
||||
public abstract class EntityRendererMixin implements EntityRendererExt {
|
||||
@Shadow protected abstract void loadShader(ResourceLocation resourceLocationIn);
|
||||
|
||||
@Override
|
||||
public void silent$loadShader(StaticResourceLocation location) {
|
||||
this.loadShader(location.getLocation());
|
||||
}
|
||||
|
||||
@Inject(method = "renderWorldPass", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/RenderGlobal;renderEntities(Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;F)V"))
|
||||
private void shouldPerformCulling(CallbackInfo ci) {
|
||||
|
@ -0,0 +1,32 @@
|
||||
package net.silentclient.client.mixin.mixins;
|
||||
|
||||
import net.minecraft.client.gui.achievement.GuiAchievement;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.silentclient.client.Client;
|
||||
import net.silentclient.client.mods.settings.RenderMod;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(GuiAchievement.class)
|
||||
public class GuiAchievementMixin {
|
||||
@Inject(method = "updateAchievementWindow", at = @At("HEAD"))
|
||||
public void removeAchievements(CallbackInfo ci) {
|
||||
if(Client.getInstance().getSettingsManager().getSettingByClass(RenderMod.class, "Disable Achievements").getValBoolean()) {
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "updateAchievementWindow", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/achievement/GuiAchievement;updateAchievementWindowScale()V"))
|
||||
public void fixAchievement1(CallbackInfo ci) {
|
||||
GlStateManager.enableBlend();
|
||||
GlStateManager.enableAlpha();
|
||||
}
|
||||
|
||||
@Inject(method = "updateAchievementWindow", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;enableDepth()V"))
|
||||
public void fixAchievement2(CallbackInfo ci) {
|
||||
GlStateManager.disableBlend();
|
||||
GlStateManager.disableAlpha();
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package net.silentclient.client.mixin.mixins;
|
||||
|
||||
import net.minecraft.client.entity.AbstractClientPlayer;
|
||||
import net.minecraft.client.renderer.entity.layers.LayerCape;
|
||||
import net.silentclient.client.mixin.ducks.AbstractClientPlayerExt;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(LayerCape.class)
|
||||
public abstract class LayerCapeMixin {
|
||||
@Inject(method = "doRenderLayer(Lnet/minecraft/client/entity/AbstractClientPlayer;FFFFFFF)V", at = @At("HEAD"))
|
||||
public void cancelCapeRenderer(AbstractClientPlayer entitylivingbaseIn, float p_177141_2_, float p_177141_3_, float partialTicks, float p_177141_5_, float p_177141_6_, float p_177141_7_, float scale, CallbackInfo ci) {
|
||||
if(((AbstractClientPlayerExt) entitylivingbaseIn).silent$getCape() != null) {
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,18 +1,22 @@
|
||||
package net.silentclient.client.utils;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.silentclient.client.Client;
|
||||
import net.silentclient.client.cosmetics.StaticResourceLocation;
|
||||
import net.silentclient.client.mixin.ducks.EntityRendererExt;
|
||||
import net.silentclient.client.mods.settings.GeneralMod;
|
||||
|
||||
public class MenuBlurUtils {
|
||||
public static void loadBlur() {
|
||||
if(Client.getInstance().getSettingsManager().getSettingByClass(GeneralMod.class, "Menu Background Blur").getValBoolean()) {
|
||||
// ((EntityRendererMixin) Minecraft.getMinecraft().entityRenderer).loadShader(new ResourceLocation("shaders/post/menu_blur.json"));
|
||||
((EntityRendererExt) Minecraft.getMinecraft().entityRenderer).silent$loadShader(new StaticResourceLocation("shaders/post/menu_blur.json"));
|
||||
}
|
||||
}
|
||||
|
||||
public static void unloadBlur() {
|
||||
if(Client.getInstance().getSettingsManager().getSettingByClass(GeneralMod.class, "Menu Background Blur").getValBoolean()) {
|
||||
// ((EntityRendererAccessor) Minecraft.getMinecraft().entityRenderer).loadShader(new ResourceLocation("shaders/post/menu_blur.json"));
|
||||
Minecraft.getMinecraft().entityRenderer.loadEntityShader(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,48 +0,0 @@
|
||||
package net.silentclient.client.utils;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import sun.misc.Unsafe;
|
||||
|
||||
@Deprecated
|
||||
public final class UnsafeAccess {
|
||||
static final String ANDROID = "THE_ONE";
|
||||
|
||||
static final String OPEN_JDK = "theUnsafe";
|
||||
|
||||
public static final Unsafe UNSAFE;
|
||||
|
||||
static {
|
||||
try {
|
||||
UNSAFE = load("theUnsafe", "THE_ONE");
|
||||
} catch (Exception e) {
|
||||
throw new Error("Failed to load sun.misc.Unsafe", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static long objectFieldOffset(Class<?> clazz, String fieldName) {
|
||||
try {
|
||||
return UNSAFE.objectFieldOffset(clazz.getDeclaredField(fieldName));
|
||||
} catch (NoSuchFieldException|SecurityException e) {
|
||||
throw new Error(e);
|
||||
}
|
||||
}
|
||||
|
||||
static Unsafe load(String openJdk, String android) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
|
||||
Field field;
|
||||
try {
|
||||
field = Unsafe.class.getDeclaredField(openJdk);
|
||||
} catch (NoSuchFieldException noSuchFieldException) {
|
||||
try {
|
||||
field = Unsafe.class.getDeclaredField(android);
|
||||
} catch (NoSuchFieldException noSuchFieldException1) {
|
||||
Constructor<Unsafe> unsafeConstructor = Unsafe.class.getDeclaredConstructor(new Class[0]);
|
||||
unsafeConstructor.setAccessible(true);
|
||||
return unsafeConstructor.newInstance(new Object[0]);
|
||||
}
|
||||
}
|
||||
field.setAccessible(true);
|
||||
return (Unsafe)field.get(null);
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
{
|
||||
"targets": [
|
||||
"swap"
|
||||
],
|
||||
"passes": [
|
||||
{
|
||||
"name": "menu_blur",
|
||||
"intarget": "minecraft:main",
|
||||
"outtarget": "swap",
|
||||
"uniforms": [
|
||||
{
|
||||
"name": "BlurDir",
|
||||
"values": [ 1.0, 0.0 ]
|
||||
},
|
||||
{
|
||||
"name": "Radius",
|
||||
"values": [ 20.0 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "menu_blur",
|
||||
"intarget": "swap",
|
||||
"outtarget": "minecraft:main",
|
||||
"uniforms": [
|
||||
{
|
||||
"name": "BlurDir",
|
||||
"values": [ 0.0, 1.0 ]
|
||||
},
|
||||
{
|
||||
"name": "Radius",
|
||||
"values": [ 20.0 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
#version 120
|
||||
|
||||
uniform sampler2D DiffuseSampler;
|
||||
|
||||
varying vec2 texCoord;
|
||||
varying vec2 oneTexel;
|
||||
|
||||
uniform vec2 InSize;
|
||||
|
||||
uniform vec2 BlurDir;
|
||||
uniform float Radius;
|
||||
|
||||
void main() {
|
||||
vec4 blurred = vec4(0.0);
|
||||
float totalStrength = 0.0;
|
||||
for(float r = -Radius; r <= Radius; r += 1.0) {
|
||||
vec4 tex = texture2D(DiffuseSampler, texCoord + oneTexel * r * BlurDir);
|
||||
float strength = 1.0 - abs(r / Radius);
|
||||
totalStrength = totalStrength + strength;
|
||||
blurred = blurred + tex * strength;
|
||||
}
|
||||
gl_FragColor = vec4(blurred.rgb / totalStrength, 1.0);
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
|
||||
{
|
||||
"blend": {
|
||||
"func": "add",
|
||||
"srcrgb": "one",
|
||||
"dstrgb": "zero"
|
||||
},
|
||||
"vertex": "sobel",
|
||||
"fragment": "menu_blur",
|
||||
"attributes": [ "Position" ],
|
||||
"samplers": [
|
||||
{ "name": "DiffuseSampler" }
|
||||
],
|
||||
"uniforms": [
|
||||
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
|
||||
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
|
||||
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
|
||||
{ "name": "BlurDir", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
|
||||
{ "name": "Radius", "type": "float", "count": 1, "values": [ 5.0 ] }
|
||||
]
|
||||
}
|
@ -2,12 +2,12 @@
|
||||
"required": true,
|
||||
"compatibilityLevel": "JAVA_8",
|
||||
"verbose": true,
|
||||
"minVersion": "0.6",
|
||||
"package": "net.silentclient.client.mixin",
|
||||
"refmap": "mixins.SilentClient.refmap.json",
|
||||
"mixins": [
|
||||
"mixins.MinecraftMixin",
|
||||
"mixins.AbstractClientPlayerMixin",
|
||||
"accessors.GuiMultiplayerAccessor",
|
||||
"accessors.GuiChatAccessor",
|
||||
"accessors.GuiAccessor",
|
||||
"accessors.RenderItemAccessor",
|
||||
@ -21,6 +21,8 @@
|
||||
"mixins.EffectRendererMixin",
|
||||
"accessors.RenderManagerAccessor",
|
||||
"mixins.RenderPlayerMixin",
|
||||
"mixins.GuiInGameMixin"
|
||||
"mixins.GuiInGameMixin",
|
||||
"mixins.LayerCapeMixin",
|
||||
"mixins.GuiAchievementMixin"
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue
Block a user