3 Commits

Author SHA1 Message Date
9e45090360 Fix supported versions Minecraft compatibility (#21) 2025-12-14 10:42:58 +13:00
cdf5cd5d95 Version 1.3.0-beta1 (Fabric) (#17)
* [1.3.0-beta1] Update to 1.21.11

* Fix deploy workflow
2025-12-10 18:21:53 +13:00
80d34ab146 Update README (#16)
* Update README

* Remove new release

* 1.21.0 => 1.21

* Improve wording
2025-12-10 11:13:01 +13:00
16 changed files with 48 additions and 103 deletions

View File

@@ -43,8 +43,8 @@ jobs:
- name: Create Release - name: Create Release
run: | run: |
mkdir dist mkdir dist
mv build/fabric/build/libs/*.jar dist shopt -s nullglob
mv build/forge/build/libs/*.jar dist mv build/{fabric,forge}/build/libs/*.jar dist/
pushd dist pushd dist
shasum -a 256 * > checksums.txt shasum -a 256 * > checksums.txt
@@ -59,4 +59,8 @@ jobs:
--generate-notes --generate-notes
) )
if [[ "$channel" == "alpha" || "$channel" == "beta" ]]; then
release_args+=( --prerelease )
fi
gh release create "${release_args[@]}" ./dist/* gh release create "${release_args[@]}" ./dist/*

View File

@@ -28,62 +28,38 @@ Supports forge and fabric, requires the [Fabric API](https://modrinth.com/mod/P7
The command alias `/cweather` may also be used as a shortcut. The command alias `/cweather` may also be used as a shortcut.
### Keybindings ### Keybindings
To set the keybindings you can do so in the minecraft keybinding settings. If you would like to set the keybindings, you can do so in the minecraft keybinding settings.
| Description | Default | | Description | Default |
|----------------------------------------------------------------------------------|---------| |----------------------------------------------------------------------------------|---------|
| Disable the client weather (weather will display the server weather like normal) | Unbound | | Disable the client weather (weather will display the server weather like normal) | Unbound |
| Set the client weather mod to clear | Unbound | | Set the client weather mod to clear | Unbound |
| Set the client weather mod to rain | Unbound | | Set the client weather mod to rain | Unbound |
| Set the client weather mod to thunder | Unbound | | Set the client weather mod to thunder | Unbound |
For supported mod loaders and minecraft versions see [release history](#release-history)
<!-- modrinth_exclude.start --> <!-- modrinth_exclude.start -->
## Download ## Download
You can download the mod from any of the platforms below. You can download the mod from any of the platforms below.
**Modrinth (_recommended_)**: https://modrinth.com/mod/weather-changer <br>
**Curseforge**: https://www.curseforge.com/minecraft/mc-mods/weather-changer <br> **Curseforge**: https://www.curseforge.com/minecraft/mc-mods/weather-changer <br>
**Modrinth**: https://modrinth.com/mod/weather-changer <br>
**GitHub Releases:** https://github.com/Lucaslah/WeatherChanger/releases <br> **GitHub Releases:** https://github.com/Lucaslah/WeatherChanger/releases <br>
<!-- modrinth_exclude.end --> <!-- modrinth_exclude.end -->
## Release History ## Supported Versions
| Version | MC Version | Mod loaders | Git Tag | Supported |
|---------|---------------|---------------|------------------------------------------------------------------------|-----------|
| v1.2.2 | 1.21 | fabric, forge | [1.2.2](https://github.com/Lucaslah/WeatherChanger/releases/tag/1.2.2) | Yes |
| v1.2.1 | 1.21 | fabric, forge | [1.2.1](https://github.com/Lucaslah/WeatherChanger/releases/tag/1.2.1) | Yes |
| v1.2.0 | 1.21 | fabric | [1.2.0](https://github.com/Lucaslah/WeatherChanger/releases/tag/1.2.0) | No |
| v1.1.0 | 1.21 | fabric | [1.1.0](https://github.com/Lucaslah/WeatherChanger/releases/tag/1.1.0) | No |
| v1.0.1 | 1.20.1-1.20.6 | fabric, forge | [1.0.1](https://github.com/Lucaslah/WeatherChanger/releases/tag/1.0.1) | Yes |
| v1.0.0 | 1.20.1-1.20.4 | fabric, forge | [1.0.0](https://github.com/Lucaslah/WeatherChanger/releases/tag/1.0.0) | No |
### Pre-release (v0) versions Supported versions may receive bug fixes,
| Version | MC Version | Mod loaders | Git Tag | Supported | older Minecraft versions may work with older
|---------|---------------|-------------|------------------------------------------------------------------------|-----------| Weather Changer versions, but are not supported.
| v0.3.0 | 1.20.1-1.20.4 | fabric | [0.3.0](https://github.com/Lucaslah/WeatherChanger/releases/tag/0.3.0) | No |
| v0.2.0 | 1.19.3 | fabric | [0.2.0](https://github.com/Lucaslah/WeatherChanger/releases/tag/0.2.0) | No |
| v0.1.0 | 1.19.1-1.19.2 | fabric | [0.1.0](https://github.com/Lucaslah/WeatherChanger/releases/tag/0.1.0) | No |
## Minecraft Versions See the [GitHub releases](https://github.com/Lucaslah/WeatherChanger/releases) page for full release history.
| Version | Status |
|---------|---------------------------------|
| 1.21 | Supported |
| 1.20.6 | Supported |
| 1.20.5 | Supported |
| 1.20.4 | Supported |
| 1.20.3 | Supported |
| 1.20.2 | Supported |
| 1.20.1 | Supported |
| 1.20 | Not Supported (available in v0) |
| 1.19.4 | Not Supported (available in v0) |
| 1.19.3 | Not Supported (available in v0) |
| 1.19.2 | Not Supported (available in v0) |
| 1.19.1 | Not Supported (available in v0) |
*Older versions may be added on request* | Weather Changer Version | Minecraft Version | Mod loaders | Latest Release |
|-------------------------|-------------------|---------------|------------------------------------------------------------------------------------|
| v1.3.x | 1.21.9-1.21.11 | Fabric, Forge | [1.3.0-beta1](https://github.com/Lucaslah/WeatherChanger/releases/tag/1.3.0-beta1) |
| v1.2.x | 1.21-1.21.8 | Fabric, Forge | [1.2.2](https://github.com/Lucaslah/WeatherChanger/releases/tag/1.2.2) |
------------------------------------------ ------------------------------------------
*Licensed under the [GNU Lesser General Public License v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license.* *Licensed under the [GNU Lesser General Public License v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license.*

View File

@@ -3,7 +3,7 @@ import net.fabricmc.loom.task.RemapSourcesJarTask
plugins { plugins {
id("architectury-plugin") version "3.4.+" id("architectury-plugin") version "3.4.+"
id("dev.architectury.loom") version "1.7.+" apply false id("dev.architectury.loom") version "1.13.+" apply false
} }
architectury { architectury {

View File

@@ -10,8 +10,10 @@ public abstract class Key {
public KeyBinding keybind; public KeyBinding keybind;
public MinecraftClient mc = MinecraftClient.getInstance(); public MinecraftClient mc = MinecraftClient.getInstance();
public Key(@NotNull String name) { private static final KeyBinding.Category CATEGORY = KeyBinding.Category.create(Identifier.of("weatherchanger"));
keybind = new KeyBinding(this.getDisplayName(), this.getKeyType(), this.getKey(), this.getCategory());
public Key() {
keybind = new KeyBinding(this.getDisplayName(), this.getKeyType(), this.getKey(), CATEGORY);
} }
public abstract void onPress(@NotNull MinecraftClient client); public abstract void onPress(@NotNull MinecraftClient client);
@@ -20,6 +22,5 @@ public abstract class Key {
public abstract boolean isEnabled(); public abstract boolean isEnabled();
public abstract String getDisplayName(); public abstract String getDisplayName();
public abstract InputUtil.Type getKeyType(); public abstract InputUtil.Type getKeyType();
public abstract String getCategory();
public abstract int getKey(); public abstract int getKey();
} }

View File

@@ -12,10 +12,6 @@ import net.minecraft.util.Identifier;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class ToggleClearKey extends Key { public class ToggleClearKey extends Key {
public ToggleClearKey() {
super("ToggleClearKey");
}
@Override @Override
public void onPress(@NotNull MinecraftClient client) { public void onPress(@NotNull MinecraftClient client) {
WeatherChanger.setMode(WcMode.CLEAR); WeatherChanger.setMode(WcMode.CLEAR);
@@ -48,11 +44,6 @@ public class ToggleClearKey extends Key {
return InputUtil.Type.KEYSYM; return InputUtil.Type.KEYSYM;
} }
@Override
public String getCategory() {
return "Weather Changer";
}
@Override @Override
public int getKey() { public int getKey() {
return -1; return -1;

View File

@@ -12,10 +12,6 @@ import net.minecraft.util.Identifier;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class ToggleOffKey extends Key { public class ToggleOffKey extends Key {
public ToggleOffKey() {
super("ToggleOffKey");
}
@Override @Override
public void onPress(@NotNull MinecraftClient client) { public void onPress(@NotNull MinecraftClient client) {
WeatherChanger.setMode(WcMode.OFF); WeatherChanger.setMode(WcMode.OFF);
@@ -48,11 +44,6 @@ public class ToggleOffKey extends Key {
return InputUtil.Type.KEYSYM; return InputUtil.Type.KEYSYM;
} }
@Override
public String getCategory() {
return "Weather Changer";
}
@Override @Override
public int getKey() { public int getKey() {
return -1; return -1;

View File

@@ -12,10 +12,6 @@ import net.minecraft.util.Identifier;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class ToggleRainKey extends Key { public class ToggleRainKey extends Key {
public ToggleRainKey() {
super("ToggleRainKey");
}
@Override @Override
public void onPress(@NotNull MinecraftClient client) { public void onPress(@NotNull MinecraftClient client) {
WeatherChanger.setMode(WcMode.RAIN); WeatherChanger.setMode(WcMode.RAIN);
@@ -48,11 +44,6 @@ public class ToggleRainKey extends Key {
return InputUtil.Type.KEYSYM; return InputUtil.Type.KEYSYM;
} }
@Override
public String getCategory() {
return "Weather Changer";
}
@Override @Override
public int getKey() { public int getKey() {
return -1; return -1;

View File

@@ -12,10 +12,6 @@ import net.minecraft.util.Identifier;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class ToggleThunderKey extends Key { public class ToggleThunderKey extends Key {
public ToggleThunderKey() {
super("ToggleThunderKey");
}
@Override @Override
public void onPress(@NotNull MinecraftClient client) { public void onPress(@NotNull MinecraftClient client) {
WeatherChanger.setMode(WcMode.THUNDER); WeatherChanger.setMode(WcMode.THUNDER);
@@ -48,11 +44,6 @@ public class ToggleThunderKey extends Key {
return InputUtil.Type.KEYSYM; return InputUtil.Type.KEYSYM;
} }
@Override
public String getCategory() {
return "Weather Changer";
}
@Override @Override
public int getKey() { public int getKey() {
return -1; return -1;

View File

@@ -20,11 +20,11 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(World.class) @Mixin(World.class)
public class WorldMixin { public class WorldMixin {
@Shadow @Shadow
protected float rainGradientPrev; protected float lastRainGradient;
@Shadow @Shadow
protected float rainGradient; protected float rainGradient;
@Shadow @Shadow
protected float thunderGradientPrev; protected float lastThunderGradient;
@Shadow @Shadow
protected float thunderGradient; protected float thunderGradient;
@@ -32,12 +32,12 @@ public class WorldMixin {
@Unique @Unique
private float weatherChanger$getRainGradientOg(float delta) { private float weatherChanger$getRainGradientOg(float delta) {
return MathHelper.lerp(delta, this.rainGradientPrev, this.rainGradient); return MathHelper.lerp(delta, this.lastRainGradient, this.rainGradient);
} }
@Unique @Unique
private float weatherChanger$getThunderGradientOg(float delta) { private float weatherChanger$getThunderGradientOg(float delta) {
return MathHelper.lerp(delta, this.thunderGradientPrev, this.thunderGradient) * this.weatherChanger$getRainGradientOg(delta); return MathHelper.lerp(delta, this.lastThunderGradient, this.thunderGradient) * this.weatherChanger$getRainGradientOg(delta);
} }
@Unique @Unique
@@ -54,7 +54,7 @@ public class WorldMixin {
} else if (mode == WcMode.RAIN || mode == WcMode.THUNDER) { } else if (mode == WcMode.RAIN || mode == WcMode.THUNDER) {
callback.setReturnValue(1F); callback.setReturnValue(1F);
} else { } else {
callback.setReturnValue(MathHelper.lerp(delta, this.rainGradientPrev, this.rainGradient)); callback.setReturnValue(MathHelper.lerp(delta, this.lastRainGradient, this.rainGradient));
} }
callback.cancel(); callback.cancel();
@@ -69,7 +69,7 @@ public class WorldMixin {
} else if (mode == WcMode.THUNDER) { } else if (mode == WcMode.THUNDER) {
callback.setReturnValue(1F); callback.setReturnValue(1F);
} else { } else {
callback.setReturnValue(MathHelper.lerp(delta, this.thunderGradientPrev, this.thunderGradient) * MathHelper.lerp(delta, this.rainGradientPrev, this.rainGradient)); callback.setReturnValue(MathHelper.lerp(delta, this.lastThunderGradient, this.thunderGradient) * MathHelper.lerp(delta, this.lastRainGradient, this.rainGradient));
} }
callback.cancel(); callback.cancel();
@@ -83,7 +83,6 @@ public class WorldMixin {
@Inject(method = "isThundering", at = @At("HEAD"), cancellable = true) @Inject(method = "isThundering", at = @At("HEAD"), cancellable = true)
public void isThundering(CallbackInfoReturnable<Boolean> callback) { public void isThundering(CallbackInfoReturnable<Boolean> callback) {
if (this.weatherChanger$getDimension().hasSkyLight() && !(this.weatherChanger$getDimension().hasCeiling())) { if (this.weatherChanger$getDimension().hasSkyLight() && !(this.weatherChanger$getDimension().hasCeiling())) {
callback.setReturnValue((double)this.weatherChanger$getThunderGradientOg(1.0F) > 0.9); callback.setReturnValue((double)this.weatherChanger$getThunderGradientOg(1.0F) > 0.9);
} else { } else {

View File

@@ -1,4 +1,5 @@
{ {
"key.category.minecraft.weatherchanger": "Weather Changer",
"commands.weatherchanger.set.off": "Set client weather to: Off", "commands.weatherchanger.set.off": "Set client weather to: Off",
"commands.weatherchanger.set.clear": "Set client weather to: Clear", "commands.weatherchanger.set.clear": "Set client weather to: Clear",
"commands.weatherchanger.set.rain": "Set client weather to: Rain", "commands.weatherchanger.set.rain": "Set client weather to: Rain",

View File

@@ -5,15 +5,15 @@ org.gradle.jvmargs=-Xmx2G
kotlin.code.style=official kotlin.code.style=official
# Minecraft Properties # Minecraft Properties
minecraft_version=1.21 minecraft_version=1.21.11
minecraft_base=1.21 minecraft_base=1.21
yarn_mappings=1.21+build.7 yarn_mappings=1.21.11+build.1
# Architectury Properties # Architectury Properties
enabled_platforms=fabric,forge enabled_platforms=fabric,forge
# Mod Properties # Mod Properties
mod_version = 1.2.2 mod_version = 1.3.0-beta1
mod_id = weatherchanger mod_id = weatherchanger
maven_group = me.lucaslah.weatherchanger maven_group = me.lucaslah.weatherchanger
archives_base_name = weather-changer archives_base_name = weather-changer
@@ -23,8 +23,8 @@ archives_base_name = weather-changer
release_channel=release release_channel=release
# Fabric # Fabric
fabric.loader_version=0.15.11 fabric.loader_version=0.18.2
fabric.version=0.100.1+1.21 fabric.version=0.139.4+1.21.11
# Forge # Forge
forge.version=1.21-51.0.21 forge.version=1.21-51.0.21

Binary file not shown.

View File

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME

2
gradlew vendored
View File

@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop. # Darwin, MinGW, and NonStop.
# #
# (3) This script is generated from the Groovy template # (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project. # within the Gradle project.
# #
# You can find Gradle at https://github.com/gradle/gradle/. # You can find Gradle at https://github.com/gradle/gradle/.

20
gradlew.bat vendored
View File

@@ -43,11 +43,11 @@ set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 %JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute if %ERRORLEVEL% equ 0 goto execute
echo. echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. echo location of your Java installation. 1>&2
goto fail goto fail
@@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute if exist "%JAVA_EXE%" goto execute
echo. echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. echo location of your Java installation. 1>&2
goto fail goto fail

View File

@@ -38,4 +38,4 @@ gradleEnterprise {
include("common") include("common")
include("fabric") include("fabric")
include("forge") //include("forge")