Tweaker is a Minecraft Forge mod that provides tons of general enhancements, bug fixes, and core game tweak features.
gradle is required to build this mod!
You can use the gradle wrapper shipped in the Minecraft Forge MDK here, or alternatively you may use a system-wide install of gradle which you can get and install from here.
First you must get a copy of the mod source
- From GitHub using git...
- Via git over HTTPS
git clone -b "1.8.9" https://github.com/h1nk/Tweaker.git tweaker
- Via git over SSH
yes | git clone -b "1.8.9" [email protected]:h1nk/Tweaker.git tweaker
- You can alternatively get the source from the pre-packaged master branch archive off of GitHub
- Via git over HTTPS
Simply... cd ./tweaker
Now you can build the mod.
If you don't have gradle installed on your system and would prefer use the portable gradle wrapper as provided in the Minecraft Forge MDK you can do the following:
- Download the MDK package that correlates to the Minecraft version of the source branch you downloaded earlier
- with curl:
curl -O https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.8.9-11.15.1.2318-1.8.9/forge-1.8.9-11.15.1.2318-1.8.9-mdk.zip
- with wget:
wget https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.8.9-11.15.1.2318-1.8.9/forge-1.8.9-11.15.1.2318-1.8.9-mdk.zip
- with curl:
- unzip the gradle wrapper directory and scripts from the zip archive:
unzip forge*.zip "gradlew*" "gradle/wrapper/*" && rm forge*.zip
- set the the executable bit for the gradle wrapper binaries and scripts:
chmod +x gradlew*
- and finally build with the gradle wrapper script:
./gradlew build --stacktrace --info
TODO
TODO
TODO
MC-92216 "Leaving bed doesn't work sometimes"
TODO
MC-2835 "Resizing the Minecraft window while dead grays out the Respawn/Exit to Menu buttons and several other screens"
TODO
MC-67665 "Mouse click position always lags a few frames behind the crosshair"
TODO
MC-1349 "While riding a pig, horse or minecart and using F5, the hand of your character is misplaced"
This bug is a minor visual render glitch that occurs with the first person perspective of the player model. The bug affects Minecraft versions 1.4.2-1.8.8+. The bug is caused by incorrect logic to reset the hand after the player enters a ridable entity such as a boat, horse, minecart, etc.
public void renderRightArm(AbstractClientPlayer clientPlayer)
{
float f = 1.0F;
GlStateManager.color(f, f, f);
ModelPlayer modelplayer = this.getMainModel();
this.setModelVisibilities(clientPlayer);
modelplayer.swingProgress = 0.0F;
modelplayer.isSneak = false; // the bug resides in the exuction of this statement
modelplayer.setRotationAngles(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, clientPlayer);
modelplayer.renderRightArm();
}
public void renderRightArm(AbstractClientPlayer clientPlayer)
{
float f = 1.0F;
GlStateManager.color(f, f, f);
float f1 = 0.0625F;
ModelPlayer modelplayer = this.getMainModel();
this.setModelVisibilities(clientPlayer);
GlStateManager.enableBlend();
modelplayer.swingProgress = 0.0F;
modelplayer.isSneak = false;
modelplayer.setRotationAngles(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, clientPlayer);
modelplayer.bipedRightArm.rotateAngleX = 0.0F;
modelplayer.bipedRightArm.render(0.0625F);
modelplayer.bipedRightArmwear.rotateAngleX = 0.0F;
modelplayer.bipedRightArmwear.render(0.0625F);
GlStateManager.disableBlend();
}
public void renderRightArm(AbstractClientPlayer clientPlayer)
{
float f = 1.0F;
GlStateManager.color(f, f, f);
ModelPlayer modelplayer = this.getMainModel();
this.setModelVisibilities(clientPlayer);
modelplayer.swingProgress = 0.0F;
- modelplayer.isSneak = false;
+ if (TConfig.isRightArmRidableEntityRenderFixEnabled)
+ {
+ modelplayer.isRiding = modelplayer.isSneak = false;
+ }
+ else
+ {
+ modelplayer.isSneak = false;
+ }
modelplayer.setRotationAngles(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, clientPlayer);
modelplayer.renderRightArm();
}
MC-417 "Arrows first bounce back then appear at correct location"
TODO
MC-117793 "When creating a screenshot the clickable link in chat doesn't work" & MC-113208 "gameDir containing dots breaks some file opening methods"
TODO
MC-68754 "Exiting fullscreen disables window resize" & MC-111254 "Fullscreen Disables Window Resize"
The following bug occurs when a player exits fullscreen mode. When exiting from fullscreen mode to windowed mode the game window does not allow resizing anymore. This is a bug specific to Windows users. This bug remains unpatched, despite the Mojang bug tracker ticket being "resolved".
// net.minecraft.client.Minecraft#toggleFullscreen
/**
* Toggles fullscreen mode.
*/
public void toggleFullscreen()
{
try
{
this.fullscreen = !this.fullscreen;
this.gameSettings.fullScreen = this.fullscreen;
if (this.fullscreen)
{
this.updateDisplayMode();
this.displayWidth = Display.getDisplayMode().getWidth();
this.displayHeight = Display.getDisplayMode().getHeight();
if (this.displayWidth <= 0)
{
this.displayWidth = 1;
}
if (this.displayHeight <= 0)
{
this.displayHeight = 1;
}
}
else
{
Display.setDisplayMode(new DisplayMode(this.tempDisplayWidth, this.tempDisplayHeight));
this.displayWidth = this.tempDisplayWidth;
this.displayHeight = this.tempDisplayHeight;
if (this.displayWidth <= 0)
{
this.displayWidth = 1;
}
if (this.displayHeight <= 0)
{
this.displayHeight = 1;
}
}
if (this.currentScreen != null)
{
this.resize(this.displayWidth, this.displayHeight);
}
else
{
this.updateFramebufferSize();
}
// The bug resides here, since the resizability window property is cached incorrectly we need to do a manual redundant reset
Display.setFullscreen(this.fullscreen);
Display.setVSyncEnabled(this.gameSettings.enableVsync);
this.updateDisplay();
}
catch (Exception exception)
{
logger.error((String)"Couldn\'t toggle fullscreen", (Throwable)exception);
}
}
// net.minecraft.client.Minecraft#toggleFullscreen
/**
* Toggles fullscreen mode.
*/
public void toggleFullscreen()
{
try
{
this.fullscreen = !this.fullscreen;
this.gameSettings.fullScreen = this.fullscreen;
if (this.fullscreen)
{
this.updateDisplayMode();
this.displayWidth = Display.getDisplayMode().getWidth();
this.displayHeight = Display.getDisplayMode().getHeight();
if (this.displayWidth <= 0)
{
this.displayWidth = 1;
}
if (this.displayHeight <= 0)
{
this.displayHeight = 1;
}
}
else
{
Display.setDisplayMode(new DisplayMode(this.tempDisplayWidth, this.tempDisplayHeight));
this.displayWidth = this.tempDisplayWidth;
this.displayHeight = this.tempDisplayHeight;
if (this.displayWidth <= 0)
{
this.displayWidth = 1;
}
if (this.displayHeight <= 0)
{
this.displayHeight = 1;
}
}
if (this.currentScreen != null)
{
this.resize(this.displayWidth, this.displayHeight);
}
else
{
this.updateFramebufferSize();
}
+ if (TConfig.isToggleFullscreenResizeFixEnabled) {
+ Display.setResizable(false);
+ Display.setResizable(true);
+ }
Display.setFullscreen(this.fullscreen);
Display.setVSyncEnabled(this.gameSettings.enableVsync);
this.updateDisplay();
}
catch (Exception exception)
{
logger.error((String)"Couldn\'t toggle fullscreen", (Throwable)exception);
}
}