modify the API a bit so an API user can access and set fields in the object holder

This commit is contained in:
Taah 2022-04-24 07:23:59 -07:00
parent 15bad44300
commit efe60c7976
9 changed files with 77 additions and 34 deletions

View File

@ -1,6 +1,6 @@
plugins { plugins {
java java
id("com.github.johnrengelman.shadow") version "7.1.2" `maven-publish`
} }
dependencies { dependencies {
@ -9,16 +9,27 @@ dependencies {
tasks { tasks {
build { build {
dependsOn(shadowJar) dependsOn(publishToMavenLocal)
} }
} }
tasks.getByName<Jar>("shadowJar") { tasks.getByName<Jar>("jar") {
archiveBaseName.set("Sunburst") archiveBaseName.set("Sunburst")
archiveClassifier.set("API") archiveClassifier.set("")
} }
tasks.register<Wrapper>("wrapper") tasks.register<Wrapper>("wrapper")
{ {
gradleVersion = "7.4.2" gradleVersion = "7.4.2"
} }
tasks.register("prepareKotlinBuildScriptModel"){} tasks.register("prepareKotlinBuildScriptModel"){}
publishing {
publications {
create<MavenPublication>("maven") {
groupId = project.group as String
version = project.version as String
artifactId = "sunburst-api"
from(components["java"])
}
}
}

View File

@ -0,0 +1,30 @@
package dev.plex.plugin;
import dev.plex.util.ObjectHolder;
import org.bukkit.plugin.java.JavaPlugin;
public abstract class SunburstPlugin extends JavaPlugin
{
private static SunburstPlugin plugin;
private ObjectHolder holder;
@Override
public void onLoad()
{
plugin = this;
this.holder = new ObjectHolder();
load();
}
public abstract void load();
public ObjectHolder getObjectHolder()
{
return this.holder;
}
public static SunburstPlugin getPlugin()
{
return plugin;
}
}

View File

@ -11,7 +11,7 @@ import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class ObjectHolder implements PluginBase, ChatRenderer public class ObjectHolder implements PluginBase
{ {
private IPermissionHandler permissionHandler; private IPermissionHandler permissionHandler;
private IStorage storageSystem; private IStorage storageSystem;
@ -53,9 +53,4 @@ public class ObjectHolder implements PluginBase, ChatRenderer
this.chatRenderer = renderer; this.chatRenderer = renderer;
} }
@Override
public @NotNull Component render(@NotNull Player source, @NotNull Component sourceDisplayName, @NotNull Component message, @NotNull Audience viewer)
{
return ComponentUtil.configComponent("chatFormat", MiniMessage.miniMessage().serialize(source.displayName()), PlainTextComponentSerializer.plainText().serialize(message));
}
} }

View File

@ -1,5 +1,6 @@
plugins { plugins {
java java
`maven-publish`
} }
allprojects { allprojects {
@ -8,6 +9,7 @@ allprojects {
} }
subprojects { subprojects {
apply(plugin = "java") apply(plugin = "java")
apply(plugin = "maven-publish")
repositories { repositories {
mavenCentral() mavenCentral()
maven { maven {
@ -36,7 +38,11 @@ subprojects {
} }
var copyJars = tasks.register<Copy>("copyJars") { var copyJars = tasks.register<Copy>("copyJars") {
from(subprojects.map { it.tasks.getByName<Jar>("shadowJar") }) from(subprojects.filter {
it.tasks.findByName("shadowJar") != null
}.map {
it.tasks.getByName<Jar>("shadowJar")
})
into(file("build/libs")) into(file("build/libs"))
} }

View File

@ -8,17 +8,19 @@ import dev.plex.permission.PermissionHandlerImpl;
import dev.plex.player.ISunburstPlayer; import dev.plex.player.ISunburstPlayer;
import dev.plex.player.PlayerCache; import dev.plex.player.PlayerCache;
import dev.plex.player.SunburstPlayer; import dev.plex.player.SunburstPlayer;
import dev.plex.plugin.SunburstPlugin;
import dev.plex.storage.FileStorage; import dev.plex.storage.FileStorage;
import dev.plex.util.ComponentUtil;
import dev.plex.util.Configuration; import dev.plex.util.Configuration;
import dev.plex.util.ObjectHolder;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
@Getter @Getter
@Setter @Setter
public final class Sunburst extends JavaPlugin public final class Sunburst extends SunburstPlugin
{ {
private static Sunburst plugin; private static Sunburst plugin;
@ -27,10 +29,9 @@ public final class Sunburst extends JavaPlugin
private Configuration configuration; private Configuration configuration;
private Configuration messages; private Configuration messages;
private ObjectHolder holder;
@Override @Override
public void onLoad() public void load()
{ {
plugin = this; plugin = this;
this.configuration = new Configuration(this, "config.yml"); this.configuration = new Configuration(this, "config.yml");
@ -39,15 +40,14 @@ public final class Sunburst extends JavaPlugin
this.configuration.load(); this.configuration.load();
this.messages.load(); this.messages.load();
this.holder = new ObjectHolder(); this.getObjectHolder().setPermissionHandler(new PermissionHandlerImpl());
this.holder.setPermissionHandler(new PermissionHandlerImpl()); this.getObjectHolder().setChatRenderer((source, sourceDisplayName, message, viewer) -> ComponentUtil.configComponent("chatFormat", MiniMessage.miniMessage().serialize(source.displayName()), PlainTextComponentSerializer.plainText().serialize(message)));
this.holder.setChatRenderer(holder);
} }
@Override @Override
public void onEnable() public void onEnable()
{ {
this.holder.setStorageSystem(new FileStorage()); this.getObjectHolder().setStorageSystem(new FileStorage());
new JoinListener(); new JoinListener();
new ChatListener(); new ChatListener();
@ -56,11 +56,11 @@ public final class Sunburst extends JavaPlugin
Bukkit.getOnlinePlayers().forEach(player -> Bukkit.getOnlinePlayers().forEach(player ->
{ {
ISunburstPlayer sunburstPlayer = plugin.getHolder().getStorageSystem().getPlayer(player.getUniqueId()); ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(player.getUniqueId());
if (sunburstPlayer == null) if (sunburstPlayer == null)
{ {
sunburstPlayer = new SunburstPlayer(player.getUniqueId(), player.getName(), player.getAddress().getAddress().getHostAddress()); sunburstPlayer = new SunburstPlayer(player.getUniqueId(), player.getName(), player.getAddress().getAddress().getHostAddress());
plugin.getHolder().getStorageSystem().createPlayer(sunburstPlayer); plugin.getObjectHolder().getStorageSystem().createPlayer(sunburstPlayer);
} }
plugin.getPlayerCache().addPlayer(sunburstPlayer); plugin.getPlayerCache().addPlayer(sunburstPlayer);
if (sunburstPlayer.displayName() != null) if (sunburstPlayer.displayName() != null)
@ -74,7 +74,7 @@ public final class Sunburst extends JavaPlugin
public void onDisable() public void onDisable()
{ {
plugin.getPlayerCache().getPlayers().forEach(sunburstPlayer -> { plugin.getPlayerCache().getPlayers().forEach(sunburstPlayer -> {
plugin.getHolder().getStorageSystem().updatePlayer(sunburstPlayer); plugin.getObjectHolder().getStorageSystem().updatePlayer(sunburstPlayer);
}); });
} }

View File

@ -59,7 +59,7 @@ public abstract class SunburstCommand extends Command implements PluginIdentifia
@Override @Override
public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args) public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args)
{ {
if (this.getPermission() != null && !plugin.getHolder().getPermissionHandler().hasPermission(sender, this.getPermission())) if (this.getPermission() != null && !plugin.getObjectHolder().getPermissionHandler().hasPermission(sender, this.getPermission()))
{ {
sender.sendMessage(confMsg("noPermission", this.getPermission())); sender.sendMessage(confMsg("noPermission", this.getPermission()));
return true; return true;

View File

@ -27,7 +27,7 @@ public class NicknameCMD extends SunburstCommand
{ {
return confMsg("commandCheckConsole", this.getUsage()); return confMsg("commandCheckConsole", this.getUsage());
} }
ISunburstPlayer sunburstPlayer = plugin.getHolder().getStorageSystem().getPlayer(player.getUniqueId()); ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(player.getUniqueId());
if (sunburstPlayer.displayName() == null) if (sunburstPlayer.displayName() == null)
{ {
return confMsg("nicknameNotFound"); return confMsg("nicknameNotFound");
@ -37,7 +37,7 @@ public class NicknameCMD extends SunburstCommand
if (Bukkit.getOnlinePlayers().stream().anyMatch(p -> p.getName().equalsIgnoreCase(args[0]))) if (Bukkit.getOnlinePlayers().stream().anyMatch(p -> p.getName().equalsIgnoreCase(args[0])))
{ {
Player target = getNonNullPlayer(args[0]); Player target = getNonNullPlayer(args[0]);
ISunburstPlayer sunburstPlayer = plugin.getHolder().getStorageSystem().getPlayer(target.getUniqueId()); ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(target.getUniqueId());
if (args.length < 2) if (args.length < 2)
{ {
return usage(); return usage();
@ -62,7 +62,7 @@ public class NicknameCMD extends SunburstCommand
{ {
return confMsg("commandCheckConsole", this.getUsage()); return confMsg("commandCheckConsole", this.getUsage());
} }
ISunburstPlayer sunburstPlayer = plugin.getHolder().getStorageSystem().getPlayer(player.getUniqueId()); ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(player.getUniqueId());
sunburstPlayer.displayName(null); sunburstPlayer.displayName(null);
return confMsg("nicknameRemoved"); return confMsg("nicknameRemoved");
} }
@ -70,7 +70,7 @@ public class NicknameCMD extends SunburstCommand
{ {
return confMsg("commandCheckConsole", this.getUsage()); return confMsg("commandCheckConsole", this.getUsage());
} }
ISunburstPlayer sunburstPlayer = plugin.getHolder().getStorageSystem().getPlayer(player.getUniqueId()); ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(player.getUniqueId());
String nickname = args[0]; String nickname = args[0];
nickname = nickname.replace("<newline>", "").replace("<br>", ""); nickname = nickname.replace("<newline>", "").replace("<br>", "");
Component newNickname = MiniMessage.miniMessage().deserialize(nickname, ComponentUtil.REGULAR_TAGS); Component newNickname = MiniMessage.miniMessage().deserialize(nickname, ComponentUtil.REGULAR_TAGS);

View File

@ -3,16 +3,17 @@ package dev.plex.listener.impl.player;
import dev.plex.listener.SunburstListener; import dev.plex.listener.SunburstListener;
import io.papermc.paper.event.player.AsyncChatEvent; import io.papermc.paper.event.player.AsyncChatEvent;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
public class ChatListener extends SunburstListener public class ChatListener extends SunburstListener
{ {
@EventHandler @EventHandler(priority = EventPriority.HIGHEST)
public void onChat(AsyncChatEvent event) public void onChat(AsyncChatEvent event)
{ {
if (!plugin.getConfiguration().getBoolean("options.chat")) if (!plugin.getConfiguration().getBoolean("options.chat"))
{ {
return; return;
} }
event.renderer(plugin.getHolder().getChatRenderer()); event.renderer(plugin.getObjectHolder().getChatRenderer());
} }
} }

View File

@ -18,11 +18,11 @@ public class JoinListener extends SunburstListener
public void createPlayer(PlayerJoinEvent event) public void createPlayer(PlayerJoinEvent event)
{ {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
ISunburstPlayer sunburstPlayer = plugin.getHolder().getStorageSystem().getPlayer(player.getUniqueId()); ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(player.getUniqueId());
if (sunburstPlayer == null) if (sunburstPlayer == null)
{ {
sunburstPlayer = new SunburstPlayer(player.getUniqueId(), player.getName(), player.getAddress().getAddress().getHostAddress()); sunburstPlayer = new SunburstPlayer(player.getUniqueId(), player.getName(), player.getAddress().getAddress().getHostAddress());
plugin.getHolder().getStorageSystem().createPlayer(sunburstPlayer); plugin.getObjectHolder().getStorageSystem().createPlayer(sunburstPlayer);
} }
plugin.getPlayerCache().addPlayer(sunburstPlayer); plugin.getPlayerCache().addPlayer(sunburstPlayer);
if (sunburstPlayer.displayName() != null) if (sunburstPlayer.displayName() != null)
@ -36,7 +36,7 @@ public class JoinListener extends SunburstListener
{ {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
plugin.getPlayerCache().getPlayer(player.getUniqueId()).ifPresent(sunburstPlayer -> { plugin.getPlayerCache().getPlayer(player.getUniqueId()).ifPresent(sunburstPlayer -> {
plugin.getHolder().getStorageSystem().updatePlayer(sunburstPlayer); plugin.getObjectHolder().getStorageSystem().updatePlayer(sunburstPlayer);
plugin.getPlayerCache().removePlayer(sunburstPlayer); plugin.getPlayerCache().removePlayer(sunburstPlayer);
}); });
} }