Fork me on GitHub

What's involved in making a 1.19 release of Witchcraft? Can I help with that in some way? If there is some grunt work, I'd be happy to provide.


Very little should be needed, it might even work with the current version of the plugin. I just haven't had a chance to try it out yet.

🙏 1

yup, seems to work fine. In bin/start-server / bin/start-client you can change MC_VERSION="1.19"


you can teleport to [4371 62.875 2477] to see the new mangrove swamp biome.


ah we'll have to upgrade XSeries or the new materials like mud are going to cause issues


Yeah, I could start things fine. 🎉


you can put this in server/deps.edn:

com.github.cryptomorin/XSeries  {:mvn/version "8.8.0"}


I'll put out a release in the meanwhile


this is an API we use to help with cross-version support


Spoke too early. I'm apparently still using 1.18.2 server. Hmmm...


did you change MC_VERSION in start_server? the first time you run it it should say

➜ bin/start-server                                                                                                                                                                              
[start-server] paper-1.19.jar not found, downloading.                                                                                                                                           
+ curl --progress-bar -L  -o paper-1.19.jar   


and a bit further down

[08:52:06 INFO]: Starting minecraft server version 1.19


Yeah... I still get:

[09:25:51 INFO]: Starting minecraft server version 1.18.2
Can I wipe something to start from scratch?


can you share sh -x bin/start-server?


% sh -x bin/start-server
+ MC_SERVER_JAR=paper-1.19.jar
+ WITCHRAFT_PLUGIN_JAR=witchcraft-plugin-0.7.37-for-paper-1.18-shaded.jar
+++ dirname -- bin/start-server
++ cd -- bin
++ pwd -P
+ BIN_DIR=/Users/pez/Projects/workshops/witchcraft-workshop/bin
+ cd /Users/pez/Projects/workshops/witchcraft-workshop/bin/../server
++ command -v java
+ JAVA_CMD=/usr/bin/java
+ '[' -z /usr/bin/java ']'
+ '[' '!' -f eula.txt ']'
+ '[' '!' -f paper-1.19.jar ']'
+ '[' '!' -f plugins/witchcraft-plugin-0.7.37-for-paper-1.18-shaded.jar ']'
+ exec_trace /usr/bin/java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -jar paper-1.19.jar
+ echo + /usr/bin/java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -jar paper-1.19.jar
+ /usr/bin/java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -jar paper-1.19.jar
+ exec /usr/bin/java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -jar paper-1.19.jar
Downloading mojang_1.18.2.jar
Applying patches
Starting org.bukkit.craftbukkit.Main
System Info: Java 18 (OpenJDK 64-Bit Server VM 18.0.1+10) Host: Mac OS X 12.3.1 (aarch64)
Loading libraries, please wait...
[09:34:13 INFO]: Environment: authHost='', accountsHost='', sessionHost='', servicesHost='', name='PROD'
[09:34:14 INFO]: Loaded 7 recipes
[09:34:15 INFO]: Starting minecraft server version 1.18.2
[09:34:15 INFO]: Loading properties
[09:34:15 INFO]: This server is running Paper version git-Paper-384 (MC: 1.18.2) (Implementing API version 1.18.2-R0.1-SNAPSHOT) (Git: 3eaf3a8 on ver/1.18.2)
[09:34:15 INFO]: Server Ping Player Sample Count: 12
[09:34:15 INFO]: Using 4 threads for Netty based IO
[09:34:15 INFO]: Default game type: SURVIVAL
[09:34:15 INFO]: Generating keypair
[09:34:16 INFO]: Starting Minecraft server on *:25565
[09:34:16 INFO]: Using default channel type
[09:34:16 INFO]: Paper: Using Java 11 compression from Velocity.
[09:34:16 INFO]: Paper: Using Java cipher from Velocity.
[09:34:16 INFO]: [Witchcraft] Loading Witchcraft v0.7.37
[09:34:16 INFO]: Server permissions file permissions.yml is empty, ignoring it
[09:34:16 WARN]: The server will make no attempt to authenticate usernames. Beware.
[09:34:16 WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
[09:34:16 WARN]: To change this, set "online-mode" to "true" in the file.
[09:34:16 INFO]: Preparing level "world"
[09:34:16 INFO]: Preparing start region for dimension minecraft:overworld
[09:34:17 INFO]: Time elapsed: 151 ms
[09:34:17 INFO]: Preparing start region for dimension minecraft:the_nether
[09:34:17 INFO]: Time elapsed: 55 ms
[09:34:17 INFO]: Preparing start region for dimension minecraft:the_end
[09:34:17 INFO]: Time elapsed: 56 ms
[09:34:17 INFO]: [Witchcraft] Enabling Witchcraft v0.7.37
[09:34:17 INFO]: [Witchcraft] Setting PluginClassloader as Context classloader: PluginClassLoader{plugin=Witchcraft v0.7.37, pluginEnabled=true, url=plugins/witchcraft-plugin-0.7.37-for-paper-1.18-shaded.jar}
[09:34:19 INFO]: [Witchcraft] Loading deps.edn 
[09:34:20 INFO]: [Witchcraft] require: lambdaisland.witchcraft
[09:34:22 WARN]: Reflection warning, lambdaisland/witchcraft.clj:1597:7 - call to method remove on org.bukkit.inventory.Inventory can't be resolved (argument types: java.lang.Object).
[09:34:22 WARN]: Reflection warning, lambdaisland/witchcraft.clj:1597:7 - call to method remove on org.bukkit.inventory.Inventory can't be resolved (argument types: unknown).
[09:34:22 INFO]: [Witchcraft] require: lambdaisland.witchcraft.paper
[09:34:22 INFO]: [Witchcraft] init: (lambdaisland.witchcraft/init-xmaterial!)
[09:34:22 INFO]: [Witchcraft] init: (alter-var-root (var lambdaisland.witchcraft/server-type) (constantly :paper))
[09:34:22 INFO]: Running delayed init tasks
[09:34:22 INFO]: Done (6.547s)! For help, type "help"
[09:34:22 INFO]: Timings Reset
[09:34:22 INFO]: nREPL server started on port 25555 on host localhost - 


can you remove paper-1.19.jar and try again? For some reason it seems like it actually contains the wrong version...


That worked. Thanks! ”for some reason” might very well be me having done something funny while I was trying.


Teleported to [4371 62.875 2477]`, but since I don't know what a biome is, I don't know how to verify that I have any new ones 😃 (I'll ask my domain experts here at home, no worries!)


if there are mud blocks and mangrove trees and roots then you found what you are looking for 🙂


you might also see frogs, that's also a new thing in 1.19


if you're interested in some self study then this is a fantastic resource

👀 1

this touches upon almost every aspect of the game


My kids are super curious about why I see white frogs. They shouldn't be white in the Mangrove they tell me. 😃


The Mangrove Swamp is considered a warm biome, and warm biomes spawn white frogs


Yeah, kids said it needs to be a warm biome for the frogs to spawn white. They have apparently gotten it wrong about that the Mangrove is not a warm biome.


Apple Silicon then... I read about up to 100x speedups with Minecraft. That's not super important to me, but I think it should give me much longer runs on the battery alone, so want to get it working. The start-client script still gives me grief with this, but using the official launcher works great. I have 90fps now with default settings. Am I losing any hackabilities by doing it this way?


no, not at all. I only included bin/start-client so people could get up to speed quickly


if you're running the official launcher then you can also set online-mode=true in That way you'll get your actual skin (if you set one) instead of the generic default one.

🙏 1

My block-writer can now use FigFonts 😃

😍 2