remmintan / minefortress Goto Github PK
View Code? Open in Web Editor NEWa Minecraft mod that will turn your Minecraft into a real-time strategy
Home Page: https://minecraftfortress.org/
License: MIT License
a Minecraft mod that will turn your Minecraft into a real-time strategy
Home Page: https://minecraftfortress.org/
License: MIT License
Describe the feature you'd like to see
There are a lot of hardcoded values in the mod source code that are used to display messages in the interface.
Because the values are hardcoded we can't translate the mod properly.
The hardcoded value example Text.literal
:
we need to convert such values to translatable text pieces like this one Text.translatable
:
This is done in three steps:
Text.literal
resources/assets/minefortress/lang/en_us.json
Text.literal
with Text.translatable
with that keyPlease feel free to refer to these issues in any PR where you make such changes. When all texts are moved to translation files we will close this issue.
Describe the bug
Gave a pawn a task to clear the area and build some houses, and then left the server for 15-20 minutes, after which the server crashed
To Reproduce
Steps or conditions to reproduce the behavior:
Crash report
java.lang.NullPointerException: Cannot invoke "net.minecraft.class_3222.method_51469()" because "player" is null
at org.minefortress.tasks.ServerTaskManager.tick(ServerTaskManager.java:70) ~[minefortress-1.11.1-beta.jar:?]
at org.minefortress.fortress.ServerFortressManager.tick(ServerFortressManager.java:167) ~[minefortress-1.11.1-beta.jar:?]
at org.minefortress.fortress.server.FortressModServerManager.tick(FortressModServerManager.java:68) ~[minefortress-1.11.1-beta.jar:?]
at org.minefortress.registries.FortressServerEvents.lambda$register$7(FortressServerEvents.java:94) ~[minefortress-1.11.1-beta.jar:?]
at net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents.lambda$static$2(ServerTickEvents.java:43) ~[fabric-lifecycle-events-v1-2.2.2+c8b10480a0-cce012c5defdfdc0.jar:?]
at net.minecraft.server.MinecraftServer.handler$zef000$fabric-lifecycle-events-v1$onEndTick(MinecraftServer.java:2371) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:843) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:667) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:263) ~[server-intermediary.jar:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Environment info:
Any other mods that you use
Only server-side mods (terrain generation)
Describe the bug
Not sure which mod is the exact problem, but when trying to use dynmap and minefortress at the same time, an error occurs when trying to edit or create blueprints
To Reproduce
Steps or conditions to reproduce the behavior:
Error
java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "org.dynmap.fabric_1_20_2.FabricWorld.getName()" because "fw" is null
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:649) ~[?:?]
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
at net.minecraft.class_3900.method_17634(class_3900.java:62) ~[server-intermediary.jar:?]
at net.minecraft.class_1255.method_18859(class_1255.java:156) ~[server-intermediary.jar:?]
at net.minecraft.class_3215$class_4212.method_18859(class_3215.java:564) ~[server-intermediary.jar:?]
at net.minecraft.class_1255.method_16075(class_1255.java:130) ~[server-intermediary.jar:?]
at net.minecraft.class_3215$class_4212.method_16075(class_3215.java:573) ~[server-intermediary.jar:?]
at net.minecraft.class_1255.method_18857(class_1255.java:139) ~[server-intermediary.jar:?]
at net.minecraft.class_3215.getChunkBlocking(class_3215.java:2292) ~[server-intermediary.jar:?]
at net.minecraft.class_3215.method_12121(class_3215.java:2188) ~[server-intermediary.jar:?]
at net.minecraft.class_1937.method_8402(class_1937.java:204) ~[server-intermediary.jar:?]
at net.minecraft.class_1937.method_22350(class_1937.java:5049) ~[server-intermediary.jar:?]
at net.minecraft.class_1937.method_8500(class_1937.java:5044) ~[server-intermediary.jar:?]
at net.minecraft.class_1937.method_30092(class_1937.java:226) ~[server-intermediary.jar:?]
at net.minecraft.class_1937.method_8652(class_1937.java:213) ~[server-intermediary.jar:?]
at net.minecraft.class_1937.method_8501(class_1937.java:322) ~[server-intermediary.jar:?]
at org.minefortress.blueprints.world.BlueprintsWorld.lambda$putBlueprintInAWorld$1(BlueprintsWorld.java:198) ~[minefortress-1.11.1-beta.jar:?]
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
at org.minefortress.blueprints.world.BlueprintsWorld.putBlueprintInAWorld(BlueprintsWorld.java:180) ~[minefortress-1.11.1-beta.jar:?]
at net.remmintan.mods.minefortress.networking.c2s.ServerboundEditBlueprintPacket.handle(ServerboundEditBlueprintPacket.java:70) ~[minefortress-1.11.1-beta.jar:?]
at net.remmintan.mods.minefortress.networking.registries.ServerNetworkReceivers.lambda$registerReceiver$0(ServerNetworkReceivers.java:51) ~[minefortress-1.11.1-beta.jar:?]
at net.minecraft.class_3738.run(class_3738.java:18) ~[server-intermediary.jar:?]
at net.minecraft.class_1255.method_18859(class_1255.java:156) ~[server-intermediary.jar:?]
at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:778) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:163) ~[server-intermediary.jar:?]
at net.minecraft.class_1255.method_16075(class_1255.java:130) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:760) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:754) ~[server-intermediary.jar:?]
at net.minecraft.class_1255.method_5383(class_1255.java:115) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:738) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671) ~[server-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:263) ~[server-intermediary.jar:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "org.dynmap.fabric_1_20_2.FabricWorld.getName()" because "fw" is null
at org.dynmap.fabric_1_20_2.DynmapPlugin$WorldTracker.handleChunkGenerate(DynmapPlugin.java:644) ~[Dynmap-3.7-beta-4-fabric-1.20.2.jar:?]
at org.dynmap.fabric_1_20_2.DynmapPlugin.lambda$registerEvents$6(DynmapPlugin.java:686) ~[Dynmap-3.7-beta-4-fabric-1.20.2.jar:?]
at org.dynmap.fabric_1_20_2.event.CustomServerChunkEvents.lambda$static$0(CustomServerChunkEvents.java:12) ~[Dynmap-3.7-beta-4-fabric-1.20.2.jar:?]
at net.minecraft.class_3898.handler$zbn000$dynmap$onChunkGenerate(class_3898.java:1365) ~[server-intermediary.jar:?]
at net.minecraft.class_3898.method_17227(class_3898.java:744) ~[server-intermediary.jar:?]
at com.mojang.datafixers.util.Either.lambda$mapLeft$0(Either.java:162) ~[datafixerupper-6.0.8.jar:?]
at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar:?]
at com.mojang.datafixers.util.Either.mapLeft(Either.java:162) ~[datafixerupper-6.0.8.jar:?]
at net.minecraft.class_3898.method_20460(class_3898.java:726) ~[server-intermediary.jar:?]
at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]
... 33 more
Environment info:
Any other mods that you use
Dynmap & server-side terrain generation mods
Describe the bug
Error (warning) while loading texture
To Reproduce
Steps or conditions to reproduce the behavior:
Just click on the pawn
Screenshots
[19:02:00] [Render thread/WARN]: Failed to load texture: minecraft:hud/hotbar
java.io.FileNotFoundException: minecraft:hud/hotbar
at net.minecraft.class_5912.method_43043(class_5912.java:21) ~[client-intermediary.jar:?]
at java.util.Optional.orElseThrow(Optional.java:403) ~[?:?]
at net.minecraft.class_5912.getResourceOrThrow(class_5912.java:21) ~[client-intermediary.jar:?]
at net.minecraft.class_1049$class_4006.method_18156(class_1049.java:83) ~[client-intermediary.jar:?]
at net.minecraft.class_1049.method_18153(class_1049.java:58) ~[client-intermediary.jar:?]
at net.minecraft.class_1049.method_4625(class_1049.java:29) ~[client-intermediary.jar:?]
at net.minecraft.class_1060.method_24303(class_1060.java:96) ~[client-intermediary.jar:?]
at net.minecraft.class_1060.method_4616(class_1060.java:68) ~[client-intermediary.jar:?]
at net.minecraft.class_1060.method_4619(class_1060.java:118) ~[client-intermediary.jar:?]
at com.mojang.blaze3d.systems.RenderSystem._setShaderTexture(RenderSystem.java:1232) ~[client-intermediary.jar:?]
at com.mojang.blaze3d.systems.RenderSystem.setShaderTexture(RenderSystem.java:1225) ~[client-intermediary.jar:?]
at net.minecraft.class_332.method_25295(class_332.java:442) ~[client-intermediary.jar:?]
at net.minecraft.class_332.method_25297(class_332.java:433) ~[client-intermediary.jar:?]
at net.minecraft.class_332.method_25291(class_332.java:405) ~[client-intermediary.jar:?]
at org.minefortress.renderer.gui.hud.SelectedColonistHudLayer.renderIcon(SelectedColonistHudLayer.java:68) ~[minefortress-1.11.1-beta.jar:?]
at org.minefortress.renderer.gui.hud.SelectedColonistHudLayer.renderHud(SelectedColonistHudLayer.java:40) ~[minefortress-1.11.1-beta.jar:?]
at org.minefortress.renderer.gui.hud.AbstractHudLayer.render(AbstractHudLayer.java:64) ~[minefortress-1.11.1-beta.jar:?]
at org.minefortress.renderer.gui.hud.FortressHud.render(FortressHud.java:68) ~[minefortress-1.11.1-beta.jar:?]
at net.minecraft.class_329.handler$zoi001$minefortress$render(class_329.java:2474) ~[client-intermediary.jar:?]
at net.minecraft.class_329.method_1753(class_329.java:399) ~[client-intermediary.jar:?]
at net.minecraft.class_757.method_3192(class_757.java:927) ~[client-intermediary.jar:?]
at net.minecraft.class_310.method_1523(class_310.java:1275) ~[client-intermediary.jar:?]
at net.minecraft.class_310.method_1514(class_310.java:856) ~[client-intermediary.jar:?]
at net.minecraft.client.main.Main.main(Main.java:253) ~[minecraft-1.20.2-client.jar:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.6.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.15.6.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.15.6.jar:?]
at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:87) ~[NewLaunch.jar:?]
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:130) ~[NewLaunch.jar:?]
at org.prismlauncher.EntryPoint.main(EntryPoint.java:70) ~[NewLaunch.jar:?]
Environment info:
Any other mods that you use
modmenu-8.0.1
sodium-fabric-mc1.20.2-0.5.5
fabric-api-0.91.5+1.20.2
Describe the bug
When the bed is placed and it is not a part of the blueprint then this bed won't affect the overall max pawns amount and won't be used by pawns during the night.
To Reproduce
Environment info:
There are no test frameworks in the mod, and every change introduces many regressions.
I am looking for suggestions on how to restructure the mod and which types of tests to introduce to cover the mod codebase with test cases and reduce the number of regressions.
This is an open discussion. I would greatly appreciate any help.
Describe the bug
We just found out that some of the project dependencies are published in GitHub packages. The GitHub packages require you to authorize before downloading the packages. You will receive 403 from Github or 400 from JitPack until you authorize your Gradle against GitHub.
To Reproduce
Workaround
We have a quick workaround that could help you start working with the mod right now.
read:packages
build.gradle
file in the root directory of the project.maven {
url = "https://maven.pkg.github.com/minefortress-mod/minefortress-cc-api"
}
maven {
url = "https://maven.pkg.github.com/minefortress-mod/automatone"
}
to
maven {
url = "https://maven.pkg.github.com/minefortress-mod/minefortress-cc-api"
credentials {
username = YOUR GITHUB USERNAME
password = YOUR TOKEN
}
}
maven {
url = "https://maven.pkg.github.com/minefortress-mod/automatone"
credentials {
username = YOUR GITHUB USERNAME
password = YOUR TOKEN
}
}
Full fix
I will need to republish the MineFortress dependencies in some truly public maven repos. It will take some time, I will close this issue once I am done with that.
Heading to the non-beta release
Since the mod was developing in different directions over time we accumulated some game design approaches that made the gameplay cumbersome and complicated. I've spent some time looking through some suggestions and bugs that you have reported for the mod and tried to summarize some of them and provide some aligned gameplay design. With the same GUI for all blueprints, a way to split pawns between different tasks, self-defending villagers, and much more. Take a look at a mindmap that I have prepared. I will expand it over time with additional features. Now will try to stick to these features and finally head towards the first nonbeta release!
I hope that with these changes, the gameplay will be more streamlined and less complicated. Also tried to fulfill the most popular suggestions in the design. Let's make this mindmap a roadmap for future releases.
Describe the bug
The pawns selection doesn't work properly and doesn't select the correct pawns when the camera is moved around during selection.
To Reproduce
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.