Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "Tourmaline"]
path = submodules/tourmaline
url = https://sylveon.pet/cyan/tourmaline
12 changes: 10 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import net.modgarden.flowerbed.gradle.Properties

plugins {
id("net.fabricmc.fabric-loom") version "1.14-SNAPSHOT"
id("net.fabricmc.fabric-loom") version "1.17-SNAPSHOT"
id("maven-publish")
}

Expand All @@ -17,7 +17,7 @@ loom {
sourceSet(sourceSets["client"])
}
}
accessWidenerPath = projectDir.resolve("src/main/resources/flowerbed.accesswidener")
accessWidenerPath = projectDir.resolve("src/main/resources/flowerbed.classtweaker")
}

repositories {
Expand Down Expand Up @@ -47,6 +47,12 @@ repositories {
maven("https://maven.cassian.cc") {
name = "Cassian"
}
maven("https://maven.greenhouse.lgbt/releases") {
name = "Greenhouse (Releases)"
}
maven("https://maven.greenhouse.lgbt/snapshots") {
name = "Greenhouse (Snapshots)"
}
}

dependencies {
Expand All @@ -60,6 +66,8 @@ dependencies {
localRuntime(libs.player.roles)

// Fix Mods
implementation(libs.panacea)
implementation(project(":tourmaline"))

// Libraries
implementation(libs.fabric.permissions)
Expand Down
11 changes: 6 additions & 5 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
[versions]
minecraft = "26.1.1"
minecraft = "26.1.2"

# Fabric
fabric-loader = "0.18.6"
fabric-api = "0.145.3+26.1.1"
mod-menu = "18.0.0-alpha.7"
fabric-loader = "0.19.3"
fabric-api = "0.155.2+26.1.2"
mod-menu = "18.0.0"

# Testing
player-roles = "1.9.0-pre.1"

# Fixing

panacea = "0.1.5+26.1.x"

# Libraries
fabric-permissions = "0.7.0"
Expand All @@ -26,6 +26,7 @@ mod-menu = { module = "com.terraformersmc:modmenu", version.ref = "mod-menu" }
player-roles = { module = "dev.gegy:player-roles", version.ref = "player-roles" }

# Fixing
panacea = { module = "lgbt.greenhouse.panacea:panacea", version.ref = "panacea" }

# Libraries
fabric-permissions = { module = "me.lucko:fabric-permissions-api", version.ref = "fabric-permissions" }
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-9.4.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
10 changes: 0 additions & 10 deletions settings.gradle

This file was deleted.

6 changes: 5 additions & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,8 @@ pluginManagement {
mavenCentral()
gradlePluginPortal()
}
}
}

rootProject.name = "flowerbed"

includeBuild("submodules/tourmaline")
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package net.modgarden.flowerbed.client.mixin.fix.tourmaline;

import com.mojang.authlib.GameProfile;
import net.minecraft.client.player.AbstractClientPlayer;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.modgarden.flowerbed.duck.tourmaline.ClientFoodLimiter;
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;
import pet.cyan.tourmaline.registry.TourmalineAttributes;

@Mixin(AbstractClientPlayer.class)
public abstract class AbstractClientPlayerMixin extends Player {
public AbstractClientPlayerMixin(Level level, GameProfile gameProfile) {
super(level, gameProfile);
}

@Inject(method = "tick", at = @At("RETURN"))
private void tickFoodData(CallbackInfo ci) {
((ClientFoodLimiter) this.foodData).doing_it_myself$setMaxFood(
Mth.ceil(this.getAttributeValue(TourmalineAttributes.MAX_FOOD))
);
}
}
31 changes: 16 additions & 15 deletions src/client/resources/flowerbed.client.mixins.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
{
"required": true,
"package": "net.modgarden.flowerbed.client.mixin",
"compatibilityLevel": "JAVA_21",
"client": [
"Mixin_EntityRenderer",
"Mixin_Gui",
"Mixin_WorldBorderRenderer",
"fix.Mixin_LogoRenderer",
"showcase.screen.Mixin_JoinMultiplayerScreen",
"showcase.screen.Mixin_ServerSelectionList",
"showcase.screen.Mixin_ServerSelectionListOnlineServerEntry"
],
"injectors": {
"defaultRequire": 1
}
"required": true,
"package": "net.modgarden.flowerbed.client.mixin",
"compatibilityLevel": "JAVA_21",
"client": [
"Mixin_EntityRenderer",
"Mixin_Gui",
"Mixin_WorldBorderRenderer",
"fix.Mixin_LogoRenderer",
"fix.tourmaline.AbstractClientPlayerMixin",
"showcase.screen.Mixin_JoinMultiplayerScreen",
"showcase.screen.Mixin_ServerSelectionList",
"showcase.screen.Mixin_ServerSelectionListOnlineServerEntry"
],
"injectors": {
"defaultRequire": 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package net.modgarden.flowerbed.duck.tourmaline;

public interface ClientFoodLimiter {
default void doing_it_myself$setMaxFood(int maxFood) {
throw new UnsupportedOperationException();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package net.modgarden.flowerbed.mixin.fix.panacea;

import lgbt.greenhouse.panacea.world.menu.PanaceaBrewingStandMenu;
import net.minecraft.world.Container;
import net.minecraft.world.inventory.Slot;
import org.spongepowered.asm.mixin.Mixin;

@Mixin(PanaceaBrewingStandMenu.class)
public class PanaceaBrewingStandMenuMixin {

@SuppressWarnings("unused")
@Mixin(PanaceaBrewingStandMenu.PotionSlot.class)
public abstract static class PotionSlotMixin extends Slot {
public PotionSlotMixin(Container container, int slot, int x, int y) {
super(container, slot, x, y);
}

/**
* @reason Trying to brew multiple potions in one slot fails and seems to revert the potion instead
*/
@SuppressWarnings("JavadocDeclaration")
@Override
public int getMaxStackSize() {
return 1; // mixinoverride, yeah I know, whatever, it's fine here
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package net.modgarden.flowerbed.mixin.fix.panacea;

import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
import lgbt.greenhouse.panacea.world.block.PanaceaCauldronInteractions;
import net.minecraft.world.item.ItemStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

@Mixin(PanaceaCauldronInteractions.class)
public class PanaceaCauldronInteractionsMixin {
/**
* @reason ItemUtil handles the decrementing already, so this prevents double-shrinking
*/
@WrapWithCondition(method = "takePotsicle", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;shrink(I)V"))
private static boolean decrementOnce(ItemStack instance, int amount) {
return false;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package net.modgarden.flowerbed.mixin.fix.tourmaline;

import net.minecraft.world.food.FoodData;
import net.modgarden.flowerbed.duck.tourmaline.ClientFoodLimiter;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;

@Mixin(value = FoodData.class, priority = 2000)
public class FoodDataMixin implements ClientFoodLimiter {
@SuppressWarnings("MixinAnnotationTarget")
@Shadow
int tourmaline$maxFood;

@Override
public void doing_it_myself$setMaxFood(int maxFood) {
this.tourmaline$maxFood = maxFood;
}
}
2 changes: 1 addition & 1 deletion src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"environment": "client"
}
],
"accessWidener": "${mod_id}.accesswidener",
"accessWidener": "flowerbed.classtweaker",
"depends": {
"fabricloader": "${fabric_loader_range}",
"fabric-api": ">=0.125.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
accessWidener v2 official
classTweaker v2 official
accessible method net/minecraft/client/gui/screens/multiplayer/ServerSelectionList$OnlineServerEntry <init> (Lnet/minecraft/client/gui/screens/multiplayer/ServerSelectionList;Lnet/minecraft/client/gui/screens/multiplayer/JoinMultiplayerScreen;Lnet/minecraft/client/multiplayer/ServerData;)V
51 changes: 27 additions & 24 deletions src/main/resources/flowerbed.mixins.json
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
{
"required": true,
"package": "net.modgarden.flowerbed.mixin",
"compatibilityLevel": "JAVA_21",
"mixins": [
"Mixin_CarvedPumpkinBlock",
"Mixin_FoodData",
"Mixin_Player",
"Mixin_PortalProcessor",
"Mixin_ServerPlayer",
"required": true,
"package": "net.modgarden.flowerbed.mixin",
"compatibilityLevel": "JAVA_21",
"mixins": [
"Mixin_CarvedPumpkinBlock",
"Mixin_FoodData",
"Mixin_Player",
"Mixin_PortalProcessor",
"Mixin_ServerPlayer",
"Mixin_WitherSkullBlock",
"fix.log.Mixin_IdDispatchCodec",
"showcase.gamemode.Mixin_ServerPlayer",
"showcase.griefing.Mixin_FarmBlock",
"showcase.griefing.invulnerability.Mixin_ArmorStandItem",
"showcase.griefing.invulnerability.Mixin_BoatItem",
"showcase.griefing.invulnerability.Mixin_HangingEntityItem",
"showcase.griefing.invulnerability.Mixin_SpawnEggItem",
"showcase.griefing.invulnerability.Mixin_SummonCommand",
"showcase.griefing.prevent_modfest_1_20.Mixin_EntityArgument",
"showcase.griefing.prevent_modfest_1_20.Mixin_EntitySelectorOptions",
"showcase.griefing.prevent_modfest_1_20.Mixin_EntitySelectorParser",
"showcase.spawning.Mixin_TrialSpawner"
],
"injectors": {
"defaultRequire": 1
"fix.log.Mixin_IdDispatchCodec",
"fix.panacea.PanaceaBrewingStandMenuMixin",
"fix.panacea.PanaceaCauldronInteractionsMixin",
"fix.tourmaline.FoodDataMixin",
"showcase.gamemode.Mixin_ServerPlayer",
"showcase.griefing.Mixin_FarmBlock",
"showcase.griefing.invulnerability.Mixin_ArmorStandItem",
"showcase.griefing.invulnerability.Mixin_BoatItem",
"showcase.griefing.invulnerability.Mixin_HangingEntityItem",
"showcase.griefing.invulnerability.Mixin_SpawnEggItem",
"showcase.griefing.invulnerability.Mixin_SummonCommand",
"showcase.griefing.prevent_modfest_1_20.Mixin_EntityArgument",
"showcase.griefing.prevent_modfest_1_20.Mixin_EntitySelectorOptions",
"showcase.griefing.prevent_modfest_1_20.Mixin_EntitySelectorParser",
"showcase.spawning.Mixin_TrialSpawner"
],
"injectors": {
"defaultRequire": 1
}
}
Loading