Skip to content
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

Feature : Forgematica #16

Merged
merged 12 commits into from
Mar 2, 2025
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
57 changes: 28 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,10 @@ Just keep in mind that not everything may be implemented 😄

### Client Side

1. Install `Fabric` or (`Forge`)<a><sup>[1]</sup></a> to the instance.
1. Install `Fabric`, `Forge`, or `NeoForge` to the instance.
2. Add the Kyoyu Mod and its dependency mods to the Mods folder.
3. Launch!

<a>[1]</a>: 1.16.5 Only

<b><font color=#F9AA00>It is possible to join a server without Kyoyu installed using a client with Kyoyu, but you will not be able to use Kyoyu's features!</font></b>

### Server Side
Expand All @@ -52,37 +50,38 @@ Just keep in mind that not everything may be implemented 😄
| Loader | Client | Server |
|---------------|---------------------------------|------------|
| **Fabric** | Malilib, Litematica, Fabric API | Fabric API |
| **Forge** | Malilib, Litematica | |
| **Forge** | MaFgLib, Forgematica | |
| **NeoForge** | MaFgLib, Forgematica | |

## Versions

| Version | Client | ||| Server | | | |
|----------------:|------------|-----------|--|------------|-----------|--------------|-----------|
| | **Fabric** | **Forge** ||| **Fabric** | **Forge** | **NeoForge** | **Paper** |
| 1.14 - 1.14.4 | ✅ | 🚫 ||| ✅ | ⚠️ | 🚫 | 🚫 |
| 1.15 - 1.15.2 | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | 🚫 |
| 1.16 - 1.16.5 | ✅ | ⚠️<a><sup>[2]</sup></a>||| | | 🚫 | 🚫 |
| 1.17 - 1.17.1 | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | 🚫 |
| 1.18 - 1.18.2 | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | 🚫 |
| 1.19 - 1.19.2 | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | ⚠️<a><sup>[3]</sup></a>|
| 1.19.3 - 1.19.4 | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | ⚠️<a><sup>[3]</sup></a>|
| 1.20 - 1.20.1 | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | ⚠️<a><sup>[3]</sup></a>|
| 1.20.2 | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | ⚠️<a><sup>[3]</sup></a>|
| 1.20.3 - 1.20.4 | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | ⚠️<a><sup>[3]</sup></a>|
| 1.20.5 - 1.20.6 | ✅ | 🚫 ||| ✅ | ⚠️ | ⚠️ | ⚠️<a><sup>[3]</sup></a>|
| 1.21 - 1.21.1 | ✅ | 🚫 ||| ✅ | ⚠️ | ⚠️ | ⚠️<a><sup>[3]</sup></a>|
| 1.21.2 - 1.21.3 | ✅ | 🚫 ||| ✅ | ⚠️ | ⚠️ | ⚠️<a><sup>[3]</sup></a>|
| 1.21.4 | ✅ | 🚫 ||| ✅ | ⚠️ | ⚠️ | 🚫 |
||<a href="https://fabricmc.net/" target="_blank"><img src="https://raw.githubusercontent.com/FabricMC/fabric/refs/heads/1.21.4/src/main/resources/assets/fabric/icon.png" width="18px" alt="Fabric"></a>|<a href="https://files.minecraftforge.net/net/minecraftforge/forge/" target="_blank"><img src="https://raw.githubusercontent.com/MinecraftForge/MinecraftForge/refs/heads/1.21.x/icon.ico" width="18px" alt="Forge"></a>||<a href="https://fabricmc.net/" target="_blank"><img src="https://raw.githubusercontent.com/FabricMC/fabric/refs/heads/1.21.4/src/main/resources/assets/fabric/icon.png" width="18px" alt="Fabric"></a>|<a href="https://files.minecraftforge.net/net/minecraftforge/forge/" target="_blank"><img src="https://raw.githubusercontent.com/MinecraftForge/MinecraftForge/refs/heads/1.21.x/icon.ico" width="18px" alt="Forge"></a>|<a href="https://neoforged.net/" target="_blank"><img src="https://raw.githubusercontent.com/neoforged/NeoForge/ac7a3bc021d604509763dd8d310aefc8fc4a4039/.idea/icon.svg" width="18px" alt="NeoForge"></a>|<a href="https://papermc.io/software/paper" target="_blank"><img src="https://forums.papermc.io/data/assets/logo/paperlogo512.png" width="18px" alt="Paper"></a>|

<a>[2]</a>: This is only compatible with <a href="https://modrinth.com/mod/litematica/versions?g=1.16.5&l=forge" target="_blank">builds published by Litematica</a><br>
<a>[3]</a>: It launches, but cannot share the schematic.
| Version | Client | | ||| Server | | | |
|----------------:|:------:|:------:|:-----:|--|:------:|:------:|:------:|:-----:|
| | **Fabric** <br><font size="-1"><small>Litematica</small></font> | **Forge** <br><font size="-1"><small><a href="https://modrinth.com/mod/forgematica" style="color: white;" target="_blank">Forgematica</a></small></font> | **NeoForge** <br><font size="-1"><small><a href="https://modrinth.com/mod/forgematica" style="color: white;" target="_blank">Forgematica</a></small></font> ||| **Fabric** | **Forge** | **NeoForge** | **Paper** |
| 1.14 - 1.14.4 | ✅ | 🚫 | 🚫 ||| ✅ | ✅ | 🚫 | 🚫 |
| 1.15 - 1.15.2 | ✅ | 🚫 | 🚫 ||| ✅ | ✅ | 🚫 | 🚫 |
| 1.16 - 1.16.5 | ✅ | | 🚫 |||| ✅ | 🚫 | 🚫 |
| 1.17 - 1.17.1 | ✅ | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | 🚫 |
| 1.18 - 1.18.2 | ✅ | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | 🚫 |
| 1.19 - 1.19.2 | ✅ | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | 🚫 |
| 1.19.3 - 1.19.4 | ✅ | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | ⚠️<a><sup>[3]</sup></a>|
| 1.20 - 1.20.1 | ✅ | ✅ | 🚫 ||| ✅ | ✅ | 🚫 | ⚠️<a><sup>[3]</sup></a>|
| 1.20.2 | ✅ | 🚫 | 🚫 ||| ✅ | ✅ | 🚫 | ⚠️<a><sup>[3]</sup></a>|
| 1.20.3 - 1.20.4 | ✅ | 🚫 | ⚠️<a><sup>[1]</sup></a> ||| ✅ | 🚫 | ⚠️<a><sup>[1]</sup></a>| ⚠️<a><sup>[3]</sup></a>|
| 1.20.5 - 1.20.6 | ✅ | 🚫 | ⚠️<a><sup>[2]</sup></a> ||| ✅ | 🚫 | ⚠️<a><sup>[1]</sup></a> | ⚠️<a><sup>[3]</sup></a>|
| 1.21 - 1.21.1 | ✅ | 🚫 | ⚠️<a><sup>[2]</sup></a> ||| ✅ | 🚫 | ⚠️<a><sup>[1]</sup></a> | ⚠️<a><sup>[3]</sup></a>|
| 1.21.2 - 1.21.3 | ✅ | 🚫 | ⚠️<a><sup>[2]</sup></a> ||| ✅ | 🚫 | ⚠️<a><sup>[1]</sup></a> | ⚠️<a><sup>[3]</sup></a>|
| 1.21.4 | ✅ | 🚫 | ⚠️<a><sup>[2]</sup></a> ||| ✅ | 🚫 | ⚠️<a><sup>[1]</sup></a> | ⚠️<a><sup>[3]</sup></a>|

<a>[1]</a>: Doesn't work<br>
<a>[2]</a>: Cannot join the server<br>
<a>[3]</a>: It launches, but cannot share the schematic<br>

## Roadmap (WIP)

