Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-11-20 15:00:11 +01:00
Merge branch 'master' into feature/update-folder
Dieser Commit ist enthalten in:
Commit
afb9a04455
2
.gitignore
vendored
2
.gitignore
vendored
@ -249,6 +249,8 @@ locales/
|
|||||||
/packs/
|
/packs/
|
||||||
/dump.json
|
/dump.json
|
||||||
/saved-refresh-tokens.json
|
/saved-refresh-tokens.json
|
||||||
|
/saved-auth-chains.json
|
||||||
/custom_mappings/
|
/custom_mappings/
|
||||||
/languages/
|
/languages/
|
||||||
/custom-skulls.yml
|
/custom-skulls.yml
|
||||||
|
/permissions.yml
|
||||||
|
@ -15,7 +15,7 @@ The ultimate goal of this project is to allow Minecraft: Bedrock Edition users t
|
|||||||
Special thanks to the DragonProxy project for being a trailblazer in protocol translation and for all the team members who have joined us here!
|
Special thanks to the DragonProxy project for being a trailblazer in protocol translation and for all the team members who have joined us here!
|
||||||
|
|
||||||
## Supported Versions
|
## Supported Versions
|
||||||
Geyser is currently supporting Minecraft Bedrock 1.20.80 - 1.21.3 and Minecraft Java Server 1.21. For more info please see [here](https://geysermc.org/wiki/geyser/supported-versions/).
|
Geyser is currently supporting Minecraft Bedrock 1.20.80 - 1.21.3 and Minecraft Java Server 1.21/1.21.1. For more info please see [here](https://geysermc.org/wiki/geyser/supported-versions/).
|
||||||
|
|
||||||
## Setting Up
|
## Setting Up
|
||||||
Take a look [here](https://geysermc.org/wiki/geyser/setup/) for how to set up Geyser.
|
Take a look [here](https://geysermc.org/wiki/geyser/setup/) for how to set up Geyser.
|
||||||
|
@ -81,5 +81,7 @@ tasks.withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar> {
|
|||||||
|
|
||||||
modrinth {
|
modrinth {
|
||||||
uploadFile.set(tasks.getByPath("shadowJar"))
|
uploadFile.set(tasks.getByPath("shadowJar"))
|
||||||
|
gameVersions.addAll("1.16.5", "1.17", "1.17.1", "1.18", "1.18.1", "1.18.2", "1.19",
|
||||||
|
"1.19.1", "1.19.2", "1.19.3", "1.19.4", "1.20", "1.20.1", "1.20.2", "1.20.3", "1.20.4", "1.20.5", "1.20.6")
|
||||||
loaders.addAll("spigot", "paper")
|
loaders.addAll("spigot", "paper")
|
||||||
}
|
}
|
||||||
|
@ -155,6 +155,9 @@ public class GeyserViaProxyPlugin extends ViaProxyPlugin implements GeyserBootst
|
|||||||
// Only initialize the ping passthrough if the protocol version is above beta 1.7.3, as that's when the status protocol was added
|
// Only initialize the ping passthrough if the protocol version is above beta 1.7.3, as that's when the status protocol was added
|
||||||
this.pingPassthrough = GeyserLegacyPingPassthrough.init(this.geyser);
|
this.pingPassthrough = GeyserLegacyPingPassthrough.init(this.geyser);
|
||||||
}
|
}
|
||||||
|
if (this.config.getRemote().authType() == AuthType.FLOODGATE) {
|
||||||
|
ViaProxy.getConfig().setPassthroughBungeecordPlayerInfo(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2,4 +2,4 @@ name: "${name}-ViaProxy"
|
|||||||
version: "${version}"
|
version: "${version}"
|
||||||
author: "${author}"
|
author: "${author}"
|
||||||
main: "org.geysermc.geyser.platform.viaproxy.GeyserViaProxyPlugin"
|
main: "org.geysermc.geyser.platform.viaproxy.GeyserViaProxyPlugin"
|
||||||
min-version: "3.2.1"
|
min-version: "3.3.2"
|
||||||
|
@ -0,0 +1,45 @@
|
|||||||
|
repositories {
|
||||||
|
// mavenLocal()
|
||||||
|
|
||||||
|
mavenCentral()
|
||||||
|
|
||||||
|
// Floodgate, Cumulus etc.
|
||||||
|
maven("https://repo.opencollab.dev/main")
|
||||||
|
|
||||||
|
// Paper, Velocity
|
||||||
|
maven("https://repo.papermc.io/repository/maven-public")
|
||||||
|
|
||||||
|
// Spigot
|
||||||
|
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots") {
|
||||||
|
mavenContent { snapshotsOnly() }
|
||||||
|
}
|
||||||
|
|
||||||
|
// BungeeCord
|
||||||
|
maven("https://oss.sonatype.org/content/repositories/snapshots") {
|
||||||
|
mavenContent { snapshotsOnly() }
|
||||||
|
}
|
||||||
|
|
||||||
|
// NeoForge
|
||||||
|
maven("https://maven.neoforged.net/releases") {
|
||||||
|
mavenContent { releasesOnly() }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Minecraft
|
||||||
|
maven("https://libraries.minecraft.net") {
|
||||||
|
name = "minecraft"
|
||||||
|
mavenContent { releasesOnly() }
|
||||||
|
}
|
||||||
|
|
||||||
|
// ViaVersion
|
||||||
|
maven("https://repo.viaversion.com") {
|
||||||
|
name = "viaversion"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Jitpack for e.g. MCPL
|
||||||
|
maven("https://jitpack.io") {
|
||||||
|
content { includeGroupByRegex("com\\.github\\..*") }
|
||||||
|
}
|
||||||
|
|
||||||
|
// For Adventure snapshots
|
||||||
|
maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
|
||||||
|
}
|
@ -5,6 +5,7 @@ import org.gradle.kotlin.dsl.dependencies
|
|||||||
import org.gradle.kotlin.dsl.maven
|
import org.gradle.kotlin.dsl.maven
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
|
id("geyser.build-logic")
|
||||||
id("geyser.publish-conventions")
|
id("geyser.publish-conventions")
|
||||||
id("architectury-plugin")
|
id("architectury-plugin")
|
||||||
id("dev.architectury.loom")
|
id("dev.architectury.loom")
|
||||||
@ -116,12 +117,3 @@ dependencies {
|
|||||||
minecraft(libs.minecraft)
|
minecraft(libs.minecraft)
|
||||||
mappings(loom.officialMojangMappings())
|
mappings(loom.officialMojangMappings())
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
|
||||||
// mavenLocal()
|
|
||||||
maven("https://repo.opencollab.dev/main")
|
|
||||||
maven("https://jitpack.io")
|
|
||||||
maven("https://oss.sonatype.org/content/repositories/snapshots/")
|
|
||||||
maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
|
|
||||||
maven("https://maven.neoforged.net/releases")
|
|
||||||
}
|
|
||||||
|
@ -11,7 +11,7 @@ modrinth {
|
|||||||
versionNumber.set(project.version as String + "-" + System.getenv("BUILD_NUMBER"))
|
versionNumber.set(project.version as String + "-" + System.getenv("BUILD_NUMBER"))
|
||||||
versionType.set("beta")
|
versionType.set("beta")
|
||||||
changelog.set(System.getenv("CHANGELOG") ?: "")
|
changelog.set(System.getenv("CHANGELOG") ?: "")
|
||||||
gameVersions.add(libs.minecraft.get().version as String)
|
gameVersions.addAll("1.21", libs.minecraft.get().version as String)
|
||||||
failSilently.set(true)
|
failSilently.set(true)
|
||||||
|
|
||||||
syncBodyFrom.set(rootProject.file("README.md").readText())
|
syncBodyFrom.set(rootProject.file("README.md").readText())
|
||||||
|
@ -156,12 +156,6 @@ public class GeyserImpl implements GeyserApi, EventRegistrar {
|
|||||||
|
|
||||||
private final SessionManager sessionManager = new SessionManager();
|
private final SessionManager sessionManager = new SessionManager();
|
||||||
|
|
||||||
/**
|
|
||||||
* This is used in GeyserConnect to stop the bedrock server binding to a port
|
|
||||||
*/
|
|
||||||
@Setter
|
|
||||||
private static boolean shouldStartListener = true;
|
|
||||||
|
|
||||||
private FloodgateCipher cipher;
|
private FloodgateCipher cipher;
|
||||||
private FloodgateSkinUploader skinUploader;
|
private FloodgateSkinUploader skinUploader;
|
||||||
private NewsHandler newsHandler;
|
private NewsHandler newsHandler;
|
||||||
@ -435,24 +429,27 @@ public class GeyserImpl implements GeyserApi, EventRegistrar {
|
|||||||
bedrockThreadCount = Math.max(1, SystemPropertyUtil.getInt("io.netty.eventLoopThreads", NettyRuntime.availableProcessors() * 2));
|
bedrockThreadCount = Math.max(1, SystemPropertyUtil.getInt("io.netty.eventLoopThreads", NettyRuntime.availableProcessors() * 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldStartListener) {
|
|
||||||
this.geyserServer = new GeyserServer(this, bedrockThreadCount);
|
this.geyserServer = new GeyserServer(this, bedrockThreadCount);
|
||||||
this.geyserServer.bind(new InetSocketAddress(config.getBedrock().address(), config.getBedrock().port()))
|
this.geyserServer.bind(new InetSocketAddress(config.getBedrock().address(), config.getBedrock().port()))
|
||||||
.whenComplete((avoid, throwable) -> {
|
.whenComplete((avoid, throwable) -> {
|
||||||
if (throwable == null) {
|
|
||||||
logger.info(GeyserLocale.getLocaleStringLog("geyser.core.start", config.getBedrock().address(),
|
|
||||||
String.valueOf(config.getBedrock().port())));
|
|
||||||
} else {
|
|
||||||
String address = config.getBedrock().address();
|
String address = config.getBedrock().address();
|
||||||
int port = config.getBedrock().port();
|
String port = String.valueOf(config.getBedrock().port()); // otherwise we get commas
|
||||||
logger.severe(GeyserLocale.getLocaleStringLog("geyser.core.fail", address, String.valueOf(port)));
|
|
||||||
|
if (throwable == null) {
|
||||||
|
if ("0.0.0.0".equals(address)) {
|
||||||
|
// basically just hide it in the log because some people get confused and try to change it
|
||||||
|
logger.info(GeyserLocale.getLocaleStringLog("geyser.core.start.ip_suppressed", port));
|
||||||
|
} else {
|
||||||
|
logger.info(GeyserLocale.getLocaleStringLog("geyser.core.start", address, port));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.severe(GeyserLocale.getLocaleStringLog("geyser.core.fail", address, port));
|
||||||
if (!"0.0.0.0".equals(address)) {
|
if (!"0.0.0.0".equals(address)) {
|
||||||
logger.info(Component.text("Suggestion: try setting `address` under `bedrock` in the Geyser config back to 0.0.0.0", NamedTextColor.GREEN));
|
logger.info(Component.text("Suggestion: try setting `address` under `bedrock` in the Geyser config back to 0.0.0.0", NamedTextColor.GREEN));
|
||||||
logger.info(Component.text("Then, restart this server.", NamedTextColor.GREEN));
|
logger.info(Component.text("Then, restart this server.", NamedTextColor.GREEN));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).join();
|
}).join();
|
||||||
}
|
|
||||||
|
|
||||||
if (config.getRemote().authType() == AuthType.FLOODGATE) {
|
if (config.getRemote().authType() == AuthType.FLOODGATE) {
|
||||||
try {
|
try {
|
||||||
|
@ -113,13 +113,15 @@ public class DumpCommand extends GeyserCommand {
|
|||||||
source.sendMessage(GeyserLocale.getPlayerLocaleString("geyser.commands.dump.collecting", source.locale()));
|
source.sendMessage(GeyserLocale.getPlayerLocaleString("geyser.commands.dump.collecting", source.locale()));
|
||||||
String dumpData;
|
String dumpData;
|
||||||
try {
|
try {
|
||||||
|
DumpInfo dump = new DumpInfo(geyser, addLog);
|
||||||
|
|
||||||
if (offlineDump) {
|
if (offlineDump) {
|
||||||
DefaultPrettyPrinter prettyPrinter = new DefaultPrettyPrinter();
|
DefaultPrettyPrinter prettyPrinter = new DefaultPrettyPrinter();
|
||||||
// Make arrays easier to read
|
// Make arrays easier to read
|
||||||
prettyPrinter.indentArraysWith(new DefaultIndenter(" ", "\n"));
|
prettyPrinter.indentArraysWith(new DefaultIndenter(" ", "\n"));
|
||||||
dumpData = MAPPER.writer(prettyPrinter).writeValueAsString(new DumpInfo(addLog));
|
dumpData = MAPPER.writer(prettyPrinter).writeValueAsString(dump);
|
||||||
} else {
|
} else {
|
||||||
dumpData = MAPPER.writeValueAsString(new DumpInfo(addLog));
|
dumpData = MAPPER.writeValueAsString(dump);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
source.sendMessage(ChatColor.RED + GeyserLocale.getPlayerLocaleString("geyser.commands.dump.collect_error", source.locale()));
|
source.sendMessage(ChatColor.RED + GeyserLocale.getPlayerLocaleString("geyser.commands.dump.collect_error", source.locale()));
|
||||||
|
@ -81,7 +81,7 @@ public class DumpInfo {
|
|||||||
private final FlagsInfo flagsInfo;
|
private final FlagsInfo flagsInfo;
|
||||||
private final List<ExtensionInfo> extensionInfo;
|
private final List<ExtensionInfo> extensionInfo;
|
||||||
|
|
||||||
public DumpInfo(boolean addLog) {
|
public DumpInfo(GeyserImpl geyser, boolean addLog) {
|
||||||
this.versionInfo = new VersionInfo();
|
this.versionInfo = new VersionInfo();
|
||||||
|
|
||||||
this.cpuCount = Runtime.getRuntime().availableProcessors();
|
this.cpuCount = Runtime.getRuntime().availableProcessors();
|
||||||
@ -91,7 +91,7 @@ public class DumpInfo {
|
|||||||
|
|
||||||
this.gitInfo = new GitInfo(GeyserImpl.BUILD_NUMBER, GeyserImpl.COMMIT.substring(0, 7), GeyserImpl.COMMIT, GeyserImpl.BRANCH, GeyserImpl.REPOSITORY);
|
this.gitInfo = new GitInfo(GeyserImpl.BUILD_NUMBER, GeyserImpl.COMMIT.substring(0, 7), GeyserImpl.COMMIT, GeyserImpl.BRANCH, GeyserImpl.REPOSITORY);
|
||||||
|
|
||||||
this.config = GeyserImpl.getInstance().getConfig();
|
this.config = geyser.getConfig();
|
||||||
this.floodgate = new Floodgate();
|
this.floodgate = new Floodgate();
|
||||||
|
|
||||||
String md5Hash = "unknown";
|
String md5Hash = "unknown";
|
||||||
@ -107,7 +107,7 @@ public class DumpInfo {
|
|||||||
//noinspection UnstableApiUsage
|
//noinspection UnstableApiUsage
|
||||||
sha256Hash = byteSource.hash(Hashing.sha256()).toString();
|
sha256Hash = byteSource.hash(Hashing.sha256()).toString();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (GeyserImpl.getInstance().getConfig().isDebugMode()) {
|
if (this.config.isDebugMode()) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -116,18 +116,22 @@ public class DumpInfo {
|
|||||||
this.ramInfo = new RamInfo();
|
this.ramInfo = new RamInfo();
|
||||||
|
|
||||||
if (addLog) {
|
if (addLog) {
|
||||||
this.logsInfo = new LogsInfo();
|
this.logsInfo = new LogsInfo(geyser);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.userPlatforms = new Object2IntOpenHashMap<>();
|
this.userPlatforms = new Object2IntOpenHashMap<>();
|
||||||
for (GeyserSession session : GeyserImpl.getInstance().getSessionManager().getAllSessions()) {
|
for (GeyserSession session : geyser.getSessionManager().getAllSessions()) {
|
||||||
DeviceOs device = session.getClientData().getDeviceOs();
|
DeviceOs device = session.getClientData().getDeviceOs();
|
||||||
userPlatforms.put(device, userPlatforms.getOrDefault(device, 0) + 1);
|
userPlatforms.put(device, userPlatforms.getOrDefault(device, 0) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.connectionAttempts = GeyserImpl.getInstance().getGeyserServer().getConnectionAttempts();
|
if (geyser.getGeyserServer() != null) {
|
||||||
|
this.connectionAttempts = geyser.getGeyserServer().getConnectionAttempts();
|
||||||
|
} else {
|
||||||
|
this.connectionAttempts = 0; // Fallback if Geyser failed to fully startup
|
||||||
|
}
|
||||||
|
|
||||||
this.bootstrapInfo = GeyserImpl.getInstance().getBootstrap().getDumpInfo();
|
this.bootstrapInfo = geyser.getBootstrap().getDumpInfo();
|
||||||
|
|
||||||
this.flagsInfo = new FlagsInfo();
|
this.flagsInfo = new FlagsInfo();
|
||||||
|
|
||||||
@ -244,10 +248,10 @@ public class DumpInfo {
|
|||||||
public static class LogsInfo {
|
public static class LogsInfo {
|
||||||
private String link;
|
private String link;
|
||||||
|
|
||||||
public LogsInfo() {
|
public LogsInfo(GeyserImpl geyser) {
|
||||||
try {
|
try {
|
||||||
Map<String, String> fields = new HashMap<>();
|
Map<String, String> fields = new HashMap<>();
|
||||||
fields.put("content", FileUtils.readAllLines(GeyserImpl.getInstance().getBootstrap().getLogsPath()).collect(Collectors.joining("\n")));
|
fields.put("content", FileUtils.readAllLines(geyser.getBootstrap().getLogsPath()).collect(Collectors.joining("\n")));
|
||||||
|
|
||||||
JsonNode logData = GeyserImpl.JSON_MAPPER.readTree(WebUtils.postForm("https://api.mclo.gs/1/log", fields));
|
JsonNode logData = GeyserImpl.JSON_MAPPER.readTree(WebUtils.postForm("https://api.mclo.gs/1/log", fields));
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ public class GeyserLocale {
|
|||||||
} else {
|
} else {
|
||||||
if (!validLocalLanguage) {
|
if (!validLocalLanguage) {
|
||||||
// Don't warn on missing locales if a local file has been found
|
// Don't warn on missing locales if a local file has been found
|
||||||
bootstrap.getGeyserLogger().warning("Missing locale: " + locale);
|
bootstrap.getGeyserLogger().debug("Missing locale: " + locale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,6 +76,9 @@ public class JavaCommandsTranslator extends PacketTranslator<ClientboundCommands
|
|||||||
@Override
|
@Override
|
||||||
public int hashCode(BedrockCommandInfo o) {
|
public int hashCode(BedrockCommandInfo o) {
|
||||||
int paramHash = Arrays.deepHashCode(o.paramData());
|
int paramHash = Arrays.deepHashCode(o.paramData());
|
||||||
|
if ("help".equals(o.name())) {
|
||||||
|
paramHash = 31 * paramHash + 1;
|
||||||
|
}
|
||||||
return 31 * paramHash + o.description().hashCode();
|
return 31 * paramHash + o.description().hashCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,6 +86,11 @@ public class JavaCommandsTranslator extends PacketTranslator<ClientboundCommands
|
|||||||
public boolean equals(BedrockCommandInfo a, BedrockCommandInfo b) {
|
public boolean equals(BedrockCommandInfo a, BedrockCommandInfo b) {
|
||||||
if (a == b) return true;
|
if (a == b) return true;
|
||||||
if (a == null || b == null) return false;
|
if (a == null || b == null) return false;
|
||||||
|
if ("help".equals(a.name()) && !"help".equals(b.name())) {
|
||||||
|
// Merging this causes Bedrock to fallback to its own help command
|
||||||
|
// https://github.com/GeyserMC/Geyser/issues/2573
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (!a.description().equals(b.description())) return false;
|
if (!a.description().equals(b.description())) return false;
|
||||||
if (a.paramData().length != b.paramData().length) return false;
|
if (a.paramData().length != b.paramData().length) return false;
|
||||||
for (int i = 0; i < a.paramData().length; i++) {
|
for (int i = 0; i < a.paramData().length; i++) {
|
||||||
|
@ -12,7 +12,7 @@ gson = "2.3.1" # Provided by Spigot 1.8.8
|
|||||||
websocket = "1.5.1"
|
websocket = "1.5.1"
|
||||||
protocol = "3.0.0.Beta2-20240704.153116-14"
|
protocol = "3.0.0.Beta2-20240704.153116-14"
|
||||||
raknet = "1.0.0.CR3-20240416.144209-1"
|
raknet = "1.0.0.CR3-20240416.144209-1"
|
||||||
minecraftauth = "4.1.0"
|
minecraftauth = "4.1.1-20240806.235051-7"
|
||||||
mcprotocollib = "1.21-20240725.013034-16"
|
mcprotocollib = "1.21-20240725.013034-16"
|
||||||
adventure = "4.14.0"
|
adventure = "4.14.0"
|
||||||
adventure-platform = "4.3.0"
|
adventure-platform = "4.3.0"
|
||||||
@ -30,13 +30,13 @@ cloud-minecraft-modded = "2.0.0-beta.7"
|
|||||||
commodore = "2.2"
|
commodore = "2.2"
|
||||||
bungeecord = "a7c6ede"
|
bungeecord = "a7c6ede"
|
||||||
velocity = "3.3.0-SNAPSHOT"
|
velocity = "3.3.0-SNAPSHOT"
|
||||||
viaproxy = "3.2.1"
|
viaproxy = "3.3.2-SNAPSHOT"
|
||||||
fabric-loader = "0.15.11"
|
fabric-loader = "0.15.11"
|
||||||
fabric-api = "0.100.1+1.21"
|
fabric-api = "0.100.1+1.21"
|
||||||
neoforge-minecraft = "21.0.0-beta"
|
neoforge-minecraft = "21.1.1"
|
||||||
mixin = "0.8.5"
|
mixin = "0.8.5"
|
||||||
mixinextras = "0.3.5"
|
mixinextras = "0.3.5"
|
||||||
minecraft = "1.21"
|
minecraft = "1.21.1"
|
||||||
|
|
||||||
# plugin versions
|
# plugin versions
|
||||||
indra = "3.1.3"
|
indra = "3.1.3"
|
||||||
|
@ -2,52 +2,6 @@
|
|||||||
|
|
||||||
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
||||||
|
|
||||||
dependencyResolutionManagement {
|
|
||||||
repositories {
|
|
||||||
// mavenLocal()
|
|
||||||
|
|
||||||
// Floodgate, Cumulus etc.
|
|
||||||
maven("https://repo.opencollab.dev/main")
|
|
||||||
|
|
||||||
// Paper, Velocity
|
|
||||||
maven("https://repo.papermc.io/repository/maven-public")
|
|
||||||
// Spigot
|
|
||||||
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots") {
|
|
||||||
mavenContent { snapshotsOnly() }
|
|
||||||
}
|
|
||||||
|
|
||||||
// BungeeCord
|
|
||||||
maven("https://oss.sonatype.org/content/repositories/snapshots") {
|
|
||||||
mavenContent { snapshotsOnly() }
|
|
||||||
}
|
|
||||||
|
|
||||||
// NeoForge
|
|
||||||
maven("https://maven.neoforged.net/releases") {
|
|
||||||
mavenContent { releasesOnly() }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Minecraft
|
|
||||||
maven("https://libraries.minecraft.net") {
|
|
||||||
name = "minecraft"
|
|
||||||
mavenContent { releasesOnly() }
|
|
||||||
}
|
|
||||||
|
|
||||||
mavenCentral()
|
|
||||||
|
|
||||||
// ViaVersion
|
|
||||||
maven("https://repo.viaversion.com") {
|
|
||||||
name = "viaversion"
|
|
||||||
}
|
|
||||||
|
|
||||||
maven("https://jitpack.io") {
|
|
||||||
content { includeGroupByRegex("com\\.github\\..*") }
|
|
||||||
}
|
|
||||||
|
|
||||||
// For Adventure snapshots
|
|
||||||
maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
repositories {
|
repositories {
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren