https://github.com/skh6075/graphicscore-pnx
A plugin for adding Scoreboard to PowerNukkitX server, allowing users to handle it easily and conveniently in an event-driven manner.
https://github.com/skh6075/graphicscore-pnx
Last synced: 19 days ago
JSON representation
A plugin for adding Scoreboard to PowerNukkitX server, allowing users to handle it easily and conveniently in an event-driven manner.
- Host: GitHub
- URL: https://github.com/skh6075/graphicscore-pnx
- Owner: skh6075
- Created: 2024-06-26T10:44:20.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-06-30T23:58:42.000Z (11 months ago)
- Last Synced: 2025-04-06T07:43:16.450Z (about 1 month ago)
- Language: Kotlin
- Size: 66.4 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GraphicScore-PNX
A plugin for adding Scoreboard to PowerNukkitX server, allowing users to handle it easily and conveniently in an event-driven manner.## Features
The API is developed solely for packet processing without using the Player Scoreboard method provided by PowerNukkitX.
Also, instead of putting a load on the server by updating the scoreboard through Scheduler#Task, ```event-pnx``` + ```placeholder``` You can update your scoreboard in a low-impact and easy way.## Usage
**NOTE:** How to set `config.yml`.
```yml
---
# Scoreboard name to be used as server default
default-board: defaultboards:
# Scoreboard name
default:
# Scoreboard title
title: "§r§f GraphicScore PNX §r"
# Scoreboard lines
lines:
- "§r§f ◆ Name: %graphic:player_name% "
- "§r§f ◆ Item: %graphic:held_item_name% (x%graphic:held_item_count%) "
- "§r§f ◆ ONLINE: %graphic:online% / %graphic:online_max%"
mcmmo:
title: "§r§f GraphicScore - MCMMO §r"
lines:
- "§r§f Job: %mcmmo:job_name% (Stage: %mcmmo:job_stage%) "
- "§r§f Level: %mcmmo:job_level% (XP: %mcmmo:job_xp_per%) "
- "§r§f Skill: %mcmmo:job_skill_name% (%mcmmo:job_skill_cooldown% left..)"
...
```## PlaceholderAPI built into GraphicScore
Create an example by linking with external plugin data
```kotlin
import me.skh6075.pnx.graphicscore.placeholder.PlaceholderAPI
import me.skh6075.pnx.graphicscore.placeholder.PlaceholderExtensionclass MCMMOPlugin : PluginBase() {
override fun onEnable() {
PlaceholderAPI.register(MCMMOPlaceholderExtension(this))
}
}class MCMMOPlaceholderExtension(private val plugin: MCMMOPlugin) : PlaceholderExtension() {
override fun getOwnedPlugin(): Plugin = pluginoverride fun getIdentifier(): String = "mcmmo"
@EventHandler(priority = EventPriority.NORMAL)
fun onPlayerMCMMODataUpdateEvent(event : PlayerMCMMODataUpdateEvent) {
val session = ScorePlayerManager.getPlayer(event.player) ?: return
session.update("mcmmo:job_name")
session.update("mcmmo:job_stage")
session.update("mcmmo:job_level")
session.update("mcmmo:job_xp_per")
session.update("mcmmo:job_skill_name")
session.update("mcmmo:job_skill_cooldown")
}override fun onRequest(player: Player, params: String): String? {
return when(params) {
"job_name" -> API.getPlayerJob(player)
"job_stage" -> API.getPlayerJobStage(player).toString()
"job_level" -> API.getPlayerJobLevel(player).toString()
"job_xp_per" -> API.getPlayerJobXpPercentage(player).toString()
"job_skill_name" -> API.getPlayerJobSkill(player).name
"job_skill_cooldown" -> API.getPlayerJobSkill(player).leftCooldown
else -> null
}
}
}
```