Skip to content

Commit 77ddb91

Browse files
Merge pull request #98 from RuiPereiraDev/papi
Add PlaceholderAPI expansion
2 parents a2f04ab + d74e866 commit 77ddb91

3 files changed

Lines changed: 40 additions & 1 deletion

File tree

bukkit/src/main/kotlin/com/r4g3baby/simplescore/bukkit/BukkitManager.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.r4g3baby.simplescore.api.scoreboard.Scoreboard
55
import com.r4g3baby.simplescore.api.scoreboard.data.Priority
66
import com.r4g3baby.simplescore.bukkit.command.MainCmd
77
import com.r4g3baby.simplescore.bukkit.config.MainConfig
8+
import com.r4g3baby.simplescore.bukkit.hooks.PapiExpansion
89
import com.r4g3baby.simplescore.bukkit.listener.PlayerListener
910
import com.r4g3baby.simplescore.bukkit.protocol.legacy.LegacyProtocolHandler
1011
import com.r4g3baby.simplescore.bukkit.protocol.modern.ModernProtocolHandler
@@ -38,6 +39,10 @@ class BukkitManager(private val plugin: BukkitPlugin) : BaseManager<Player, Yaml
3839
plugin.getCommand(plugin.name)?.executor = MainCmd(plugin)
3940
plugin.server.pluginManager.registerEvents(PlayerListener(this), plugin)
4041

42+
if (varReplacer.usePlaceholderAPI) {
43+
PapiExpansion(plugin).register()
44+
}
45+
4146
if (config.scoreboardTaskAsync) plugin.scheduler.runTaskTimerAsync(
4247
20L, config.taskUpdateTime, ScoreboardTask(this, protocolHandler)
4348
) else plugin.scheduler.runTaskTimer(
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.r4g3baby.simplescore.bukkit.hooks
2+
3+
import com.r4g3baby.simplescore.BukkitPlugin
4+
import me.clip.placeholderapi.expansion.PlaceholderExpansion
5+
import org.bukkit.entity.Player
6+
7+
class PapiExpansion(private val plugin: BukkitPlugin) : PlaceholderExpansion() {
8+
override fun getIdentifier(): String {
9+
return plugin.description.name
10+
}
11+
12+
override fun getAuthor(): String {
13+
return plugin.description.authors[0]
14+
}
15+
16+
override fun getVersion(): String {
17+
return plugin.description.version
18+
}
19+
20+
override fun persist(): Boolean {
21+
return true
22+
}
23+
24+
override fun onPlaceholderRequest(player: Player?, params: String): String? {
25+
if (player == null) return null
26+
val viewer = plugin.manager.getViewer(player.uniqueId) ?: return null
27+
28+
return when {
29+
params.equals("scoreboard", true) -> viewer.scoreboard?.name ?: "none"
30+
params.equals("isHidden", true) -> viewer.isScoreboardHidden.toString()
31+
else -> null
32+
}
33+
}
34+
}

bukkit/src/main/kotlin/com/r4g3baby/simplescore/bukkit/scoreboard/VarReplacer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import kotlin.math.min
1414
import kotlin.math.roundToInt
1515

1616
class VarReplacer(plugin: BukkitPlugin) : VarReplacer<Player> {
17-
private val usePlaceholderAPI = plugin.server.pluginManager.getPlugin("PlaceholderAPI") != null
17+
internal val usePlaceholderAPI = plugin.server.pluginManager.getPlugin("PlaceholderAPI") != null
1818

1919
override fun replace(text: String, viewer: Player): String {
2020
var result = if (usePlaceholderAPI) PlaceholderAPI.setPlaceholders(viewer, text) else text

0 commit comments

Comments
 (0)