Skip to content

Commit

Permalink
feat: add support for spigot 1.20.5 / v1_20_R4
Browse files Browse the repository at this point in the history
  • Loading branch information
SpraxDev committed May 1, 2024
1 parent 7ccf307 commit 06bd403
Show file tree
Hide file tree
Showing 22 changed files with 1,433 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .github/actions/setup_project_workspace/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,13 @@ runs:
with:
versions: 1.18.1, 1.18.2, 1.19, 1.19.2, 1.19.3, 1.19.4, 1.20.1, 1.20.2, 1.20.4
remapped: true

- uses: actions/setup-java@v4
with:
java-version: 21
distribution: adopt

- uses: SpraxDev/Action-SpigotMC@v5
with:
versions: 1.20.5
remapped: true
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public enum ServerVersion {
VERSION_TO_REVISION.put("1.20.2", "v1_20_R2");
VERSION_TO_REVISION.put("1.20.3", "v1_20_R3");
VERSION_TO_REVISION.put("1.20.4", "v1_20_R3");
VERSION_TO_REVISION.put("1.20.5", "v1_20_R4");

if (Bukkit.getServer() != null) {
String srvPackage = Bukkit.getServer().getClass().getPackage().getName();
Expand Down
89 changes: 89 additions & 0 deletions NMS/NMS-v1_20_R4/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.craftaro</groupId>
<artifactId>CraftaroCore-Modules</artifactId>
<version>3.0.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>CraftaroCore-NMS-v1_20_R4</artifactId>

<properties>
<java.version>21</java.version>
<java.release>21</java.release>

<nms.ver>1.20.5-R0.1-SNAPSHOT</nms.ver>
</properties>

<build>
<plugins>
<plugin>
<groupId>net.md-5</groupId>
<artifactId>specialsource-maven-plugin</artifactId>
<version>2.0.3</version>

<executions>
<execution>
<id>remap-obf</id>
<phase>package</phase>
<goals>
<goal>remap</goal>
</goals>

<configuration>
<srgIn>org.spigotmc:minecraft-server:${nms.ver}:txt:maps-mojang</srgIn>
<reverse>true</reverse>
<remappedDependencies>org.spigotmc:spigot:${nms.ver}:jar:remapped-mojang</remappedDependencies>
<remappedArtifactAttached>true</remappedArtifactAttached>
<remappedClassifierName>remapped-obf</remappedClassifierName>
</configuration>
</execution>

<execution>
<id>remap-spigot</id>
<phase>package</phase>
<goals>
<goal>remap</goal>
</goals>

<configuration>
<inputFile>${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar</inputFile>
<srgIn>org.spigotmc:minecraft-server:${nms.ver}:csrg:maps-spigot</srgIn>
<remappedDependencies>org.spigotmc:spigot:${nms.ver}:jar:remapped-obf</remappedDependencies>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

<dependencies>
<!--suppress VulnerableLibrariesLocal -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>${nms.ver}</version>
<classifier>remapped-mojang</classifier>
<scope>provided</scope>
</dependency>

<!--suppress VulnerableLibrariesLocal -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>CraftaroCore-NMS-API</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>CraftaroCore-Compatibility</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package com.craftaro.core.nms.v1_20_R4;

import com.craftaro.core.nms.NmsImplementations;
import com.craftaro.core.nms.entity.NMSPlayer;
import com.craftaro.core.nms.entity.NmsEntity;
import com.craftaro.core.nms.nbt.NBTCore;
import com.craftaro.core.nms.v1_20_R4.anvil.AnvilCore;
import com.craftaro.core.nms.v1_20_R4.entity.NMSPlayerImpl;
import com.craftaro.core.nms.v1_20_R4.entity.NmsEntityImpl;
import com.craftaro.core.nms.v1_20_R4.nbt.NBTCoreImpl;
import com.craftaro.core.nms.v1_20_R4.world.NmsWorldBorderImpl;
import com.craftaro.core.nms.v1_20_R4.world.WorldCoreImpl;
import com.craftaro.core.nms.world.NmsWorldBorder;
import com.craftaro.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;

public class NmsImplementationsImpl implements NmsImplementations {
private final NmsEntity entity;
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final com.craftaro.core.nms.anvil.AnvilCore anvil;
private final NBTCore nbt;

public NmsImplementationsImpl() {
this.entity = new NmsEntityImpl();
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new AnvilCore();
this.nbt = new NBTCoreImpl();
}

@Override
public @NotNull NmsEntity getEntity() {
return this.entity;
}

@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}

@Override
public @NotNull WorldCore getWorld() {
return this.world;
}

@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}

@Override
public @NotNull com.craftaro.core.nms.anvil.AnvilCore getAnvil() {
return this.anvil;
}

@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.craftaro.core.nms.v1_20_R4.anvil;

import com.craftaro.core.nms.anvil.CustomAnvil;
import net.minecraft.server.level.ServerPlayer;
import org.bukkit.craftbukkit.v1_20_R4.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.inventory.InventoryHolder;

public class AnvilCore implements com.craftaro.core.nms.anvil.AnvilCore {
@Override
public CustomAnvil createAnvil(Player player) {
ServerPlayer p = ((CraftPlayer) player).getHandle();
return new AnvilView(p.nextContainerCounter(), p, null);
}

@Override
public CustomAnvil createAnvil(Player player, InventoryHolder holder) {
ServerPlayer p = ((CraftPlayer) player).getHandle();
return new AnvilView(p.nextContainerCounter(), p, holder);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.craftaro.core.nms.v1_20_R4.anvil;

import net.minecraft.world.Container;
import net.minecraft.world.inventory.AnvilMenu;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_20_R4.inventory.CraftInventoryAnvil;
import org.bukkit.inventory.InventoryHolder;

public class AnvilInventoryCustom extends CraftInventoryAnvil {
final InventoryHolder holder;

public AnvilInventoryCustom(InventoryHolder holder, Location location, Container inventory, Container resultInventory, AnvilMenu container) {
super(location, inventory, resultInventory, container);

this.holder = holder;
}

@Override
public InventoryHolder getHolder() {
return this.holder;
}
}
Loading

0 comments on commit 06bd403

Please sign in to comment.