modify the API a bit so an API user can access and set fields in the object holder
This commit is contained in:
parent
15bad44300
commit
efe60c7976
|
@ -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"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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));
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -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"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue