-
Notifications
You must be signed in to change notification settings - Fork 32
fix cascades on dedicated servers #36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
|
||
| # modrinth access token | ||
| # it's existence is required to download dependencies | ||
| modrinth_token="PLACE_YOUR_TOKEN_HERE" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(if this isn't here, a weird error message appears)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How would I install this fix? Using the most recent version of Particulate (which is this mod but updated for the most recent version of MC), and the bug with cascades on multiplayer is still happening
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm pretty sure this change isn't relevant and I pushed it by accident. This looks way too out of place.
This was one of my first MC modding experiences, so I don't even know anymore what I did wrong there.
Only look at f209bbc for relevant changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TL:DR: use WaterFluid.class#randomDisplayTick instead if FlowableFluid#onScheduledTick for cascade updates.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! I apologize, I'm not a coder, just someone who wants to use this mod- how to I go into the mod to edit it? I'm using Prism Launcher, so it downloaded the mod for me as a .jar.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a patch for the code. You have to compile it with the changes yourself.
There's no Jar with the patch applied.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gotcha, I will try to figure that out. Thank you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm really sorry to keep bugging you- but I've hit a wall with this. I have the class file edited with your code (though I replaced "chailotl" with "dunnewortel") but when I try to run javac, it gives me 21 errors, mainly that it can't find most of the packages, despite the file being within a Winrar extraction of the entire original jar, so everything within the jar is there.
C:\Users[MYNAME]\AppData\Roaming\PrismLauncher\instances\Immersed With Shaders(1)\minecraft\mods\particulate-1.0.2+1.21.5 CASCADE FIX\com\dunnewortel\particulate\mixin>javac InjectFlowableFluid.java
InjectFlowableFluid.java:3: error: cannot find symbol
import com.dunnewortel.particular.Main;
^
symbol: class Main
location: package com.dunnewortel.particular
InjectFlowableFluid.java:4: error: package net.minecraft.fluid does not exist
import net.minecraft.fluid.FluidState;
^
InjectFlowableFluid.java:5: error: package net.minecraft.fluid does not exist
import net.minecraft.fluid.WaterFluid;
^
InjectFlowableFluid.java:6: error: package net.minecraft.util.math does not exist
import net.minecraft.util.math.BlockPos;
^
InjectFlowableFluid.java:7: error: package net.minecraft.util.math.random does not exist
import net.minecraft.util.math.random.Random;
^
InjectFlowableFluid.java:8: error: package net.minecraft.world does not exist
import net.minecraft.world.World;
^
InjectFlowableFluid.java:9: error: package org.spongepowered.asm.mixin does not exist
import org.spongepowered.asm.mixin.Mixin;
^
InjectFlowableFluid.java:10: error: package org.spongepowered.asm.mixin.injection does not exist
import org.spongepowered.asm.mixin.injection.At;
^
InjectFlowableFluid.java:11: error: package org.spongepowered.asm.mixin.injection does not exist
import org.spongepowered.asm.mixin.injection.Inject;
^
InjectFlowableFluid.java:12: error: package org.spongepowered.asm.mixin.injection.callback does not exist
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
^
InjectFlowableFluid.java:14: error: cannot find symbol
@mixin(WaterFluid.class)
^
symbol: class Mixin
InjectFlowableFluid.java:20: error: cannot find symbol
protected void spawnCascades(World world, BlockPos pos, FluidState state, Random random, CallbackInfo ci)
^
symbol: class World
location: class InjectFlowableFluid
InjectFlowableFluid.java:20: error: cannot find symbol
protected void spawnCascades(World world, BlockPos pos, FluidState state, Random random, CallbackInfo ci)
^
symbol: class BlockPos
location: class InjectFlowableFluid
InjectFlowableFluid.java:20: error: cannot find symbol
protected void spawnCascades(World world, BlockPos pos, FluidState state, Random random, CallbackInfo ci)
^
symbol: class FluidState
location: class InjectFlowableFluid
InjectFlowableFluid.java:20: error: cannot find symbol
protected void spawnCascades(World world, BlockPos pos, FluidState state, Random random, CallbackInfo ci)
^
symbol: class Random
location: class InjectFlowableFluid
InjectFlowableFluid.java:20: error: cannot find symbol
protected void spawnCascades(World world, BlockPos pos, FluidState state, Random random, CallbackInfo ci)
^
symbol: class CallbackInfo
location: class InjectFlowableFluid
InjectFlowableFluid.java:14: error: cannot find symbol
@mixin(WaterFluid.class)
^
symbol: class WaterFluid
InjectFlowableFluid.java:17: error: cannot find symbol
@Inject(
^
symbol: class Inject
location: class InjectFlowableFluid
InjectFlowableFluid.java:19: error: cannot find symbol
at = @at("TAIL"))
^
symbol: class At
location: class InjectFlowableFluid
InjectFlowableFluid.java:22: error: package Main does not exist
if (!Main.CONFIG.cascades()) { return; }
^
InjectFlowableFluid.java:24: error: cannot find symbol
Main.updateCascade(world, pos, state);
^
symbol: variable Main
location: class InjectFlowableFluid
21 errors
What could be causing this? It's within the mod folder of the instance of minecraft so I thought it'd have access to all the files there. If there's no fix to this, that's fine, I can just deal with the bug until it's officially fixed lol.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're missing Fabric Loom's mappings and the Fabric API.
Simply changing the class names isn't enough, you need an actual development environment. There are tutorials for that on the Fabric wiki.
Given that there's already a project here: use IntelliJ CE with the Minecraft plugin and open the folder for Particular. The IDE will configure itself and it'll allow you to edit and build mods with your desired changes.
The method
onScheduledTickis only called every tick on local servers.NOTE: this uses a method from the
WaterFluidclass, not theFlowableFluidclass. This should not change anything, since all checks, e.g. the cascade strength check, tests against water anyway, but I'm not familiar with this, so I may be wrong.