Skip to content

Commit 9b12dc0

Browse files
start on extension platform (#6)
Co-authored-by: chris <github@onechris.mozmail.com> Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
1 parent 1990632 commit 9b12dc0

File tree

7 files changed

+92
-3
lines changed

7 files changed

+92
-3
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ subprojects {
4141
}
4242

4343
tasks.processResources {
44-
filesMatching(listOf("bungee.yml", "spigot.yml")) {
44+
filesMatching(listOf("bungee.yml", "spigot.yml", "extension.yml")) {
4545
expand(
4646
"description" to project.description,
4747
"version" to project.version,

bungeecord/src/main/resources/bungee.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
name: GeyserBlockPlatform
22
description: "${description}"
33
version: "${version}"
4+
author: kejonaMC
45

56
main: dev.kejona.geyserblockplatform.bungeecord.GeyserBlockPlatformBungee
67
softDepends: [floodgate, Geyser-Bungeecord]

extension/build.gradle.kts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
2+
plugins {
3+
id("com.github.johnrengelman.shadow")
4+
}
5+
6+
java {
7+
toolchain {
8+
languageVersion.set(JavaLanguageVersion.of(16))
9+
}
10+
}
11+
12+
dependencies {
13+
api(projects.common)
14+
compileOnly("org.geysermc.geyser:api:2.1.2-SNAPSHOT")
15+
}
16+
17+
tasks {
18+
shadowJar {
19+
val prefix = "${project.group}.${project.name}.shaded"
20+
relocate("org.spongepowered.configurate", "$prefix.configurate")
21+
relocate("io.leangen.geantyref", "$prefix.geantyref")
22+
23+
archiveFileName.set("GeyserBlockPlatform-Extension.jar")
24+
}
25+
26+
build {
27+
dependsOn(shadowJar)
28+
}
29+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package dev.kejona.geyserblockplatform.extension;
2+
3+
import dev.kejona.geyserblockplatform.common.BlockResult;
4+
import dev.kejona.geyserblockplatform.common.bedrock.BaseApiHandler;
5+
import dev.kejona.geyserblockplatform.common.bedrock.BedrockHandler;
6+
import dev.kejona.geyserblockplatform.common.config.Config;
7+
import dev.kejona.geyserblockplatform.common.config.ConfigLoader;
8+
import org.geysermc.event.subscribe.Subscribe;
9+
import org.geysermc.geyser.api.connection.GeyserConnection;
10+
import org.geysermc.geyser.api.event.bedrock.SessionLoginEvent;
11+
import org.geysermc.geyser.api.event.lifecycle.GeyserPostInitializeEvent;
12+
import org.geysermc.geyser.api.extension.Extension;
13+
14+
import java.io.IOException;
15+
16+
public class GeyserBlockPlatformExtension implements Extension {
17+
18+
private BedrockHandler handler;
19+
private Config config;
20+
21+
@Subscribe
22+
public void onPostInitialize(GeyserPostInitializeEvent event) {
23+
logger().info("Loading GeyserBlockPlatform extension...");
24+
25+
this.handler = new BaseApiHandler();
26+
27+
try {
28+
this.config = ConfigLoader.loadConfig(this.dataFolder());
29+
} catch (IOException e) {
30+
logger().severe("Failed to load config");
31+
e.printStackTrace();
32+
disable();
33+
}
34+
35+
logger().info("Loaded GeyserBlockPlatform extension!");
36+
}
37+
38+
@Subscribe
39+
public void onLogin(SessionLoginEvent event) {
40+
GeyserConnection connection = event.connection();
41+
42+
BlockResult result = config.computeResult(connection.javaUuid(), handler);
43+
if (!result.allowed()) {
44+
BlockResult.Denied deniedResult = (BlockResult.Denied) result;
45+
event.setCancelled(true, deniedResult.message());
46+
} else {
47+
result.warnings().forEach(connection::sendMessage);
48+
}
49+
}
50+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
id: geyserblockplatform
2+
name: GeyserBlockPlatform
3+
version: "${version}"
4+
authors: [onebeastchris, Konicai]
5+
6+
main: dev.kejona.geyserblockplatform.extension.GeyserBlockPlatformExtension
7+
api: 1.0.0

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
33
rootProject.name = "GeyserBlockPlatform"
44

55
include(":common")
6+
include(":extension")
67
include(":bungeecord")
78
include(":spigot")
89
include(":velocity")

spigot/src/main/resources/plugin.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
name: GeyserBlockPlatform
2-
description: ${description}
3-
version: ${version}
2+
description: "${description}"
3+
version: "${version}"
4+
authors: [Camotoy, Konicai, Jens]
45

56
main: dev.kejona.geyserblockplatform.spigot.GeyserBlockPlatformSpigot
67
api-version: 1.13

0 commit comments

Comments
 (0)