Skip to content

Commit 71882c7

Browse files
committed
Remove all Minecraft imports to avoid remapping issues
1 parent 45c6985 commit 71882c7

File tree

5 files changed

+25
-22
lines changed

5 files changed

+25
-22
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@ A Clojure-based Hex Casting addon for advanced meta-evaluation. Created for HexJ
99
IMPORTANT: Type hints should be **avoided** whenever possible. Clojure seems to compile them into code like `RT.classForName("net.minecraft.resources.ResourceLocation`, which fails on Fabric because it isn't remapped.
1010

1111
I think this should be fixable using [elide-meta](https://clojure.org/reference/compilation#_compiler_options), but Clojurephant's elideMeta option doesn't seem to be working.
12+
13+
Additionally, avoid using `:import` from remapped packages (ie. `net.minecraft`), since Clojure's implementation of `:import` also results in loading classes by name at runtime.

common/src/main/clojure/gay/object/caduceus/casting/continuation.clj

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22
(:require [gay.object.caduceus.component :as component])
33
(:import (at.petrak.hexcasting.api HexAPI)
44
(at.petrak.hexcasting.api.casting.eval.vm SpellContinuation SpellContinuation$Done SpellContinuation$NotDone)
5-
(at.petrak.hexcasting.common.lib.hex HexContinuationTypes)
6-
(net.minecraft ChatFormatting)
7-
(net.minecraft.nbt Tag)
8-
(net.minecraft.network.chat Component)
9-
(net.minecraft.resources ResourceLocation)))
5+
(at.petrak.hexcasting.common.lib.hex HexContinuationTypes)))
106

117
(defn done? [cont]
128
(instance? SpellContinuation$Done cont))
@@ -30,24 +26,25 @@
3026
(defn- frame-type-id [tag]
3127
(-> tag
3228
(.getString HexContinuationTypes/KEY_TYPE)
33-
(ResourceLocation/tryParse)
29+
(net.minecraft.resources.ResourceLocation/tryParse)
3430
(or (HexAPI/modLoc "evaluate"))))
3531

3632
(defn- display-frame [tag]
3733
(let [type-id (str (frame-type-id tag))]
38-
(Component/translatableWithFallback
34+
(component/translatable-with-fallback
3935
(format "caduceus.tooltip.continuation.frame.%s" type-id)
4036
type-id)))
4137

4238
(defn display [tag]
4339
(let [frames (as-> tag v
44-
(.getList v SpellContinuation/TAG_FRAME Tag/TAG_COMPOUND)
40+
(.getList v
41+
SpellContinuation/TAG_FRAME
42+
net.minecraft.nbt.Tag/TAG_COMPOUND)
4543
(mapv display-frame v))]
46-
(.withStyle
44+
(component/red
4745
(if (empty? frames)
4846
(component/translatable "caduceus.tooltip.continuation.done")
49-
(component/translatable "caduceus.tooltip.continuation.not_done" (component/join ", " frames)))
50-
ChatFormatting/RED)))
47+
(component/translatable "caduceus.tooltip.continuation.not_done" (component/join ", " frames))))))
5148

5249
(gen-class
5350
:name gay.object.caduceus.casting.continuation.ContinuationUtils
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
(ns gay.object.caduceus.component
2-
(:import (net.minecraft.network.chat Component)))
1+
(ns gay.object.caduceus.component)
32

43
(defn translatable [key & args]
5-
(Component/translatable key (object-array args)))
4+
(net.minecraft.network.chat.Component/translatable key (object-array args)))
5+
6+
(defn translatable-with-fallback [key fallback]
7+
(net.minecraft.network.chat.Component/translatableWithFallback key fallback))
68

79
(defn join [separator coll]
810
(reduce
@@ -11,3 +13,6 @@
1113
(.append %2))
1214
(.copy (first coll))
1315
(rest coll)))
16+
17+
(defn red [component]
18+
(.withStyle component net.minecraft.ChatFormatting/RED))
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
(ns gay.object.caduceus.core
2-
(:import (net.minecraft.resources ResourceLocation)
3-
(org.apache.logging.log4j LogManager Logger)))
2+
(:import (org.apache.logging.log4j LogManager)))
43

54
(def ^:const MODID "caduceus")
65

76
(def LOGGER (LogManager/getLogger MODID))
87

98
(defn id [path]
10-
(ResourceLocation/new MODID path))
9+
(net.minecraft.resources.ResourceLocation/new MODID path))

fabric/src/main/clojure/gay/object/caduceus/fabric/init.clj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
(ns gay.object.caduceus.fabric.init
22
(:require [gay.object.caduceus.init :as caduceus.init]
3-
[gay.object.caduceus.registry :as registry])
4-
(:import (net.minecraft.core Registry)
5-
(net.minecraft.resources ResourceLocation)))
3+
[gay.object.caduceus.registry :as registry]))
64

75
(defn- init-registry [registrar]
86
(let [registry (registry/get-registry registrar)]
97
(registry/init
108
registrar
119
(fn [id value]
12-
(^[Registry ResourceLocation Object]
13-
Registry/register registry id value)))))
10+
(net.minecraft.core.Registry/register
11+
^net.minecraft.core.Registry registry
12+
^net.minecraft.resources.ResourceLocation id
13+
^Object value)))))
1414

1515
(gen-class
1616
:name gay.object.caduceus.fabric.FabricCaduceus

0 commit comments

Comments
 (0)