repo for my hex addons :3
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

networking fixes

+22 -27
+1 -2
src/main/resources/mica.mixins.json
··· 7 7 "BrainMixin", 8 8 "FlintAndSteelItemMixin", 9 9 "ItemMixin", 10 - "SerializableMixin", 11 - "ServerPlayNetworkingContextMixin" 10 + "SerializableMixin" 12 11 ], 13 12 "plugin": "org.net.eu.pool.mica.Plugin", 14 13 "injectors": {
+20 -15
src/main/scala/org/net/eu/pool/mica/Mica.scala
··· 394 394 395 395 class unsafe extends Annotation 396 396 397 - case class ByteRepr[+T] private[ByteRepr](bytes: IArray[Byte]) extends AnyVal 397 + case class ByteRepr[+T] private[ByteRepr](bytes: IArray[Byte]) extends AnyVal: 398 + @unsafe def asReprOf[R]: ByteRepr[R] = this.asInstanceOf[ByteRepr[R]] 398 399 object ByteRepr: 399 - def fromBytes(bytes: IArray[Byte]): ByteRepr[?] = bytes.asInstanceOf[Array[Byte]] 400 + def fromBytes(bytes: IArray[Byte]): ByteRepr[?] = ByteRepr(bytes) 400 401 given [T] => Conversion[T, ByteRepr[T]] = x => ByteRepr(ByteArrayOutputStream().tap(ObjectOutputStream(_).writeObject(x)).toByteArray.assumeImmutable) 401 402 given [T] => Conversion[ByteRepr[T], T] = x => ObjectInputStream(ByteArrayInputStream(x.bytes.assumeWillNotMutate)).readObject().asInstanceOf[T] 402 403 import ByteRepr.given ··· 411 412 412 413 trait ServerExecutor private[mica](): 413 414 def run(body: ClientExecutor ?=> Unit): Unit 414 - trait ClientExecutor private[mica](val player: ServerPlayerEntity): 415 - def run(body: ServerExecutor ?=> Unit): Unit 416 - 417 - def toPlayer[R](player: ServerPlayerEntity)(body: ClientExecutor ?=> R): R = 418 - given ClientExecutor(player): 419 - override def run(body: => Unit): Unit = 420 - ServerPlayNetworking.send(this.player, SidedExecutePacket[Unit](_ => body)) 421 - body 415 + class ClientExecutor private[mica](val player: ServerPlayerEntity): 416 + def run(body: ServerExecutor ?=> Unit): Unit = 417 + ServerPlayNetworking.send(this.player, SidedExecutePacket[ServerExecutor](body(using _))) 422 418 423 419 def runOnServer(body: ClientExecutor ?=> Unit)(using e: ServerExecutor): Unit = e.run(body) 424 420 def runOnClient(body: ServerExecutor ?=> Unit)(using e: ClientExecutor): Unit = e.run(body) 425 - def runOnClient(who: ServerPlayerEntity)(body: ServerExecutor ?=> Unit): Unit = 426 - toPlayer(who): 427 - runOnClient(_ ?=> body) 421 + def runOn(player: ServerPlayerEntity)(body: ServerExecutor ?=> Unit): Unit = 422 + given ClientExecutor = ClientExecutor(player) 423 + runOnClient(_ ?=> body) 428 424 429 425 // divert(-1) 430 426 trait ByteCodec[T]: ··· 1338 1334 cursedRegister(Identifier.of("mica", "rune_probe"), Item.Settings()): 1339 1335 new Item(_): 1340 1336 override def useOnBlock(ctx: ItemUsageContext): ActionResult = 1341 - Exception("Rune stuff").printStackTrace() 1337 + Exception("Rune stuff #1").printStackTrace() 1338 + ctx.getPlayer match 1339 + case p: ServerPlayerEntity => 1340 + runOn(p): 1341 + Exception("Rune stuff #2").printStackTrace() 1342 + runOnServer: 1343 + Exception("Rune stuff #3").printStackTrace() 1344 + runOnClient: 1345 + Exception("Rune stuff #4").printStackTrace() 1346 + case _ => println("no.") 1342 1347 val p = ctx.getHitPos 1343 1348 val q = BlockPos.Mutable((p.x * 4).round.toInt, (p.y * 8).round.toInt, (p.z * 4).round.toInt) 1344 1349 val b = BlockPos.Mutable(p.x, p.y, p.z) ··· 1635 1640 catch case e => () 1636 1641 PayloadTypeRegistry.playC2S.register(SidedExecutePacket.id, SidedExecutePacket.codec) 1637 1642 PayloadTypeRegistry.playS2C.register(SidedExecutePacket.id, SidedExecutePacket.codec) 1638 - ServerPlayNetworking.registerGlobalReceiver[SidedExecutePacket[ClientExecutor]](SidedExecutePacket.id, (p, ctx) => p.payload(toPlayer(ctx.player))) 1643 + ServerPlayNetworking.registerGlobalReceiver[SidedExecutePacket[ClientExecutor]](SidedExecutePacket.id, (p, ctx) => p.payload(ClientExecutor(ctx.player))) 1639 1644 1640 1645 def println(msg: Any): Unit = logger.info(msg.toString)
+1 -1
src/main/scala/org/net/eu/pool/mica/mixin/SerializableMixin.java
··· 8 8 import java.io.Serializable; 9 9 10 10 @Mixin({forloop(n,1,22,<[[<[[scala.Function]]>n<[[.class, ]]>]]>)FunctionXXL.class, Product.class, Identifier.class}) 11 - public class SerializableMixin implements Serializable {} 11 + public interface SerializableMixin extends Serializable {}
-9
src/main/scala/org/net/eu/pool/mica/mixin/ServerPlayNetworkingContextMixin.java
··· 1 - package org.net.eu.pool.mica.mixin; 2 - 3 - import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; 4 - import org.net.eu.pool.mica.ClientExecutor; 5 - import org.spongepowered.asm.mixin.Mixin; 6 - 7 - @Mixin(ServerPlayNetworking.Context.class) 8 - public class ServerPlayNetworkingContextMixin implements ClientExecutor { 9 - }