Update paperweight & build config for Spigot changes

This commit is contained in:
Kyle Wood 2021-06-11 06:23:18 -05:00
parent 211b20ffa5
commit 604ebc2cac
No known key found for this signature in database
GPG key ID: 86AF5613ACA30CC5
12 changed files with 44 additions and 5607 deletions

7
.giattributes Normal file
View file

@ -0,0 +1,7 @@
* text=auto
*.sh text eol=lf
gradlew text eol=lf
*.bat text eol=crlf
*.jar binary

3
.gitignore vendored
View file

@ -1,3 +1,6 @@
.gradle/
build/
# Eclipse stuff # Eclipse stuff
.classpath .classpath
.project .project

View file

@ -3,22 +3,20 @@
# Hopper.getLevel() # Hopper.getLevel()
# Entity.getCommandSenderWorld() # Entity.getCommandSenderWorld()
# to getWorld(), which confuses our ability to map this method properly. This patch disambiguates it # to getWorld(), which confuses our ability to map this method properly. This patch disambiguates it
net/minecraft/world/level/block/entity/IHopper v ()Lnet/minecraft/world/level/World; getLevel net/minecraft/world/item/trading/IMerchant fD ()Lnet/minecraft/world/level/World; getLevel
net/minecraft/world/entity/vehicle/EntityMinecartHopper v ()Lnet/minecraft/world/level/World; getLevel net/minecraft/world/entity/npc/EntityVillagerAbstract fD ()Lnet/minecraft/world/level/World; getLevel
net/minecraft/world/item/trading/IMerchant eV ()Lnet/minecraft/world/level/World; getLevel
net/minecraft/world/entity/npc/EntityVillagerAbstract eV ()Lnet/minecraft/world/level/World; getLevel
# CraftBukkit mappings sometimes have mappings for child classes and not parent classes # CraftBukkit mappings sometimes have mappings for child classes and not parent classes
# We handle this fine for deobf but this breaks reobf. These Patches fix those cases # We handle this fine for deobf but this breaks reobf. These Patches fix those cases
# BossBattle -> BossBattleServer # BossBattle -> BossBattleServer
net/minecraft/world/BossBattle a (F)V setProgress # net/minecraft/world/BossBattle a (F)V setProgress
net/minecraft/world/BossBattle c (Z)Lnet/minecraft/world/BossBattle; setCreateFog # net/minecraft/world/BossBattle c (Z)Lnet/minecraft/world/BossBattle; setCreateFog
net/minecraft/world/BossBattle a (Z)Lnet/minecraft/world/BossBattle; setDarkenSky # net/minecraft/world/BossBattle a (Z)Lnet/minecraft/world/BossBattle; setDarkenSky
net/minecraft/world/BossBattle b (Z)Lnet/minecraft/world/BossBattle; setPlayMusic # net/minecraft/world/BossBattle b (Z)Lnet/minecraft/world/BossBattle; setPlayMusic
# IChunkProvider -> ChunkProviderServer # IChunkProvider -> ChunkProviderServer
net/minecraft/world/level/chunk/IChunkProvider b (II)Z isLoaded # net/minecraft/world/level/chunk/IChunkProvider b (II)Z isLoaded
# BehaviorWorkComposter -> BehaviorWork # BehaviorWorkComposter -> BehaviorWork
net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter a (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/npc/EntityVillager;)V doWork # net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter a (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/npc/EntityVillager;)V doWork

View file

@ -1,17 +0,0 @@
--- a/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.patch
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.patch
@@ -1,14 +1,5 @@
--- a/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.java
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.java
-@@ -24,7 +24,7 @@
- public BehaviorWorkComposter() {}
-
- @Override
-- protected void a(WorldServer worldserver, EntityVillager entityvillager) {
-+ protected void doWork(WorldServer worldserver, EntityVillager entityvillager) { // PAIL
- Optional<GlobalPos> optional = entityvillager.getBehaviorController().getMemory(MemoryModuleType.JOB_SITE);
-
- if (optional.isPresent()) {
@@ -43,7 +43,7 @@
BlockPosition blockposition = globalpos.getBlockPosition();

View file

@ -1,40 +0,0 @@
--- a/net/minecraft/server/level/ChunkProviderServer.patch
+++ b/net/minecraft/server/level/ChunkProviderServer.patch
@@ -74,8 +74,8 @@
+ return playerchunk == null || playerchunk.oldTicketLevel > i; // CraftBukkit using oldTicketLevel for isLoaded checks
}
- public boolean isLoaded(int i, int j) {
-@@ -282,19 +308,19 @@
+ @Override
+@@ -283,19 +309,19 @@
public boolean a(Entity entity) {
long i = ChunkCoordIntPair.pair(MathHelper.floor(entity.locX()) >> 4, MathHelper.floor(entity.locZ()) >> 4);
@@ -98,7 +98,7 @@
}
private boolean a(long i, Function<PlayerChunk, CompletableFuture<Either<Chunk, PlayerChunk.Failure>>> function) {
-@@ -316,11 +342,31 @@
+@@ -317,11 +343,31 @@
@Override
public void close() throws IOException {
@@ -131,7 +131,7 @@
public void tick(BooleanSupplier booleansupplier) {
this.world.getMethodProfiler().enter("purge");
this.chunkMapDistance.purgeTickets();
-@@ -340,12 +386,12 @@
+@@ -341,12 +387,12 @@
this.lastTickTime = i;
WorldData worlddata = this.world.getWorldData();
boolean flag = this.world.isDebugWorld();
@@ -146,7 +146,7 @@
this.world.getMethodProfiler().enter("naturalSpawnCount");
int l = this.chunkMapDistance.b();
-@@ -532,12 +578,18 @@
+@@ -533,12 +579,18 @@
@Override
protected boolean executeNext() {

View file

@ -10,41 +10,41 @@ c net/minecraft/world/level/World net/minecraft/world/level/Level
# CraftBukkit adds the server field, clashes with a Mojang field # CraftBukkit adds the server field, clashes with a Mojang field
c net/minecraft/server/network/PlayerConnection net/minecraft/server/network/ServerGamePacketListenerImpl c net/minecraft/server/network/PlayerConnection net/minecraft/server/network/ServerGamePacketListenerImpl
f Lorg/bukkit/craftbukkit/CraftServer; server craftServer m ()Lorg/bukkit/craftbukkit/entity/CraftPlayer; getPlayer getCraftPlayer
# CraftBukkit adds the player field, clashes with a Mojang field # CraftBukkit adds the player field, clashes with a Mojang field
c net/minecraft/world/inventory/ContainerWorkbench net/minecraft/world/inventory/CraftingMenu #c net/minecraft/world/inventory/ContainerWorkbench net/minecraft/world/inventory/CraftingMenu
f Lnet/minecraft/world/entity/player/PlayerInventory; player playerInventory # f Lnet/minecraft/world/entity/player/PlayerInventory; player playerInventory
# CraftBukkit adds the getType() method, clashes with a Mojang method # CraftBukkit adds the getType() method, clashes with a Mojang method
c net/minecraft/world/entity/EntityAreaEffectCloud net/minecraft/world/entity/AreaEffectCloud c net/minecraft/world/entity/EntityAreaEffectCloud net/minecraft/world/entity/AreaEffectCloud
m ()Ljava/lang/String; getType getTypeCb m ()Ljava/lang/String; getType getPotionType
# CraftBukkit adds the getType() method, clashes with a Mojang method # CraftBukkit adds the getType() method, clashes with a Mojang method
c net/minecraft/world/entity/projectile/EntityTippedArrow net/minecraft/world/entity/projectile/Arrow c net/minecraft/world/entity/projectile/EntityTippedArrow net/minecraft/world/entity/projectile/Arrow
m ()Ljava/lang/String; getType getTypeCb m ()Ljava/lang/String; getType getPotionType
# CraftBukkit adds the getLevel() method, clashes with original method # CraftBukkit adds the getLevel() method, clashes with original method
c net/minecraft/world/level/block/entity/TileEntityBeacon net/minecraft/world/level/block/entity/BeaconBlockEntity #c net/minecraft/world/level/block/entity/TileEntityBeacon net/minecraft/world/level/block/entity/BeaconBlockEntity
m ()I getLevel getLevelCb # m ()I getLevel getLevelCb
# CraftBukkit adds the getLootTable() method, clashes with original method # CraftBukkit adds the getLootTable() method, clashes with original method
c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob #c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob
m ()Lnet/minecraft/resources/MinecraftKey; getLootTable getLootTableCb # m ()Lnet/minecraft/resources/MinecraftKey; getLootTable getLootTableCb
# CraftBukkit adds the canCollideWith() method, clashes with original method # CraftBukkit adds the canCollideWith() method, clashes with original method
c net/minecraft/world/entity/Entity net/minecraft/world/entity/Entity #c net/minecraft/world/entity/Entity net/minecraft/world/entity/Entity
m (Lnet/minecraft/world/entity/Entity;)Z canCollideWith canCollideWithCb # m (Lnet/minecraft/world/entity/Entity;)Z canCollideWith canCollideWithCb
# CraftBukkit adds a new `a` method which allows passing the Entity parameter # CraftBukkit adds a new `a` method which allows passing the Entity parameter
# It uses `a` to match the original method (with just 1 param), so this patch makes them match # It uses `a` to match the original method (with just 1 param), so this patch makes them match
c net/minecraft/server/level/WorldServer net/minecraft/server/level/ServerLevel #c net/minecraft/server/level/WorldServer net/minecraft/server/level/ServerLevel
m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/Entity;)V a makeObsidianPlatform # m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/Entity;)V a makeObsidianPlatform
# CraftBukkit adds `getMinecraftWorld()` to `GeneratorAccess`, which matches `WorldAccess.getMinecraftWorld()` # CraftBukkit adds `getMinecraftWorld()` to `GeneratorAccess`, which matches `WorldAccess.getMinecraftWorld()`
# But that method in `WorldAccess` is called `getLevel()` in Mojang mappings # But that method in `WorldAccess` is called `getLevel()` in Mojang mappings
c net/minecraft/world/level/GeneratorAccess net/minecraft/world/level/LevelAccessor #c net/minecraft/world/level/GeneratorAccess net/minecraft/world/level/LevelAccessor
m ()Lnet/minecraft/server/level/WorldServer; getMinecraftWorld getLevel # m ()Lnet/minecraft/server/level/WorldServer; getMinecraftWorld getLevel
# SpecialSource2 automatically maps methods to the name of synthetic methods that point to it in an attempt to # SpecialSource2 automatically maps methods to the name of synthetic methods that point to it in an attempt to
# normalize method names with what is expected by the super class. This is _extremely_ stupid and flawed however # normalize method names with what is expected by the super class. This is _extremely_ stupid and flawed however
@ -68,9 +68,9 @@ c net/minecraft/world/level/GeneratorAccess net/minecraft/world/level/LevelAcces
# This is allowed because the synthetic method for serialize() has a different descriptor, using Object as the second # This is allowed because the synthetic method for serialize() has a different descriptor, using Object as the second
# parameter. This breaks when SpecialSource2 does it's "magic" of course. This patch manually fixes this case by adding # parameter. This breaks when SpecialSource2 does it's "magic" of course. This patch manually fixes this case by adding
# both correct mappings # both correct mappings
c net/minecraft/world/level/storage/loot/entries/LootEntryAbstract$Serializer net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer$Serializer #c net/minecraft/world/level/storage/loot/entries/LootEntryAbstract$Serializer net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer$Serializer
m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V a serialize # m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V a serialize
p 0 json # p 0 json
p 1 entry # p 1 entry
p 2 context # p 2 context
m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V serializeType serializeCustom # m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V serializeType serializeCustom

View file

@ -1,7 +1,7 @@
plugins { plugins {
java java
id("com.github.johnrengelman.shadow") version "7.0.0" apply false id("com.github.johnrengelman.shadow") version "7.0.0" apply false
id("io.papermc.paperweight") version "1.0.0-SNAPSHOT" id("io.papermc.paperweight.core") version "1.0.0-SNAPSHOT"
} }
group = "com.destroystokyo.paper" group = "com.destroystokyo.paper"
@ -15,7 +15,7 @@ allprojects {
java { java {
toolchain { toolchain {
languageVersion.set(JavaLanguageVersion.of(11)) languageVersion.set(JavaLanguageVersion.of(16))
} }
} }
} }
@ -62,7 +62,7 @@ repositories {
} }
dependencies { dependencies {
paramMappings("org.quiltmc:yarn:1.16.5+build.6:mergedv2") paramMappings("org.quiltmc:yarn:1.17+build.2:mergedv2")
remapper("org.quiltmc:tiny-remapper:0.3.2:fat@jar") remapper("org.quiltmc:tiny-remapper:0.3.2:fat@jar")
decompiler("net.minecraftforge:forgeflower:1.5.498.5@jar") decompiler("net.minecraftforge:forgeflower:1.5.498.5@jar")
paperclip("io.papermc:paperclip:2.0.0-SNAPSHOT@jar") paperclip("io.papermc:paperclip:2.0.0-SNAPSHOT@jar")
@ -77,7 +77,5 @@ paperweight {
mappingsPatch.set(file("build-data/mappings-patch.tiny")) mappingsPatch.set(file("build-data/mappings-patch.tiny"))
additionalSpigotMemberMappings.set(file("build-data/additional-spigot-member-mappings.csrg")) additionalSpigotMemberMappings.set(file("build-data/additional-spigot-member-mappings.csrg"))
craftBukkitPatchPatchesDir.set(file("build-data/craftbukkit-patch-patches"))
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,3 @@
mcVersion = 1.16 mcVersion = 1.17
projectVersion = 1.17-R0.1-SNAPSHOT projectVersion = 1.17-R0.1-SNAPSHOT
packageVersion = 1_17_R1 packageVersion = 1_17_R1

258
paper
View file

@ -1,258 +0,0 @@
#!/usr/bin/env bash
# resolve shell-specifics
case "$(echo "$SHELL" | sed -E 's|/usr(/local)?||g')" in
"/bin/zsh")
RCPATH="$HOME/.zshrc"
SOURCE="${BASH_SOURCE[0]:-${(%):-%N}}"
;;
*)
RCPATH="$HOME/.bashrc"
if [[ -f "$HOME/.bash_aliases" ]]; then
RCPATH="$HOME/.bash_aliases"
fi
SOURCE="${BASH_SOURCE[0]}"
;;
esac
# get base dir regardless of execution location
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
SOURCE=$([[ "$SOURCE" = /* ]] && echo "$SOURCE" || echo "$PWD/${SOURCE#./}")
basedir=$(dirname "$SOURCE")
gitcmd="git -c commit.gpgsign=false"
source "$basedir/scripts/functions.sh"
"$basedir"/scripts/requireDeps.sh || exit 1
failed=0
case "$1" in
"rb" | "rbp" | "rebuild")
(
set -e
cd "$basedir"
scripts/rebuildPatches.sh "$basedir" $2 || exit 1
) || failed=1
;;
"rbf" | "rbfull")
(
set -e
cd "$basedir"
scripts/rebuildPatches.sh "$basedir" "nofilter" || exit 1
) || failed=1
;;
"p" | "patch")
(
set -e
cd "$basedir"
scripts/build.sh "$basedir" || exit 1
) || failed=1
;;
"j" | "jar")
(
set -e
cd "$basedir"
scripts/build.sh "$basedir" "--jar" || exit 1
) || failed=1
;;
"b" | "build")
(
set -e
cd "$basedir"
scripts/build.sh "$basedir" || exit 1
(cd Paper-API ; mvn clean install) || exit 1
(cd Paper-MojangAPI ; mvn clean install) || exit 1
(cd Paper-Server ; mvn clean package) || exit 1
echo "Paper jar successfully built"
ls -la Paper-Server/target/paper*.jar
) || failed=1
;;
"i" | "install")
(
set -e
cd "$basedir"
scripts/build.sh "$basedir" || exit 1
mvn clean install || exit 1
echo "Paper jar successfully built and installed to local repo"
) || failed=1
;;
"pc" | "paperclip")
(
set -e
cd "$basedir"
scripts/paperclip.sh "$basedir" || exit 1
) || failed=1
;;
"make")
(
if [[ "$2" = "bacon" ]] ; then
set -e
cd "$basedir"
scripts/build.sh "$basedir" "--jar"
fi
)
;;
"m" | "mcdev")
(
set -e
cd "$basedir"
scripts/makemcdevsrc.sh "$basedir"
)
;;
"t" | "test" | "testserver")
(
cd "$basedir"
shift
scripts/testServer.sh "$basedir" "$@"
)
;;
"td" | "testdir")
cd "${PAPER_TEST_DIR:-$basedir/work/test-server}"
;;
"u" | "up" | "upstream")
(
cd "$basedir"
scripts/upstreamMerge.sh "$basedir" "$2"
)
;;
"cu" | "commitup" | "commitupstream" | "upc" | "upcommit" | "upstreamcommit")
(
cd "$basedir"
shift
scripts/upstreamCommit.sh "$@"
)
;;
"r" | "root")
cd "$basedir"
;;
"a" | "api")
cd "$basedir/Paper-API"
;;
"s" | "server")
cd "$basedir/Paper-Server"
;;
"c" | "clean")
rm -rf Paper-API
rm -rf Paper-Server
rm -rf work
echo "Cleaned build files"
;;
"con" | "continue")
if [ -d ".git/rebase-apply" ]; then
git -c commit.gpgsign=false am --continue
elif [ -d ".git/rebase-merge" ]; then
git -c commit.gpgsign=false rebase --continue
fi
;;
"e" | "edit")
case "$2" in
"s" | "server")
mkdir -p "$basedir/work/Temp"
echo "$basedir/Paper-Server" > "$basedir/work/Temp/PAPER_LAST_EDIT"
cd "$basedir/Paper-Server"
(
set -e
paperstash
$gitcmd rebase -i upstream/upstream
paperunstash
)
;;
"a" | "api")
mkdir -p "$basedir/work/Temp"
echo "$basedir/Paper-API" > "$basedir/work/Temp/PAPER_LAST_EDIT"
cd "$basedir/Paper-API"
(
set -e
paperstash
$gitcmd rebase -i upstream/upstream
paperunstash
)
;;
"c" | "continue")
cd "$( < "$basedir/work/Temp/PAPER_LAST_EDIT")"
rm -f "$basedir/work/Temp/PAPER_LAST_EDIT"
(
set -e
$gitcmd add .
$gitcmd commit --amend
$gitcmd rebase --continue
cd "$basedir"
scripts/rebuildPatches.sh "$basedir"
)
;;
*)
echo "You must edit either the api or server."
;;
esac
;;
"setup")
if [[ -f "$RCPATH" ]] ; then
NAME="paper"
if [[ ! -z "${2+x}" ]] ; then
NAME="$2"
fi
(grep "alias $NAME=" "$RCPATH" > /dev/null) && (sed -i "s|alias $NAME=.*|alias $NAME='. $SOURCE'|g" "$RCPATH") || (echo "alias $NAME='. $SOURCE'" >> "$RCPATH")
alias "$NAME=. $SOURCE"
echo "You can now just type '$NAME' at any time to access the paper tool."
else
echo "We were unable to setup the paper build tool alias: $RCPATH is missing"
fi
;;
*)
echo "PaperMC build tool command. This provides a variety of commands to build and manage the PaperMC build"
echo "environment. For all of the functionality of this command to be available, you must first run the"
echo "'setup' command. View below for details. For essential building and patching, you do not need to do the setup."
echo ""
echo " Normal commands:"
echo " * rb, rebuild | Rebuild patches, can be called from anywhere."
echo " * p, patch | Apply all patches to the project without building it. Can be run from anywhere."
echo " * j, jar | Apply all patches and build the project, paperclip.jar will be output. Can be run from anywhere."
echo " * i, install | Build and install paper into the local repo. Can be run from anywhere."
echo " * m, mcdev | Setup decompiled sources for non-modified NMS files to be imported into an IDE. Can be run from anywhere."
echo " * u, up, upstream | Updates the submodules used by Paper to their latest upstream versions."
echo " * upc, upstreamcommit | Creates the correctly-formatted upstream commit after updating upstream."
echo " * c, clean | Removes all generated files, Paper-API, Paper-Server, and work."
echo " * t, testserver | Run the test server with the set of plugins Paper uses as a basis for server tests."
echo " * con, continue | Shortcut command for running git am --continue, or git rebase --continue."
echo ""
echo " These commands require the setup command before use:"
echo " * r, root | Change directory to the root of the project."
echo " * a. api | Move to the Paper-API directory."
echo " * s, server | Move to the Paper-Server directory."
echo " * td, testdirectory | Move to the test-server directory."
echo " * e, edit | Use to edit a specific patch, give it the argument \"server\" or \"api\""
echo " | respectively to edit the correct project. Use the argument \"continue\" after"
echo " | the changes have been made to finish and rebuild patches. Can be called from anywhere."
echo ""
echo " * setup | Add an alias to $RCPATH to allow full functionality of this script. Run as:"
echo " | . ./paper setup"
echo " | After you run this command you'll be able to just run 'paper' from anywhere."
echo " | The default name for the resulting alias is 'paper', you can give an argument to override"
echo " | this default, such as:"
echo " | . ./paper setup example"
echo " | Which will allow you to run 'example' instead."
;;
esac
unset RCPATH
unset SOURCE
unset basedir
unset -f color
unset -f colorend
unset -f paperstash
unset -f paperunstash
if [[ "$failed" == "1" ]]; then
unset failed
false
else
unset failed
true
fi

55
pom.xml
View file

@ -1,55 +0,0 @@
<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>
<!-- Avoid making changes to this file, it has to be deployed manually -->
<groupId>com.destroystokyo.paper</groupId>
<artifactId>paper-parent</artifactId>
<version>dev-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Paper-Parent</name>
<description>Parent project for all Paper modules.</description>
<url>https://github.com/PaperMC/Paper</url>
<modules>
<module>Paper-API</module>
<module>Paper-MojangAPI</module>
<module>Paper-Server</module>
</modules>
<build>
<defaultGoal>clean install</defaultGoal>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>md_5-releases</id>
<url>https://repo.md-5.net/content/repositories/releases/</url>
</repository>
<repository>
<id>aikar</id>
<url>https://repo.aikar.co/content/groups/aikar/</url>
</repository>
<repository>
<id>destroystokyo-repo</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>papermc-releases</id>
<url>https://papermc.io/repo/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>papermc-snapshots</id>
<url>https://papermc.io/repo/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>

View file

@ -2,10 +2,9 @@ pluginManagement {
repositories { repositories {
gradlePluginPortal() gradlePluginPortal()
maven("https://wav.jfrog.io/artifactory/repo/") maven("https://wav.jfrog.io/artifactory/repo/")
mavenLocal()
} }
} }
rootProject.name = "Paper" rootProject.name = "Paper"
include("Paper-API", "Paper-Server", "Paper-MojangAPI") include("Paper-API", "Paper-Server")