Skip to content

Commit

Permalink
1.20.4 port
Browse files Browse the repository at this point in the history
  • Loading branch information
rfresh2 committed Jan 19, 2024
1 parent 3464250 commit f348762
Show file tree
Hide file tree
Showing 16 changed files with 79 additions and 89 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: WorldTools Build
name: WorldTools 1.20.4 Build

on:
pull_request:
push:
branches:
- "master"
- "1.20.4"

jobs:
build:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/fabric-release.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name: Fabric Modrinth and CurseForge Release
name: Fabric 1.20.4 Modrinth and CurseForge Release

on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
- '[0-9]+.[0-9]+.[0-9]+\+1.20.4'

env:
MINECRAFT_VERSION: "1.20.1"
MINECRAFT_VERSION: "1.20.4"

jobs:
build:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/forge-release.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name: Forge Modrinth and CurseForge Release
name: Forge 1.20.4 Modrinth and CurseForge Release

on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
- '[0-9]+.[0-9]+.[0-9]+\+1.20.4'

env:
MINECRAFT_VERSION: "1.20.1"
MINECRAFT_VERSION: "1.20.4"

jobs:
build:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/github-release.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name: Github Release
name: 1.20.4 Github Release

on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
- '[0-9]+.[0-9]+.[0-9]+\+1.20.4'

env:
MINECRAFT_VERSION: "1.20.1"
MINECRAFT_VERSION: "1.20.4"

jobs:
build:
Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import net.fabricmc.loom.task.RemapJarTask

plugins {
kotlin("jvm") version ("1.9.10")
kotlin("jvm") version ("1.9.22")
id("architectury-plugin") version "3.4-SNAPSHOT"
id("dev.architectury.loom") version "1.4-SNAPSHOT" apply false
id("com.github.johnrengelman.shadow") version "8.1.1" apply false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.waste.of.time.mixin;

import com.llamalad7.mixinextras.sugar.Local;
import net.minecraft.client.world.ClientChunkManager;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.network.PacketByteBuf;
Expand Down Expand Up @@ -28,10 +29,10 @@ private void onChunkLoad(final int x, final int z, final PacketByteBuf buf, fina
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/world/ClientChunkManager$ClientChunkMap;compareAndSet(ILnet/minecraft/world/chunk/WorldChunk;Lnet/minecraft/world/chunk/WorldChunk;)Lnet/minecraft/world/chunk/WorldChunk;"
),
locals = LocalCapture.CAPTURE_FAILEXCEPTION
)
)
private void onChunkUnload(int chunkX, int chunkZ, CallbackInfo ci, int i, WorldChunk chunk) {
private void onChunkUnload(final ChunkPos pos, final CallbackInfo ci,
@Local final WorldChunk chunk) {
Events.INSTANCE.onChunkUnload(chunk);
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ object BrowseDownloadsScreen : Screen(Text.translatable("worldtools.gui.browser.
width,
height,
20,
height - 30,
20
height - 30
) {


Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
package org.waste.of.time.storage.serializable

import com.google.gson.GsonBuilder
import net.minecraft.SharedConstants
import com.mojang.serialization.Codec
import com.mojang.serialization.JsonOps
import net.minecraft.advancement.AdvancementProgress
import net.minecraft.advancement.PlayerAdvancementTracker
import net.minecraft.datafixer.DataFixTypes
import net.minecraft.text.MutableText
import net.minecraft.util.Identifier
import net.minecraft.util.PathUtil
import net.minecraft.util.Util
import net.minecraft.util.WorldSavePath
import net.minecraft.world.level.storage.LevelStorage
import org.waste.of.time.manager.MessageManager.translateHighlight
import org.waste.of.time.WorldTools
import org.waste.of.time.WorldTools.config
import org.waste.of.time.WorldTools.mc
import org.waste.of.time.storage.Storeable
import org.waste.of.time.mixin.accessor.AdvancementProgressesAccessor
import org.waste.of.time.manager.MessageManager.translateHighlight
import org.waste.of.time.storage.CustomRegionBasedStorage
import java.lang.reflect.Type
import org.waste.of.time.storage.Storeable
import java.nio.charset.StandardCharsets
import java.nio.file.Files

class AdvancementsStoreable : Storeable {
override fun shouldStore() = config.capture.advancements
Expand All @@ -29,13 +33,10 @@ class AdvancementsStoreable : Storeable {
override val anonymizedInfo: MutableText
get() = verboseInfo

private val gson = GsonBuilder().registerTypeAdapter(
AdvancementProgress::class.java as Type,
AdvancementProgress.Serializer()
).registerTypeAdapter(
Identifier::class.java as Type,
Identifier.Serializer()
).setPrettyPrinting().create()
private val progressMapCodec: Codec<PlayerAdvancementTracker.ProgressMap> =
DataFixTypes.ADVANCEMENTS.createDataFixingCodec(PlayerAdvancementTracker.ProgressMap.CODEC, mc.dataFixer, 1343);

private val gson = GsonBuilder().setPrettyPrinting().create()

override fun store(
session: LevelStorage.Session,
Expand All @@ -45,18 +46,24 @@ class AdvancementsStoreable : Storeable {
val advancements = session.getDirectory(WorldSavePath.ADVANCEMENTS)
PathUtil.createDirectories(advancements)

val progress = (mc.player?.networkHandler?.advancementHandler as? AdvancementProgressesAccessor)?.advancementProgresses ?: return
val progress = (mc.player?.networkHandler?.advancementHandler)?.advancementProgresses ?: return

val progressMap = LinkedHashMap<Identifier, AdvancementProgress>()
val progressMapTemp = LinkedHashMap<Identifier, AdvancementProgress>()
progress.entries.forEach { (key, advancementProgress) ->
if (!advancementProgress.isAnyObtained) return@forEach
progressMap[key.id] = advancementProgress
progressMapTemp[key.id()] = advancementProgress
}
val jsonElement = gson.toJsonTree(progressMap)
jsonElement.asJsonObject.addProperty("DataVersion", SharedConstants.getGameVersion().saveVersion.id)
val progressMap = PlayerAdvancementTracker.ProgressMap(progressMapTemp)
val jsonElement = Util.getResult(
progressMapCodec.encodeStart(JsonOps.INSTANCE, progressMap)
) { s: String? -> IllegalStateException(s) }

val path = advancements.resolve("$uuid.json")

advancements.resolve("$uuid.json").toFile().writeText(jsonElement.toString())
Files.newBufferedWriter(path, StandardCharsets.UTF_8).use { writer ->
gson.toJson(jsonElement, writer)
}

WorldTools.LOG.info("Saved ${progressMap.size} advancements.")
WorldTools.LOG.info("Saved ${progressMap.map().size} advancements.")
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@ import net.minecraft.util.WorldSavePath
import net.minecraft.world.GameRules
import net.minecraft.world.level.storage.LevelStorage.Session
import org.waste.of.time.Utils.addAuthor
import org.waste.of.time.manager.CaptureManager.currentLevelName
import org.waste.of.time.manager.MessageManager
import org.waste.of.time.manager.MessageManager.translateHighlight
import org.waste.of.time.WorldTools
import org.waste.of.time.WorldTools.DAT_EXTENSION
import org.waste.of.time.WorldTools.LOG
import org.waste.of.time.WorldTools.config
import org.waste.of.time.WorldTools.mc
import org.waste.of.time.storage.Storeable
import org.waste.of.time.manager.CaptureManager.currentLevelName
import org.waste.of.time.manager.MessageManager
import org.waste.of.time.manager.MessageManager.translateHighlight
import org.waste.of.time.storage.CustomRegionBasedStorage
import org.waste.of.time.storage.Storeable
import java.io.File
import java.io.IOException

Expand Down Expand Up @@ -50,10 +50,10 @@ class LevelDataStoreable : Storeable {

try {
val newFile = File.createTempFile("level", WorldTools.DAT_EXTENSION, resultingFile)
NbtIo.writeCompressed(levelNbt, newFile)
NbtIo.writeCompressed(levelNbt, newFile.toPath())
val backup = session.getDirectory(WorldSavePath.LEVEL_DAT_OLD).toFile()
val current = session.getDirectory(WorldSavePath.LEVEL_DAT).toFile()
Util.backupAndReplace(current, newFile, backup)
Util.backupAndReplace(current.toPath(), newFile.toPath(), backup.toPath())
LOG.info("Saved level data.")
} catch (exception: IOException) {
MessageManager.sendError(
Expand All @@ -69,8 +69,8 @@ class LevelDataStoreable : Storeable {
*/
private fun serializeLevelData() = NbtCompound().apply {
val player = mc.player ?: return@apply

player.serverBrand?.let {
val network = mc.networkHandler ?: return@apply
network.brand?.let {
put("ServerBrands", NbtList().apply {
add(NbtString.of(it))
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ import net.minecraft.text.MutableText
import net.minecraft.util.PathUtil
import net.minecraft.util.WorldSavePath
import net.minecraft.world.level.storage.LevelStorage.Session
import org.waste.of.time.manager.CaptureManager.currentLevelName
import org.waste.of.time.manager.CaptureManager.levelName
import org.waste.of.time.manager.CaptureManager.serverInfo
import org.waste.of.time.manager.MessageManager.translateHighlight
import org.waste.of.time.Utils
import org.waste.of.time.WorldTools.CREDIT_MESSAGE_MD
import org.waste.of.time.WorldTools.LOG
import org.waste.of.time.WorldTools.MOD_NAME
import org.waste.of.time.WorldTools.config
import org.waste.of.time.WorldTools.mc
import org.waste.of.time.storage.Storeable
import org.waste.of.time.storage.PathTreeNode
import org.waste.of.time.manager.CaptureManager.currentLevelName
import org.waste.of.time.manager.CaptureManager.levelName
import org.waste.of.time.manager.CaptureManager.serverInfo
import org.waste.of.time.manager.MessageManager.translateHighlight
import org.waste.of.time.storage.CustomRegionBasedStorage
import org.waste.of.time.storage.PathTreeNode
import org.waste.of.time.storage.Storeable
import java.net.InetSocketAddress
import java.nio.file.Path
import kotlin.io.path.writeBytes
Expand Down Expand Up @@ -120,7 +120,7 @@ class MetadataStoreable : Storeable {
if (serverInfo.playerCountLabel.string.isNotBlank()) {
appendLine("- **Capacity**: `${serverInfo.playerCountLabel.string}`")
}
appendLine("- **Brand**: `${mc.player?.serverBrand}`")
appendLine("- **Brand**: `${mc.networkHandler?.brand}`")
appendLine("- **MOTD**: `${serverInfo.label.string.split("\n").joinToString(" ")}`")
appendLine("- **Version**: `${serverInfo.version.string}`")

Expand Down Expand Up @@ -169,18 +169,14 @@ class MetadataStoreable : Storeable {
append("Public Key Data: ${it.data} ")
}
append("${entry.scoreboardTeam?.name}, ")
appendLine(entry.model)
appendLine(entry.skinTextures.model)
}

private fun StringBuilder.serializeGameProfile(gameProfile: GameProfile) {
append(gameProfile.name)
append(", ")
append(gameProfile.id)
append(", ")
append(gameProfile.isLegacy)
append(", ")
append(gameProfile.isComplete)
append(", ")
gameProfile.properties.forEach { t, u ->
append("[key: $t | name: ${u.name} | value: ${u.value} | signature: ${u.signature}] ")
}
Expand Down
3 changes: 3 additions & 0 deletions common/src/main/resources/worldtools.accesswidener
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@ accessWidener v2 named

accessible class net/minecraft/client/world/ClientChunkManager$ClientChunkMap
accessible method net/minecraft/client/world/ClientChunkManager$ClientChunkMap isInRadius (II)Z
accessible class net/minecraft/advancement/PlayerAdvancementTracker$ProgressMap
accessible method net/minecraft/advancement/PlayerAdvancementTracker$ProgressMap <init> (Ljava/util/Map;)V
accessible field net/minecraft/client/network/ClientAdvancementManager advancementProgresses Ljava/util/Map;
1 change: 0 additions & 1 deletion common/src/main/resources/worldtools.mixins.common.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
"DebugRendererMixin",
"GameMenuScreenMixin",
"MinecraftClientMixin",
"accessor.AdvancementProgressesAccessor",
"accessor.StatHandlerAccessor"
],
"injectors": {
Expand Down
4 changes: 2 additions & 2 deletions fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@
"depends": {
"fabricloader": ">=${fabric_loader_version}",
"fabric-api": "*",
"minecraft": "~1.20",
"minecraft": "1.20.4",
"java": ">=17",
"fabric-language-kotlin": ">=${fabric_kotlin_version}",
"cloth-config": ">=11"
"cloth-config": ">=13"
}
}
4 changes: 2 additions & 2 deletions forge/src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ side = "CLIENT"
[[dependencies.worldtools]]
modId = "minecraft"
mandatory = true
versionRange = "[1.20,)"
versionRange = "[1.20.4,)"
ordering = "NONE"
side = "CLIENT"

Expand All @@ -37,6 +37,6 @@ side = "CLIENT"
[[dependencies.worldtools]]
modId = "cloth_config"
mandatory = true
versionRange = "[11,)"
versionRange = "[13,)"
ordering = "AFTER"
side = "CLIENT"
24 changes: 12 additions & 12 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@ archives_base_name=WorldTools
maven_group=org.waste.of.time
mod_version=1.1.1

minecraft_version=1.20.1
minecraft_version=1.20.4
enabled_platforms=fabric,forge
architectury_version=9.1.12
mixinextras_version=0.3.2
architectury_version=11.0.11
mixinextras_version=0.3.5
kyori_adventure_version=4.15.0
cloth_config_version=11.1.106
mod_menu_version=7.2.2
cloth_config_version=13.0.121
mod_menu_version=9.0.0

# Fabric
loom_version=1.4-SNAPSHOT
fabric_loader_version=0.15.2
yarn_mappings=1.20.1+build.10
fabric_api_version=0.91.0+1.20.1
fabric_kotlin_version=1.10.16+kotlin.1.9.21
fabric_loader_version=0.15.6
yarn_mappings=1.20.4+build.3
# todo: fabric-api update is blocked on architectury-loom supporting loom 1.5+ mixin remapping
fabric_api_version=0.93.1+1.20.4
fabric_kotlin_version=1.10.17+kotlin.1.9.22

# Forge
forge_version=1.20.1-47.2.17
kotlin_forge_version=4.9.0
forge_version=1.20.4-49.0.19
kotlin_forge_version=4.10.0

0 comments on commit f348762

Please sign in to comment.