Skip to content

Commit

Permalink
Introduce PlaceholderAPI to Bukkit version
Browse files Browse the repository at this point in the history
  • Loading branch information
burdoto committed Jan 7, 2024
1 parent b1628e2 commit 7cfd236
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 1 deletion.
2 changes: 2 additions & 0 deletions bukkit/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@ repositories {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
maven { url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' }
}

dependencies {
implementation project(':common')

compileOnly 'org.spigotmc:spigot-api:1.12.2-R0.1-SNAPSHOT'
compileOnly 'me.clip:placeholderapi:2.9.+'
api 'net.kyori:adventure-platform-bukkit:4.3.0'
//compile files('libs/spigot-1.7.10-SNAPSHOT-b1657.jar')
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.mineaurion.aurionchat.common.config.ConfigurationAdapter;
import com.mineaurion.aurionchat.common.logger.JavaPluginLogger;
import com.mineaurion.aurionchat.common.logger.PluginLogger;
import me.clip.placeholderapi.PlaceholderAPI;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
Expand All @@ -30,6 +31,8 @@ public AurionChat(JavaPlugin plugin){
public void onEnable(){
getlogger().info("AurionChat Initializing");
audiences = BukkitAudiences.create(plugin);
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI"))
((BukkitConfigurationAdapter) getConfigurationAdapter()).initPlaceholderApi();
this.enable();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.mineaurion.aurionchat.bukkit;

import me.clip.placeholderapi.expansion.PlaceholderExpansion;

public class AurionPlaceholderAPI extends PlaceholderExpansion {
private final AurionChat plugin;

public AurionPlaceholderAPI(AurionChat plugin) {
this.plugin = plugin;
}

@Override
public String getIdentifier() {
return "aurionchat";
}

@Override
public String getAuthor() {
return "Yann151924";
}

@Override
public String getVersion() {
return "0.14.4";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,23 @@

import com.mineaurion.aurionchat.common.config.Channel;
import com.mineaurion.aurionchat.common.config.ConfigurationAdapter;
import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
import org.checkerframework.checker.nullness.qual.Nullable;

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

public class BukkitConfigurationAdapter implements ConfigurationAdapter {

private final AurionChat plugin;
private final File file;
private YamlConfiguration configuration;
private @Nullable AurionPlaceholderAPI apapi;

public BukkitConfigurationAdapter(AurionChat plugin, File file){
this.plugin = plugin;
Expand Down Expand Up @@ -54,4 +59,16 @@ public Map<String, Channel> getChannels(){
}
return map;
}

@Override
public String wrapString(@Nullable UUID player, String str) {
return apapi == null || player == null
? ConfigurationAdapter.super.wrapString(player, str)
: apapi.onRequest(Bukkit.getOfflinePlayer(player), str);
}

public void initPlaceholderApi() {
apapi = new AurionPlaceholderAPI(plugin);
PlaceholderAPI.registerExpansion(apapi);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.mineaurion.aurionchat.common.AurionChatPlayer;
import com.mineaurion.aurionchat.common.ChatService;
import com.mineaurion.aurionchat.common.Utils;
import com.mineaurion.aurionchat.common.config.ConfigurationAdapter;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.Bukkit;
Expand Down Expand Up @@ -34,8 +35,9 @@ public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent event){
}

String currentChannel = aurionChatPlayer.getCurrentChannel();
ConfigurationAdapter config = plugin.getConfigurationAdapter();
Component messageFormat = Utils.processMessage(
plugin.getConfigurationAdapter().getChannels().get(currentChannel).format,
config.wrapString(player.getUniqueId(), config.getChannels().get(currentChannel).format),
LegacyComponentSerializer.legacy('&').deserialize(event.getMessage()).asComponent(),
aurionChatPlayer
);
Expand Down
2 changes: 2 additions & 0 deletions bukkit/src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ authors: [Yann151924]
website: https://mineaurion.com
depend:
- LuckPerms
softdepend:
- PlaceholderAPI
commands:
chat:
aliases: [ch, channel]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.mineaurion.aurionchat.common.config;

import com.mineaurion.aurionchat.common.AbstractAurionChat;
import org.checkerframework.checker.nullness.qual.Nullable;

import java.util.Map;
import java.util.Optional;
import java.util.UUID;

public interface ConfigurationAdapter {

Expand All @@ -19,6 +21,10 @@ public interface ConfigurationAdapter {
//
Map<String, Channel> getChannels();

default String wrapString(@Nullable UUID player, String str) {
return str;
}

default Optional<String> getChannelByNameOrAlias(String search){
for(Map.Entry<String, Channel> entry: getChannels().entrySet()){
String name = entry.getKey();
Expand Down

0 comments on commit 7cfd236

Please sign in to comment.