- [ ] [legacy litematica (Ornithe)](https://github.com/maruohon/litematica/tree/ornithe/1.12.2) support?
- [ ] [Forgematica](https://modrinth.com/mod/forgematica) support?
- [ ] [Paper](https://papermc.io/) plugin support? (retry)
- [ ] [legacy litematica (Ornithe)](https://github.com/maruohon/litematica/tree/ornithe/1.12.2) support
- [x] [Forgematica](https://modrinth.com/mod/forgematica) support
- [ ] [Paper](https://papermc.io/) plugin support (retry)
- [ ] Client only depend (malilib, litematica)
- [ ] GUI improvements
- [x] Merged jars
Expand All @@ -99,4 +98,4 @@ Just keep in mind that not everything may be implemented 😄
🇾 [yamlang](https://github.com/Fallen-Breath/yamlang) by Fallen-Breath <br>
🇬 [Gson](https://github.com/google/gson) by google<br>

<small>Last README Update `2025/02/08 08:33` UTC+9
<small>Last README Update `2025/03/02 14:48` UTC+9
16 changes: 7 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,7 @@ JavaVersion JAVA_COMPATIBILITY
JavaVersion MIXIN_COMPATIBILITY
if (mcVersion >= 12005) {
JAVA_COMPATIBILITY = JavaVersion.VERSION_21
if (project.platform == 'forge' && mcVersion <= 12006) {
MIXIN_COMPATIBILITY = JavaVersion.VERSION_17
} else {
MIXIN_COMPATIBILITY = JavaVersion.VERSION_21
}
MIXIN_COMPATIBILITY = JavaVersion.VERSION_21
} else if (mcVersion >= 11800) {
JAVA_COMPATIBILITY = JavaVersion.VERSION_17
MIXIN_COMPATIBILITY = JavaVersion.VERSION_17
Expand Down Expand Up @@ -108,7 +104,7 @@ stonecutter.const('QUILT', project.platform == 'quilt')
stonecutter.const('FORGE', project.platform == 'forge')
stonecutter.const('NEOFORGE', project.platform == 'neoforge')
stonecutter.const('PAPER', project.platform == 'paper')
stonecutter.const('client', project.hasProperty('litematica_version') && project.hasProperty('malilib_version'))
stonecutter.const('client', (project.hasProperty('litematica_version') && project.hasProperty('malilib_version')) || (project.hasProperty('forgematica_version') && project.hasProperty('mafglib_version')))
stonecutter.swap("mod_version", "\"${fullArtifactVersion}\";")

if (use_architectury_loom) {
Expand Down Expand Up @@ -141,16 +137,18 @@ dependencies {
compileOnly "io.papermc.paper:paper-api:${project.minecraft_version}-R0.1-SNAPSHOT"
paperweight.paperDevBundle("${project.minecraft_version}-R0.1-SNAPSHOT")
}
if (project.hasProperty('litematica_version')) {
if (project.hasProperty('litematica_version') && project.hasProperty('malilib_version')) {
modImplementation "maven.modrinth:litematica:${project.litematica_version}"
}
if (project.hasProperty('malilib_version')) {
modImplementation "maven.modrinth:malilib:${project.malilib_version}"
if (project.platform == 'fabric') {
modImplementation(fabricApi.module("fabric-networking-api-v1", project.fabric_api_version))
modImplementation(fabricApi.module("fabric-resource-loader-v0", project.fabric_api_version))
}
}
if (project.hasProperty('forgematica_version') && project.hasProperty('mafglib_version')) {
modImplementation "maven.modrinth:forgematica:${project.forgematica_version}"
modImplementation "maven.modrinth:mafglib:${project.mafglib_version}"
}

implementation("com.google.code.gson:gson:${project.gson_version}")
}
Expand Down
10 changes: 5 additions & 5 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ stonecutter {
mc("1.19.4", "fabric", "forge", "paper")
mc("1.20.1", "fabric", "forge", "paper")
mc("1.20.2", "fabric", "forge", "paper")
mc("1.20.4", "fabric", "forge", "paper")
mc("1.20.6", "fabric", "forge", "neoforge", "paper")
mc("1.21.1", "fabric", "forge", "neoforge", "paper")
mc("1.21.3", "fabric", "forge", "neoforge", "paper")
mc("1.21.4", "fabric", "forge", "neoforge", "paper")
mc("1.20.4", "fabric", "neoforge", "paper")
mc("1.20.6", "fabric", "neoforge", "paper")
mc("1.21.1", "fabric", "neoforge", "paper")
mc("1.21.3", "fabric", "neoforge", "paper")
mc("1.21.4", "fabric", "neoforge", "paper")
}
create(rootProject)
}
10 changes: 5 additions & 5 deletions settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,27 +47,27 @@
},
{
"version": "1.20.4",
"platforms": "fabric\nforge\npaper",
"platforms": "fabric\npaper\nneoforge",
"game_versions": "1.20.3\n1.20.4"
},
{
"version": "1.20.6",
"platforms": "fabric\nforge\npaper\nneoforge",
"platforms": "fabric\npaper\nneoforge",
"game_versions": "1.20.5\n1.20.6"
},
{
"version": "1.21.1",
"platforms": "fabric\nforge\npaper\nneoforge",
"platforms": "fabric\npaper\nneoforge",
"game_versions": "1.21\n1.21.1"
},
{
"version": "1.21.3",
"platforms": "fabric\nforge\npaper\nneoforge",
"platforms": "fabric\npaper\nneoforge",
"game_versions": "1.21.2\n1.21.3"
},
{
"version": "1.21.4",
"platforms": "fabric\nforge\npaper\nneoforge",
"platforms": "fabric\npaper\nneoforge",
"game_versions": "1.21.4"
}
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

@Mixin(Connection.class)
public class ConnectionMixin {
@Inject(method = "channelInactive", at = @At("HEAD"))
@Inject(method = "channelInactive", at = @At("HEAD"), remap = false)
private void onLeave(ChannelHandlerContext channelHandlerContext, CallbackInfo ci) {
if (KyoyuClient.getInstance() == null) return;
Kyoyu.LOGGER.info("Leave from Server");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.core.BlockPos;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
Expand All @@ -35,7 +34,6 @@
@Mixin(SchematicPlacement.class)
public class SchematicPlacementMixin implements ISchematicPlacement {

@Shadow private BlockPos origin;
@Unique
private UUID kyoyu_id;

Expand Down
4 changes: 2 additions & 2 deletions versions/forge-1.16.5/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ forge_version=36.2.42
minecraft_dependency=[1.16, 1.16.5]

# Dependencies
malilib_version=2nS83Qf7
litematica_version=0.0.0-dev.20210917
forgematica_version=0.1.11-mc1.16.5
mafglib_version=0.1.15-mc1.16.5
4 changes: 4 additions & 0 deletions versions/forge-1.17.1/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ loom.platform=forge
# https://files.minecraftforge.net/net/minecraftforge/forge/index_1.17.1.html
forge_version=37.1.1
minecraft_dependency=[1.17, 1.17.1]

# Dependencies
forgematica_version=0.1.5-mc1.17.1
mafglib_version=0.1.6-mc1.17.1
4 changes: 4 additions & 0 deletions versions/forge-1.18.2/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ loom.platform=forge
# https://files.minecraftforge.net/net/minecraftforge/forge/index_1.18.2.html
forge_version=40.2.21
minecraft_dependency=[1.18, 1.18.2]

# Dependencies
forgematica_version=0.1.11-mc1.18.2
mafglib_version=0.1.14-mc1.18.2
4 changes: 4 additions & 0 deletions versions/forge-1.19.2/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ loom.platform=forge
# https://files.minecraftforge.net/net/minecraftforge/forge/index_1.19.2.html
forge_version=43.4.16
minecraft_dependency=[1.19, 1.19.2]

# Dependencies
forgematica_version=0.1.10-mc1.19.2
mafglib_version=0.1.14-mc1.19.2
4 changes: 4 additions & 0 deletions versions/forge-1.19.4/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ loom.platform=forge
# https://files.minecraftforge.net/net/minecraftforge/forge/index_1.19.4.html
forge_version=45.3.8
minecraft_dependency=[1.19.3, 1.19.4]

# Dependencies
forgematica_version=0.1.9-mc1.19.4
mafglib_version=0.1.11-mc1.19.4
4 changes: 4 additions & 0 deletions versions/forge-1.20.1/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ loom.platform=forge
# https://files.minecraftforge.net/net/minecraftforge/forge/index_1.20.1.html
forge_version=47.3.0
minecraft_dependency=[1.20, 1.20.1]

# Dependencies
forgematica_version=0.1.12-mc1.20.1
mafglib_version=0.1.13-mc1.20.1
11 changes: 0 additions & 11 deletions versions/forge-1.20.6/gradle.properties

This file was deleted.

11 changes: 0 additions & 11 deletions versions/forge-1.21.1/gradle.properties

This file was deleted.

11 changes: 0 additions & 11 deletions versions/forge-1.21.3/gradle.properties

This file was deleted.

11 changes: 0 additions & 11 deletions versions/forge-1.21.4/gradle.properties

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@
# check these on https://fallen-breath.github.io/fabric-versions/?&version=1.20.4
minecraft_version=1.20.4
yarn_mappings=1.20.4+build.3
platform=forge
loom.platform=forge
platform=neoforge
loom.platform=neoforge

# Mod Metadata
# https://files.minecraftforge.net/net/minecraftforge/forge/index_1.20.4.html
forge_version=49.1.13
# https://projects.neoforged.net/neoforged/neoforge
neoforge_version=20.4.239
minecraft_dependency=(1.20.2, 1.20.4]

# Dependencies
forgematica_version=0.1.7-mc1.20.4
mafglib_version=0.1.11-mc1.20.4
4 changes: 4 additions & 0 deletions versions/neoforge-1.20.6/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ loom.platform=neoforge
# https://projects.neoforged.net/neoforged/neoforge
neoforge_version=20.6.121
minecraft_dependency=[1.20.5, 1.20.6]

# Dependencies
forgematica_version=0.1.8-mc1.20.6
mafglib_version=0.1.15-mc1.20.6
4 changes: 4 additions & 0 deletions versions/neoforge-1.21.1/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ loom.platform=neoforge
# https://projects.neoforged.net/neoforged/neoforge
neoforge_version=21.1.115
minecraft_dependency=[1.21, 1.21.1]

# Dependencies
forgematica_version=0.2.1-mc1.21.1
mafglib_version=0.2.8-mc1.21.1
4 changes: 4 additions & 0 deletions versions/neoforge-1.21.3/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ loom.platform=neoforge
# https://projects.neoforged.net/neoforged/neoforge
neoforge_version=21.3.60
minecraft_dependency=[1.21.2, 1.21.3]

# Dependencies
forgematica_version=0.2.1-mc1.21.3
mafglib_version=0.2.8-mc1.21.3
4 changes: 4 additions & 0 deletions versions/neoforge-1.21.4/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ loom.platform=neoforge
# https://projects.neoforged.net/neoforged/neoforge
neoforge_version=21.4.42-beta
minecraft_dependency=[1.21.4, )

# Dependencies
forgematica_version=0.2.1-mc1.21.4
mafglib_version=0.2.8-mc1.21.4