Skip to content

Commit a6e88b0

Browse files
committed
some injections
1 parent 6b19f01 commit a6e88b0

26 files changed

Lines changed: 463 additions & 42 deletions

nms-patches/net/minecraft/nbt/ByteArrayTag.patch

Lines changed: 0 additions & 7 deletions
This file was deleted.

nms-patches/net/minecraft/nbt/IntArrayTag.patch

Lines changed: 0 additions & 7 deletions
This file was deleted.

nms-patches/net/minecraft/nbt/NbtIo.patch

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
--- a/net/minecraft/advancements/AdvancementHolder.java
2+
+++ b/net/minecraft/advancements/AdvancementHolder.java
3+
@@ -5,8 +_,9 @@
4+
import net.minecraft.network.codec.ByteBufCodecs;
5+
import net.minecraft.network.codec.StreamCodec;
6+
import net.minecraft.resources.Identifier;
7+
+import org.teneted.neotenet.injection.advancements.AdvancementHolderInjection;
8+
9+
-public record AdvancementHolder(Identifier id, Advancement value) {
10+
+public record AdvancementHolder(Identifier id, Advancement value) implements AdvancementHolderInjection {
11+
public static final StreamCodec<RegistryFriendlyByteBuf, AdvancementHolder> STREAM_CODEC = StreamCodec.composite(
12+
Identifier.STREAM_CODEC, AdvancementHolder::id, Advancement.STREAM_CODEC, AdvancementHolder::value, AdvancementHolder::new
13+
);

patches/net/minecraft/commands/Commands.java.patch

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
--- a/net/minecraft/commands/Commands.java
22
+++ b/net/minecraft/commands/Commands.java
3+
@@ -155,8 +_,9 @@
4+
import net.minecraft.world.phys.Vec3;
5+
import org.jspecify.annotations.Nullable;
6+
import org.slf4j.Logger;
7+
+import org.teneted.neotenet.injection.commands.CommandsInjection;
8+
9+
-public class Commands {
10+
+public class Commands implements CommandsInjection {
11+
public static final String COMMAND_PREFIX = "/";
12+
private static final ThreadLocal<@Nullable ExecutionContext<CommandSourceStack>> CURRENT_EXECUTION_CONTEXT = new ThreadLocal<>();
13+
private static final Logger LOGGER = LogUtils.getLogger();
314
@@ -299,6 +_,7 @@
415
PublishCommand.register(this.dispatcher);
516
UnpublishCommand.register(this.dispatcher);

patches/net/minecraft/server/MinecraftServer.java.patch

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,46 @@
11
--- a/net/minecraft/server/MinecraftServer.java
22
+++ b/net/minecraft/server/MinecraftServer.java
3-
@@ -296,7 +_,7 @@
3+
@@ -43,6 +_,8 @@
4+
import java.util.function.Function;
5+
import java.util.function.Supplier;
6+
import java.util.stream.Collectors;
7+
+
8+
+import joptsimple.OptionSet;
9+
import net.minecraft.CrashReport;
10+
import net.minecraft.CrashReportCategory;
11+
import net.minecraft.ReportType;
12+
@@ -186,10 +_,15 @@
13+
import net.minecraft.world.phys.Vec2;
14+
import net.minecraft.world.phys.Vec3;
15+
import net.minecraft.world.scores.ScoreboardSaveData;
16+
+import org.bukkit.Bukkit;
17+
+import org.bukkit.craftbukkit.CraftRegistry;
18+
+import org.bukkit.craftbukkit.CraftServer;
19+
+import org.jline.terminal.Terminal;
20+
import org.jspecify.annotations.Nullable;
21+
import org.slf4j.Logger;
22+
+import org.teneted.neotenet.injection.server.MinecraftServerInjection;
23+
24+
-public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements CommandSource, ServerInfo, ChunkIOErrorReporter {
25+
+public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements CommandSource, ServerInfo, ChunkIOErrorReporter, MinecraftServerInjection {
26+
public static final Logger LOGGER = LogUtils.getLogger();
27+
public static final String VANILLA_BRAND = "vanilla";
28+
private static final float AVERAGE_TICK_TIME_SMOOTHING = 0.8F;
29+
@@ -293,10 +_,21 @@
30+
private final PacketProcessor packetProcessor;
31+
private final TimerQueue<MinecraftServer> scheduledEvents;
32+
private final ServerClockManager clockManager;
33+
+ // CraftBukkit start
34+
+ public WorldLoader.DataLoadContext worldLoader;
35+
+ public org.bukkit.craftbukkit.CraftServer server;
36+
+ public OptionSet options;
37+
+ public org.bukkit.command.ConsoleCommandSender console;
38+
+ public Terminal terminal;
39+
+ public static int currentTick = (int) (System.currentTimeMillis() / 50);
40+
+ public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
41+
+ public int autosavePeriod;
42+
+ public Commands vanillaCommandDispatcher;
43+
+ // CraftBukkit end
444

545
public static <S extends MinecraftServer> S spin(Function<Thread, S> factory) {
646
AtomicReference<S> serverReference = new AtomicReference<>();
@@ -277,6 +317,24 @@
277317
public void dumpServerProperties(Path path) throws IOException {
278318
}
279319

320+
@@ -1937,6 +_,17 @@
321+
}
322+
}
323+
324+
+ @Deprecated
325+
+ public static MinecraftServer getServer() {
326+
+ return (Bukkit.getServer() instanceof CraftServer) ? ((CraftServer) Bukkit.getServer()).getServer() : null;
327+
+ }
328+
+
329+
+ @Deprecated
330+
+ public static RegistryAccess getDefaultRegistryAccess() {
331+
+ return CraftRegistry.getMinecraftRegistry();
332+
+ }
333+
+ // CraftBukkit end
334+
+
335+
private ProfilerFiller createProfiler() {
336+
if (this.willStartRecordingMetrics) {
337+
this.metricsRecorder = ActiveMetricsRecorder.createStarted(
280338
@@ -2002,6 +_,10 @@
281339
return this.worldData;
282340
}
@@ -288,6 +346,18 @@
288346
public RegistryAccess.Frozen registryAccess() {
289347
return this.registries.compositeAccess();
290348
}
349+
@@ -2065,6 +_,11 @@
350+
}
351+
}
352+
353+
+ // CraftBukkit start
354+
+ public final java.util.concurrent.ExecutorService chatExecutor = java.util.concurrent.Executors.newCachedThreadPool(
355+
+ new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon(true).setNameFormat("Async Chat Thread - #%d").build());
356+
+ // CraftBukkit end
357+
+
358+
public ChatDecorator getChatDecorator() {
359+
return ChatDecorator.PLAIN;
360+
}
291361
@@ -2073,6 +_,13 @@
292362
return true;
293363
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
--- a/net/minecraft/world/CompoundContainer.java
2+
+++ b/net/minecraft/world/CompoundContainer.java
3+
@@ -3,10 +_,15 @@
4+
import net.minecraft.world.entity.ContainerUser;
5+
import net.minecraft.world.entity.player.Player;
6+
import net.minecraft.world.item.ItemStack;
7+
+import org.bukkit.entity.HumanEntity;
8+
+
9+
+import java.util.List;
10+
11+
public class CompoundContainer implements Container {
12+
public final Container container1;
13+
public final Container container2;
14+
+ // CraftBukkit start - add fields and methods
15+
+ public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
16+
17+
public CompoundContainer(Container container1, Container container2) {
18+
this.container1 = container1;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
--- a/net/minecraft/world/Container.java
2+
+++ b/net/minecraft/world/Container.java
3+
@@ -17,8 +_,9 @@
4+
import org.jspecify.annotations.Nullable;
5+
6+
import net.neoforged.neoforge.common.extensions.ContainerExtension;
7+
+import org.teneted.neotenet.injection.world.ContainerInjection;
8+
9+
-public interface Container extends Clearable, Iterable<ItemStack>, SlotProvider, ContainerExtension {
10+
+public interface Container extends Clearable, Iterable<ItemStack>, SlotProvider, ContainerExtension, ContainerInjection {
11+
float DEFAULT_DISTANCE_BUFFER = 4.0F;
12+
13+
int getContainerSize();

patches/net/minecraft/world/SimpleContainer.java.patch

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,34 @@
11
--- a/net/minecraft/world/SimpleContainer.java
22
+++ b/net/minecraft/world/SimpleContainer.java
3+
@@ -10,12 +_,28 @@
4+
import net.minecraft.world.item.ItemStack;
5+
import net.minecraft.world.level.storage.ValueInput;
6+
import net.minecraft.world.level.storage.ValueOutput;
7+
+import org.bukkit.entity.HumanEntity;
8+
9+
public class SimpleContainer implements Container, StackedContentsCompatible {
10+
private final int size;
11+
public final NonNullList<ItemStack> items;
12+
+ public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
13+
+ protected org.bukkit.inventory.InventoryHolder bukkitOwner;
14+
+
15+
+ public SimpleContainer(SimpleContainer original) {
16+
+ this(original.size);
17+
+ for (int slot = 0; slot < original.size; slot++) {
18+
+ this.items.set(slot, original.items.get(slot).copy());
19+
+ }
20+
+ }
21+
22+
public SimpleContainer(int size) {
23+
+ this(size, null);
24+
+ }
25+
+
26+
+ public SimpleContainer(int size, org.bukkit.inventory.InventoryHolder owner) {
27+
+ this.bukkitOwner = owner;
28+
+ // CraftBukkit end
29+
this.size = size;
30+
this.items = NonNullList.withSize(size, ItemStack.EMPTY);
31+
}
332
@@ -109,8 +_,14 @@
433

534
@Override

patches/net/minecraft/world/level/BlockGetter.java.patch

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
--- a/net/minecraft/world/level/BlockGetter.java
22
+++ b/net/minecraft/world/level/BlockGetter.java
3+
@@ -22,8 +_,9 @@
4+
import org.jspecify.annotations.Nullable;
5+
6+
import net.neoforged.neoforge.common.extensions.IBlockGetterExtension;
7+
+import org.teneted.neotenet.injection.world.level.BlockGetterInjection;
8+
9+
-public interface BlockGetter extends LevelHeightAccessor, IBlockGetterExtension {
10+
+public interface BlockGetter extends LevelHeightAccessor, IBlockGetterExtension, BlockGetterInjection {
11+
@Nullable BlockEntity getBlockEntity(BlockPos pos);
12+
13+
default <T extends BlockEntity> Optional<T> getBlockEntity(BlockPos pos, BlockEntityType<T> type) {
314
@@ -36,7 +_,7 @@
415
FluidState getFluidState(BlockPos pos);
516

0 commit comments

Comments
 (0)