Skip to content

Commit

Permalink
Update to 1.20.5 (#200)
Browse files Browse the repository at this point in the history
  • Loading branch information
hashalite authored Apr 24, 2024
2 parents b05a1d0 + c8647a3 commit f99f5c5
Show file tree
Hide file tree
Showing 12 changed files with 79 additions and 39 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: microsoft
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/bump-version.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: microsoft
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and Freecam's versioning is based on [Semantic Versioning](https://semver.org/sp

### Added

- 1.20.5 support ([#200](https://github.com/MinecraftFreecam/Freecam/pull/200)).
- Added a way to configure key bindings from Freecam's config menu ([#143](https://github.com/MinecraftFreecam/Freecam/pull/143)).
- Added an optional server whitelist/blacklist ([#146](https://github.com/MinecraftFreecam/Freecam/pull/146)).
- A custom "ignore collision" list, using block IDs or regular expressions ([#148](https://github.com/MinecraftFreecam/Freecam/pull/148)).
Expand Down
13 changes: 10 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@ import org.jetbrains.changelog.tasks.BaseChangelogTask

plugins {
id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "1.4-SNAPSHOT" apply false
id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false
id "com.hypherionmc.modutils.modpublisher" version "2.0.5" apply false
id "com.github.johnrengelman.shadow" version "7.1.2" apply false
id "com.github.johnrengelman.shadow" version "8.1.1" apply false
id "org.jetbrains.changelog" version "2.2.0"
}

tasks.named('wrapper') {
// Use "all" so we get sources and javadoc too
distributionType = "all"
gradleVersion = "8.6"
}

// Helper task that bumps the version number
Expand Down Expand Up @@ -92,6 +93,12 @@ allprojects {
mavenCentral()
maven { url "https://maven.parchmentmc.org/" }
maven { url "https://maven.neoforged.net/releases/" }
if (rootProject.neoforge_pr != "") {
maven {
url "https://prmaven.neoforged.net/NeoForge/pr${rootProject.neoforge_pr}"
content { includeModule("net.neoforged", "neoforge") }
}
}
maven { url "https://maven.shedaniel.me/" }
maven { url "https://maven.terraformersmc.com/" }
}
Expand All @@ -101,7 +108,7 @@ allprojects {
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.release = 17
options.release = 21
}

java {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package net.xolt.freecam.mixins;

import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.Entity;
import net.xolt.freecam.Freecam;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
Expand All @@ -8,18 +13,12 @@

import static net.xolt.freecam.Freecam.MC;

import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.Entity;

@Mixin(EntityRenderer.class)
public class EntityRendererMixin {

// Prevent rendering of nametag in inventory screen
@Inject(method = "renderNameTag", at = @At("HEAD"), cancellable = true)
private void onRenderLabel(Entity entity, Component text, PoseStack matrices, MultiBufferSource vertexConsumers, int light, CallbackInfo ci) {
private void onRenderLabel(Entity entity, Component text, PoseStack poseStack, MultiBufferSource multiBufferSource, int light, float partialTick, CallbackInfo ci) {
if (Freecam.isEnabled() && !MC.getEntityRenderDispatcher().shouldRenderShadow) {
ci.cancel();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,15 @@
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Camera;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.culling.Frustum;
import net.minecraft.util.profiling.ProfilerFiller;
import net.minecraft.world.TickRateManager;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.phys.Vec3;
import net.xolt.freecam.Freecam;
import net.xolt.freecam.config.ModConfig;
import org.joml.Matrix4f;
import org.joml.Matrix4fStack;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
Expand All @@ -16,20 +20,43 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import static net.xolt.freecam.Freecam.MC;
import static org.spongepowered.asm.mixin.injection.callback.LocalCapture.CAPTURE_FAILHARD;

@Mixin(LevelRenderer.class)
public class LevelRendererMixin {
public abstract class LevelRendererMixin {

@Shadow @Final private RenderBuffers renderBuffers;

@Shadow private void renderEntity(Entity entity, double cameraX, double cameraY, double cameraZ, float tickDelta, PoseStack matrices, MultiBufferSource vertexConsumers) {}

// Makes the player render if showPlayer is enabled.
@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;checkPoseStack(Lcom/mojang/blaze3d/vertex/PoseStack;)V", ordinal = 0))
private void onRender(PoseStack matrices, float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightTexture lightmapTextureManager, Matrix4f positionMatrix, CallbackInfo ci) {
@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;checkPoseStack(Lcom/mojang/blaze3d/vertex/PoseStack;)V", ordinal = 0), locals = CAPTURE_FAILHARD)
private void onRender(float partialTick,
long nanoTime,
boolean renderBlockOutline,
Camera camera,
GameRenderer gameRenderer,
LightTexture lightTexture,
Matrix4f matrix4f,
Matrix4f matrix4f2,
CallbackInfo ci,
TickRateManager tickRateManager,
float g,
ProfilerFiller profilerFiller,
Vec3 cameraPosition,
double x,
double y,
double z,
boolean frustumNotNull,
Frustum frustum,
float renderDistance,
boolean fog,
Matrix4fStack modelViewStack,
boolean bl4,
PoseStack poseStack,
MultiBufferSource.BufferSource bufferSource) {
if (Freecam.isEnabled() && ModConfig.INSTANCE.visual.showPlayer) {
Vec3 cameraPos = camera.getPosition();
renderEntity(MC.player, cameraPos.x, cameraPos.y, cameraPos.z, tickDelta, matrices, renderBuffers.bufferSource());
renderEntity(MC.player, x, y, z, partialTick, poseStack, renderBuffers.bufferSource());
}
}
}
11 changes: 8 additions & 3 deletions common/src/main/java/net/xolt/freecam/util/FreeCamera.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import net.minecraft.client.player.KeyboardInput;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Holder;
import net.minecraft.core.RegistryAccess;
import net.minecraft.network.protocol.Packet;
import net.minecraft.tags.FluidTags;
Expand All @@ -18,6 +19,7 @@
import net.minecraft.world.level.material.PushReaction;
import net.xolt.freecam.config.ModConfig;

import java.util.Collections;
import java.util.UUID;

import static net.xolt.freecam.Freecam.MC;
Expand All @@ -34,7 +36,10 @@ public class FreeCamera extends LocalPlayer {
FeatureFlagSet.of(),
null,
MC.getCurrentServer(),
MC.screen)) {
MC.screen,
Collections.emptyMap(),
MC.gui.getChat().storeState(),
false)) {
@Override
public void send(Packet<?> packet) {
}
Expand Down Expand Up @@ -169,8 +174,8 @@ public boolean isInWater() {

// Makes night vision apply to FreeCamera when Iris is enabled.
@Override
public MobEffectInstance getEffect(MobEffect effect) {
return MC.player.getEffect(effect);
public MobEffectInstance getEffect(Holder<MobEffect> holder) {
return MC.player.getEffect(holder);
}

// Prevents pistons from moving FreeCamera when collision.ignoreAll is enabled.
Expand Down
21 changes: 11 additions & 10 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,25 @@ release_type=release
# https://maven.parchmentmc.org/org/parchmentmc/data
# Forge dependencies use maven's version range spec:
# https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html
minecraft_version=1.20.4
parchment_version=1.20.2-2023.12.10
minecraft_version=1.20.5
parchment_version=1.20.4-2024.02.25
supported_mc_versions=

fabric_loader_version=0.15.3
fabric_api_version=0.91.2+1.20.4
fabric_loader_version=0.15.10
fabric_api_version=0.97.6+1.20.5
fabric_loader_req=>=0.12.11
fabric_mc_req=~1.20.4
fabric_mc_req=>1.20.4
fabric_supported_mc_versions=

neoforge_version=20.4.60-beta
neoforge_mc_req=[1.20.4,)
neoforge_version=20.5.0-beta
neoforge_pr=
neoforge_mc_req=[1.20.5,)
neoforge_loader_req=[1,)
neoforge_req=[20,)
neoforge_req=[20.5.0-beta,)
neoforge_supported_mc_versions=

# Other dependencies
# https://maven.terraformersmc.com/releases/com/terraformersmc/modmenu
# https://mvnrepository.com/artifact/me.shedaniel.cloth/cloth-config?repo=architectury
modmenu_version=9.0.0-pre.1
cloth_version=13.0.114
modmenu_version=10.0.0-alpha.3
cloth_version=14.0.125
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
4 changes: 2 additions & 2 deletions metadata/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ platforms.each { platform -> variants.each { variant ->
expand inputs.properties + overrides
}

filesMatching("META-INF/mods.toml") {
filesMatching("META-INF/neoforge.mods.toml") {
expand inputs.properties + overrides
}
}
Expand All @@ -78,4 +78,4 @@ platforms.each { platform -> variants.each { variant ->
// Export the artifact so that other projects can use it
configurations.register(name)
artifacts.add(name, task)
}}
}}
File renamed without changes.
12 changes: 6 additions & 6 deletions neoforge/src/main/java/net/xolt/freecam/forge/FreecamForge.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.common.Mod.EventBusSubscriber.Bus;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
import net.neoforged.neoforge.client.ConfigScreenHandler;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.client.gui.IConfigScreenFactory;
import net.neoforged.neoforge.event.TickEvent;
import net.xolt.freecam.Freecam;
import net.xolt.freecam.config.ModBindings;
import net.xolt.freecam.config.ModConfig;

@Mod(Freecam.MOD_ID)
@Mod.EventBusSubscriber(bus = Bus.MOD, value = Dist.CLIENT)
@EventBusSubscriber(bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
@SuppressWarnings("unused")
public class FreecamForge {

Expand All @@ -26,17 +26,17 @@ public static void clientSetup(FMLClientSetupEvent event) {
ModConfig.init();

// Register our config screen with Forge
ModLoadingContext.get().registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () -> new ConfigScreenHandler.ConfigScreenFactory((client, parent) ->
ModLoadingContext.get().registerExtensionPoint(IConfigScreenFactory.class, () -> (client, parent) ->
AutoConfig.getConfigScreen(ModConfig.class, parent).get()
));
);
}

@SubscribeEvent
public static void registerKeymappings(RegisterKeyMappingsEvent event) {
ModBindings.forEach(event::register);
}

@Mod.EventBusSubscriber(bus = Bus.FORGE, value = Dist.CLIENT)
@EventBusSubscriber(bus = EventBusSubscriber.Bus.GAME, value = Dist.CLIENT)
public static class GlobalEventHandler {
@SubscribeEvent(priority = EventPriority.HIGH)
public static void onTick(TickEvent.ClientTickEvent event) {
Expand Down

0 comments on commit f99f5c5

Please sign in to comment.