Skip to content

Commit

Permalink
Used MorePaperLib so it's still compatible with regular Spigot/PaperS…
Browse files Browse the repository at this point in the history
…pigot
  • Loading branch information
jdkeke142 committed May 2, 2023
1 parent 1388a87 commit 2f12b6c
Show file tree
Hide file tree
Showing 8 changed files with 72 additions and 53 deletions.
2 changes: 1 addition & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ repositories {

tasks {
compileKotlin {
kotlinOptions.jvmTarget = "17"
kotlinOptions.jvmTarget = "8"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ repositories {

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
languageVersion.set(JavaLanguageVersion.of(8))
}
}
8 changes: 6 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
[versions]
spigot = "1.19.4-R0.1-SNAPSHOT"
spigot = "1.16.5-R0.1-SNAPSHOT"

placeholder = "2.11.1"

morepaperlib = "0.4.2"

[libraries]
spigot = { group = "dev.folia", name = "folia-api", version.ref = "spigot" }
spigot = { group = "com.destroystokyo.paper", name = "paper-api", version.ref = "spigot" }

placeholder = { group = "me.clip", name = "placeholderapi", version.ref = "placeholder" }

morepaperlib = { group = "space.arim.morepaperlib", name = "morepaperlib", version.ref = "morepaperlib" }

[plugins]
shadow = { id = "com.github.johnrengelman.shadow", version = "7.1.2"}
3 changes: 3 additions & 0 deletions plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@ plugins {

repositories {
maven("https://repo.extendedclip.com/content/repositories/placeholderapi/")
maven("https://mvn-repo.arim.space/lesser-gpl3/")
mavenCentral()
}

dependencies {
api(project(":api"))
compileOnly(libs.spigot)
compileOnly(libs.placeholder)
implementation(libs.morepaperlib)

testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.0")
testRuntimeOnly(libs.spigot)
Expand All @@ -20,6 +22,7 @@ dependencies {

tasks {
shadowJar {
relocate("space.arim", "com.xism4.sternalboard")
archiveBaseName.set("SternalBoard")
destinationDirectory.set(file("$rootDir/bin/"))
minimize()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,19 @@
import com.xism4.sternalboard.Scoreboards;
import com.xism4.sternalboard.SternalBoardHandler;
import com.xism4.sternalboard.SternalBoardPlugin;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import space.arim.morepaperlib.MorePaperLib;
import space.arim.morepaperlib.scheduling.ScheduledTask;

import java.time.Duration;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;

public class ScoreboardManager {

Expand Down Expand Up @@ -48,25 +49,34 @@ public void init() {
return;
}

updateTask = plugin.getServer().getAsyncScheduler().runAtFixedRate(plugin, scheduledTask -> {
ConfigurationSection defaultSection = plugin.getConfig()
.getConfigurationSection("settings.scoreboard");

boardHandlerMap.forEach((context, handler) -> {
switch (scoreboardMode) {
case "WORLD":
processWorldScoreboard(handler, defaultSection);
break;
case "PERMISSION":
processPermissionScoreboard(handler, defaultSection);
break;
case "NORMAL":
default:
Scoreboards.updateFromSection(plugin, handler, defaultSection);
break;
}
});
}, 0, updateTime * 50L, TimeUnit.MILLISECONDS);
MorePaperLib paperLib = new MorePaperLib(plugin);

Duration updateTimeDuration = Duration.ofMillis(updateTime * 50L);
Duration initialDuration = Duration.ofMillis(0);

updateTask = paperLib.scheduling().asyncScheduler().runAtFixedRate(
() -> {
ConfigurationSection defaultSection = plugin.getConfig()
.getConfigurationSection("settings.scoreboard");

boardHandlerMap.forEach((context, handler) -> {
switch (scoreboardMode) {
case "WORLD":
processWorldScoreboard(handler, defaultSection);
break;
case "PERMISSION":
processPermissionScoreboard(handler, defaultSection);
break;
case "NORMAL":
default:
Scoreboards.updateFromSection(plugin, handler, defaultSection);
break;
}
});
},
initialDuration,
updateTimeDuration
);
}

public void setScoreboard(Player player) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
import com.xism4.sternalboard.managers.animation.tasks.LineUpdateTask;
import com.xism4.sternalboard.managers.animation.tasks.TitleUpdateTask;
import com.xism4.sternalboard.utils.TextUtils;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import space.arim.morepaperlib.MorePaperLib;
import space.arim.morepaperlib.scheduling.ScheduledTask;

import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class AnimationManager {
private final SternalBoardPlugin plugin;
Expand Down Expand Up @@ -41,13 +42,15 @@ public void load() {
this.title = titleLines.get(0);

TitleUpdateTask titleUpdateTask = new TitleUpdateTask(plugin, this, titleLines);
long updateRateInTicks = config.getInt("scoreboard-animated.title.update-rate") * 50L;
ScheduledTask scheduledTask = plugin.getServer().getAsyncScheduler().runAtFixedRate(
plugin,
long updateRateMillis = config.getInt("scoreboard-animated.title.update-rate") * 50L;

MorePaperLib paperLib = new MorePaperLib(plugin);

Duration updateRateDuration = Duration.ofMillis(updateRateMillis);
ScheduledTask scheduledTask = paperLib.scheduling().asyncScheduler().runAtFixedRate(
titleUpdateTask,
updateRateInTicks,
updateRateInTicks,
TimeUnit.MILLISECONDS);
updateRateDuration,
updateRateDuration);
tasks.add(scheduledTask
);

Expand Down Expand Up @@ -80,14 +83,15 @@ public void reload() {

this.title = titleLines.get(0);

MorePaperLib paperLib = new MorePaperLib(plugin);

TitleUpdateTask titleUpdateTask = new TitleUpdateTask(plugin, this, titleLines);
long updateRateInTicks = config.getInt("scoreboard-animated.title.update-rate") * 50L;
ScheduledTask scheduledTask = plugin.getServer().getAsyncScheduler().runAtFixedRate(
plugin,
long updateRateMillis = config.getInt("scoreboard-animated.title.update-rate") * 50L;
Duration updateRateDuration = Duration.ofMillis(updateRateMillis);
ScheduledTask scheduledTask = paperLib.scheduling().asyncScheduler().runAtFixedRate(
titleUpdateTask,
updateRateInTicks,
updateRateInTicks,
TimeUnit.MILLISECONDS);
updateRateDuration,
updateRateDuration);
tasks.add(scheduledTask
);

Expand Down Expand Up @@ -118,7 +122,7 @@ public void reload() {
private void updateLines(ConfigurationSection configSection, List<String> linesList) {
for (String key : configSection.getKeys(false)) {
List<String> list = configSection.getStringList(key + ".lines");
long updateRate = configSection.getInt(key + ".update-rate") * 50L;
long updateRateMillis = configSection.getInt(key + ".update-rate") * 50L;
int lineNumber = Integer.parseInt(key);

list.replaceAll(TextUtils::parseToLegacyColors);
Expand All @@ -128,12 +132,14 @@ private void updateLines(ConfigurationSection configSection, List<String> linesL
LineUpdateTask lineUpdateTask = new LineUpdateTask(
plugin, this, list, lineNumber
);
ScheduledTask scheduledTask = plugin.getServer().getAsyncScheduler().runAtFixedRate(
plugin,

MorePaperLib paperLib = new MorePaperLib(plugin);

Duration updateRateDuration = Duration.ofMillis(updateRateMillis);
ScheduledTask scheduledTask = paperLib.scheduling().asyncScheduler().runAtFixedRate(
lineUpdateTask,
updateRate,
updateRate,
TimeUnit.MILLISECONDS
updateRateDuration,
updateRateDuration
);
tasks.add(scheduledTask
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@
import com.xism4.sternalboard.managers.ScoreboardManager;
import com.xism4.sternalboard.managers.animation.AnimationManager;
import com.xism4.sternalboard.utils.TextUtils;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import java.util.List;
import java.util.function.Consumer;

public class LineUpdateTask implements Consumer<ScheduledTask> {
public class LineUpdateTask implements Runnable {
private final String[] lines;
private final AnimationManager animationManager;
private final ScoreboardManager scoreboardManager;
Expand All @@ -27,7 +25,7 @@ public LineUpdateTask(SternalBoardPlugin plugin, AnimationManager animationManag
}

@Override
public void accept(ScheduledTask scheduledTask) {
public void run() {
animationManager.setLine(lineNumber, lines[index]);
index++;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,10 @@
import com.xism4.sternalboard.managers.ScoreboardManager;
import com.xism4.sternalboard.managers.animation.AnimationManager;
import com.xism4.sternalboard.utils.TextUtils;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;

import java.util.List;
import java.util.function.Consumer;

public class TitleUpdateTask implements Consumer<ScheduledTask> {
public class TitleUpdateTask implements Runnable {
private final String[] lines;
private final AnimationManager animationManager;
private final ScoreboardManager scoreboardManager;
Expand All @@ -26,7 +24,7 @@ public TitleUpdateTask(SternalBoardPlugin plugin, AnimationManager animationMana
}

@Override
public void accept(ScheduledTask scheduledTask) {
public void run() {
animationManager.setTitle(lines[index]);
index++;

Expand Down

0 comments on commit 2f12b6c

Please sign in to comment.