Skip to content

Commit 4af9be0

Browse files
committed
First implementation of BungeeCord module
1 parent 0ce0d00 commit 4af9be0

File tree

6 files changed

+105
-1
lines changed

6 files changed

+105
-1
lines changed

bungeecord/build.gradle.kts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
2+
3+
plugins {
4+
id("java")
5+
id("com.gradleup.shadow") version "9.0.0-beta11"
6+
id("io.freefair.lombok") version "8.13.1"
7+
}
8+
9+
group = "it.renvins"
10+
11+
repositories {
12+
mavenCentral()
13+
maven {
14+
name = "bungeecord"
15+
url = uri("https://oss.sonatype.org/content/repositories/snapshots")
16+
}
17+
}
18+
19+
dependencies {
20+
implementation(project(":api"))
21+
implementation(project(":common"))
22+
23+
compileOnly("net.md-5:bungeecord-api:1.21-R0.2")
24+
}
25+
26+
java {
27+
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
28+
}
29+
30+
tasks.withType<ShadowJar> {
31+
archiveBaseName = "serverpulse"
32+
archiveClassifier = "bungeecord"
33+
archiveVersion = "${rootProject.version}"
34+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package it.renvins.serverpulse.bungeecord;
2+
3+
import net.md_5.bungee.api.plugin.Plugin;
4+
5+
public class ServerPulseBungeeCord extends Plugin {
6+
7+
@Override
8+
public void onEnable() {
9+
10+
}
11+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package it.renvins.serverpulse.bungeecord.scheduler;
2+
3+
import it.renvins.serverpulse.bungeecord.ServerPulseBungeeCord;
4+
import it.renvins.serverpulse.common.scheduler.Task;
5+
import it.renvins.serverpulse.common.scheduler.TaskScheduler;
6+
7+
import java.util.concurrent.TimeUnit;
8+
9+
public class BungeeCordTaskScheduler implements TaskScheduler {
10+
11+
private final ServerPulseBungeeCord plugin;
12+
13+
public BungeeCordTaskScheduler(ServerPulseBungeeCord plugin) {
14+
this.plugin = plugin;
15+
}
16+
17+
@Override
18+
public void runAsync(Runnable task) {
19+
plugin.getProxy().getScheduler().runAsync(plugin, task);
20+
}
21+
22+
@Override
23+
public Task runTaskTimerAsync(Runnable task, long delayTicks, long periodTicks) {
24+
long delayMs = delayTicks * 50L; // 20 ticks/second = 50ms per tick
25+
long periodMs = periodTicks * 50L;
26+
27+
return new BungeeCordTaskWrapper(
28+
plugin.getProxy().getScheduler().schedule(plugin, task, delayMs, periodMs, TimeUnit.MILLISECONDS));
29+
}
30+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package it.renvins.serverpulse.bungeecord.scheduler;
2+
3+
import it.renvins.serverpulse.common.scheduler.Task;
4+
import net.md_5.bungee.api.scheduler.ScheduledTask;
5+
6+
public class BungeeCordTaskWrapper implements Task {
7+
8+
private final ScheduledTask task;
9+
10+
public BungeeCordTaskWrapper(ScheduledTask task) {
11+
this.task = task;
12+
}
13+
14+
@Override
15+
public void cancel() {
16+
task.cancel();
17+
}
18+
19+
@Override
20+
public boolean isCancelled() {
21+
return task.getTask() == null;
22+
}
23+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
name: ServerPulse
2+
version: ${rootProject.version}
3+
main: it.renvins.serverpulse.bungeecord.ServerPulseBungeecord
4+
author: username
5+
description: Effortless Minecraft performance monitoring with pre-configured Grafana/InfluxDB via Docker.

settings.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ pluginManagement {
1616
mavenCentral()
1717
gradlePluginPortal()
1818
}
19-
}
19+
}
20+
include("bungeecord")

0 commit comments

Comments
 (0)