From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Phoenix616 <max@themoep.de>
Date: Mon, 19 Oct 2020 17:20:53 +0100
Subject: [PATCH] Origami - Fix ProtocolLib issues on Java 15


diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index 65de374d485f31f8cd6f4e03941173565074ea0e..ea86843fa0313da15b905cbd712c15e7b217daa4 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -394,9 +394,9 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
             // note: since the type is not dynamic here, we need to actually copy the old executor code
             // into two branches. On conflict, just re-copy - no changes were made inside the executor code.
             if (flush) {
-                choice1 = () -> {
+                choice1 = new Runnable() { public void run() { // Origami - flatten lambda
                     if (enumprotocol != enumprotocol1) {
-                        this.setProtocol(enumprotocol);
+                        NetworkManager.this.setProtocol(enumprotocol); // Origami - flatten lambda
                     }
 
                     // Paper start
@@ -406,7 +406,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
                     }
                     try {
                         // Paper end
-                        ChannelFuture channelfuture1 = (flush) ? this.channel.writeAndFlush(packet) : this.channel.write(packet); // Tuinity - add flush parameter
+                        ChannelFuture channelfuture1 = (flush) ? NetworkManager.this.channel.writeAndFlush(packet) : NetworkManager.this.channel.write(packet); // Tuinity - add flush parameter // Origami - flatten lambda
 
 
                         if (genericfuturelistener != null) {
@@ -426,12 +426,12 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
                         packet.onPacketDispatchFinish(player, null);
                     }
                     // Paper end
-                };
+                }}; // Origami - flatten lambda
             } else {
                 // explicitly declare a variable to make the lambda use the type
-                choice2 = () -> {
+                choice2 = new AbstractEventExecutor.LazyRunnable() { public void run() { // Origami - flatten lambda
                     if (enumprotocol != enumprotocol1) {
-                        this.setProtocol(enumprotocol);
+                        NetworkManager.this.setProtocol(enumprotocol); // Origami - flatten lambda
                     }
 
                     // Paper start
@@ -441,7 +441,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
                     }
                     try {
                         // Paper end
-                        ChannelFuture channelfuture1 = (flush) ? this.channel.writeAndFlush(packet) : this.channel.write(packet); // Tuinity - add flush parameter
+                        ChannelFuture channelfuture1 = (flush) ? NetworkManager.this.channel.writeAndFlush(packet) : NetworkManager.this.channel.write(packet); // Tuinity - add flush parameter // Origami - flatten lambda
 
 
                         if (genericfuturelistener != null) {
@@ -461,7 +461,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
                         packet.onPacketDispatchFinish(player, null);
                     }
                     // Paper end
-                };
+                }}; // Origami - flatten lambda
             }
             this.channel.eventLoop().execute(choice1 != null ? choice1 : choice2);
             // Tuinity end - optimise packets that are not flushed
