Algent 40bb1b71b7 refactor: port PacketScheduler to Java
IScheduledPacketPart is descriptor-identical and schedulePacket is unchanged.
TScheduledPacketPart.read stays abstract: TMultiPart declares read, so a
default would be shadowed and a part would silently read a description instead
of a mask. The dispatch that lived in the $class helper is now the interface
static readMask, with the one-line forwarder documented on read.

writeScheduled and readScheduled became defaults. TMultiPart declares neither,
and empty bodies are what mixing the Scala trait in already gave a Scala
implementor -- only Java implementors ever had to write them out.

sendScheduled is public because the reference's private[multipart] reaches the
handler package and Java has no equivalent scope. An unsupported mask width now
throws IllegalArgumentException rather than scala.MatchError; both are
RuntimeException and the map is still left uncleared on that path, as before.

Dropped PacketScheduler$, TScheduledPacketPart$class and two closure classes,
none referenced in bytecode or by reflective name.

118 plain-JVM tests and 18 Forge server tests pass.
2026-08-15 17:04:41 +02:00
2026-04-27 13:42:24 +02:00
2023-01-19 15:33:54 +00:00
2025-06-03 12:52:42 -06:00
2026-08-14 16:52:22 +02:00
2022-01-17 22:09:17 -08:00
2026-04-27 13:42:24 +02:00
2026-03-08 19:23:42 +01:00
2021-11-19 23:01:31 +01:00
2013-06-26 21:26:28 +10:00
2013-07-31 20:55:14 +10:00
2023-06-27 17:23:32 +09:00
2026-04-27 13:42:24 +02:00

ForgeMultipart

An API for dynamically handling different functional parts in the one block space.

Requirements:

  • The latest version of CCL (files.minecraftforge.net/CodeChickenLib/)
  • Forge
  • A scala compatible IDE and project (For eclipse, download the scala eclipse plugin and right click on the project -> Add Scala Nature)

If you only want to use the API and not modify it:

  • Download the latest dev version from files.minecraftforge.net/ForgeMultipart/
  • Download the latest dev version of CCL.
  • Place both mods in your /libs/ folder and link them as libraries in your IDE.

Implementation of all parts of the API should be clean and easy in Java. The minecraft multipart mod is implemented in java as a test case.

S
Description
No description provided
Readme
4.1 MiB
0 Stars 1 Watchers 0 Forks
Languages
Scala 85.4%
Java 14.6%