mirror of
https://github.com/plexusorg/Sunburst.git
synced 2025-02-05 06:23:12 +00:00
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
9 changed files with 77 additions and 34 deletions
|
@ -1,6 +1,6 @@
|
|||
plugins {
|
||||
java
|
||||
id("com.github.johnrengelman.shadow") version "7.1.2"
|
||||
`maven-publish`
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
@ -9,16 +9,27 @@ dependencies {
|
|||
|
||||
tasks {
|
||||
build {
|
||||
dependsOn(shadowJar)
|
||||
dependsOn(publishToMavenLocal)
|
||||
}
|
||||
}
|
||||
tasks.getByName<Jar>("shadowJar") {
|
||||
tasks.getByName<Jar>("jar") {
|
||||
archiveBaseName.set("Sunburst")
|
||||
archiveClassifier.set("API")
|
||||
archiveClassifier.set("")
|
||||
}
|
||||
|
||||
tasks.register<Wrapper>("wrapper")
|
||||
{
|
||||
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"])
|
||||
}
|
||||
}
|
||||
}
|
30
api/src/main/java/dev/plex/plugin/SunburstPlugin.java
Normal file
30
api/src/main/java/dev/plex/plugin/SunburstPlugin.java
Normal 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;
|
||||
}
|
||||
}
|
|
@ -11,7 +11,7 @@ import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ObjectHolder implements PluginBase, ChatRenderer
|
||||
public class ObjectHolder implements PluginBase
|
||||
{
|
||||
private IPermissionHandler permissionHandler;
|
||||
private IStorage storageSystem;
|
||||
|
@ -53,9 +53,4 @@ public class ObjectHolder implements PluginBase, ChatRenderer
|
|||
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 {
|
||||
java
|
||||
`maven-publish`
|
||||
}
|
||||
|
||||
allprojects {
|
||||
|
@ -8,6 +9,7 @@ allprojects {
|
|||
}
|
||||
subprojects {
|
||||
apply(plugin = "java")
|
||||
apply(plugin = "maven-publish")
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven {
|
||||
|
@ -36,7 +38,11 @@ subprojects {
|
|||
|
||||
}
|
||||
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"))
|
||||
}
|
||||
|
||||
|
|
|
@ -8,17 +8,19 @@ import dev.plex.permission.PermissionHandlerImpl;
|
|||
import dev.plex.player.ISunburstPlayer;
|
||||
import dev.plex.player.PlayerCache;
|
||||
import dev.plex.player.SunburstPlayer;
|
||||
import dev.plex.plugin.SunburstPlugin;
|
||||
import dev.plex.storage.FileStorage;
|
||||
import dev.plex.util.ComponentUtil;
|
||||
import dev.plex.util.Configuration;
|
||||
import dev.plex.util.ObjectHolder;
|
||||
import lombok.Getter;
|
||||
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.plugin.java.JavaPlugin;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public final class Sunburst extends JavaPlugin
|
||||
public final class Sunburst extends SunburstPlugin
|
||||
{
|
||||
private static Sunburst plugin;
|
||||
|
||||
|
@ -27,10 +29,9 @@ public final class Sunburst extends JavaPlugin
|
|||
private Configuration configuration;
|
||||
private Configuration messages;
|
||||
|
||||
private ObjectHolder holder;
|
||||
|
||||
@Override
|
||||
public void onLoad()
|
||||
public void load()
|
||||
{
|
||||
plugin = this;
|
||||
this.configuration = new Configuration(this, "config.yml");
|
||||
|
@ -39,15 +40,14 @@ public final class Sunburst extends JavaPlugin
|
|||
this.configuration.load();
|
||||
this.messages.load();
|
||||
|
||||
this.holder = new ObjectHolder();
|
||||
this.holder.setPermissionHandler(new PermissionHandlerImpl());
|
||||
this.holder.setChatRenderer(holder);
|
||||
this.getObjectHolder().setPermissionHandler(new PermissionHandlerImpl());
|
||||
this.getObjectHolder().setChatRenderer((source, sourceDisplayName, message, viewer) -> ComponentUtil.configComponent("chatFormat", MiniMessage.miniMessage().serialize(source.displayName()), PlainTextComponentSerializer.plainText().serialize(message)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
this.holder.setStorageSystem(new FileStorage());
|
||||
this.getObjectHolder().setStorageSystem(new FileStorage());
|
||||
|
||||
new JoinListener();
|
||||
new ChatListener();
|
||||
|
@ -56,11 +56,11 @@ public final class Sunburst extends JavaPlugin
|
|||
|
||||
Bukkit.getOnlinePlayers().forEach(player ->
|
||||
{
|
||||
ISunburstPlayer sunburstPlayer = plugin.getHolder().getStorageSystem().getPlayer(player.getUniqueId());
|
||||
ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(player.getUniqueId());
|
||||
if (sunburstPlayer == null)
|
||||
{
|
||||
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);
|
||||
if (sunburstPlayer.displayName() != null)
|
||||
|
@ -74,7 +74,7 @@ public final class Sunburst extends JavaPlugin
|
|||
public void onDisable()
|
||||
{
|
||||
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
|
||||
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()));
|
||||
return true;
|
||||
|
|
|
@ -27,7 +27,7 @@ public class NicknameCMD extends SunburstCommand
|
|||
{
|
||||
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)
|
||||
{
|
||||
return confMsg("nicknameNotFound");
|
||||
|
@ -37,7 +37,7 @@ public class NicknameCMD extends SunburstCommand
|
|||
if (Bukkit.getOnlinePlayers().stream().anyMatch(p -> p.getName().equalsIgnoreCase(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)
|
||||
{
|
||||
return usage();
|
||||
|
@ -62,7 +62,7 @@ public class NicknameCMD extends SunburstCommand
|
|||
{
|
||||
return confMsg("commandCheckConsole", this.getUsage());
|
||||
}
|
||||
ISunburstPlayer sunburstPlayer = plugin.getHolder().getStorageSystem().getPlayer(player.getUniqueId());
|
||||
ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(player.getUniqueId());
|
||||
sunburstPlayer.displayName(null);
|
||||
return confMsg("nicknameRemoved");
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ public class NicknameCMD extends SunburstCommand
|
|||
{
|
||||
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];
|
||||
nickname = nickname.replace("<newline>", "").replace("<br>", "");
|
||||
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 io.papermc.paper.event.player.AsyncChatEvent;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
|
||||
public class ChatListener extends SunburstListener
|
||||
{
|
||||
@EventHandler
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onChat(AsyncChatEvent event)
|
||||
{
|
||||
if (!plugin.getConfiguration().getBoolean("options.chat"))
|
||||
{
|
||||
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)
|
||||
{
|
||||
final Player player = event.getPlayer();
|
||||
ISunburstPlayer sunburstPlayer = plugin.getHolder().getStorageSystem().getPlayer(player.getUniqueId());
|
||||
ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(player.getUniqueId());
|
||||
if (sunburstPlayer == null)
|
||||
{
|
||||
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);
|
||||
if (sunburstPlayer.displayName() != null)
|
||||
|
@ -36,7 +36,7 @@ public class JoinListener extends SunburstListener
|
|||
{
|
||||
final Player player = event.getPlayer();
|
||||
plugin.getPlayerCache().getPlayer(player.getUniqueId()).ifPresent(sunburstPlayer -> {
|
||||
plugin.getHolder().getStorageSystem().updatePlayer(sunburstPlayer);
|
||||
plugin.getObjectHolder().getStorageSystem().updatePlayer(sunburstPlayer);
|
||||
plugin.getPlayerCache().removePlayer(sunburstPlayer);
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue