Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .gitignore

This file was deleted.

3 changes: 0 additions & 3 deletions .idea/.gitignore

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/compiler.xml

This file was deleted.

14 changes: 0 additions & 14 deletions .idea/discord.xml

This file was deleted.

17 changes: 0 additions & 17 deletions .idea/gradle.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/kotlinc.xml

This file was deleted.

5 changes: 0 additions & 5 deletions .idea/misc.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

14 changes: 0 additions & 14 deletions .idea/modules/TagsX.main.iml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
kotlin("jvm") version "2.1.20-RC"
kotlin("jvm") version "2.1.20-Beta2"
id("com.gradleup.shadow") version "9.0.0-beta8"
}

Expand Down
23 changes: 19 additions & 4 deletions src/main/kotlin/pl/syntaxdevteam/tagsx/TagsX.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,32 @@
package pl.syntaxdevteam.tagsx

import net.kyori.adventure.text.minimessage.MiniMessage
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer
import org.bukkit.command.CommandSender
import org.bukkit.plugin.java.JavaPlugin
import pl.syntaxdevteam.tagsx.commands.CommandManager
import pl.syntaxdevteam.tagsx.data.TagList
import pl.syntaxdevteam.tagsx.gui.TagsGui
import pl.syntaxdevteam.tagsx.listeners.PlayerJoinListener
import pl.syntaxdevteam.tagsx.placeholders.TagPlaceholder
import pl.syntaxdevteam.tagsx.storage.TagStorage

class TagsX : JavaPlugin() {

val tagStorage = TagStorage(this)
private val commandManager = CommandManager(this)

val mm = MiniMessage.miniMessage()

companion object {
val PREFIX = MiniMessage.miniMessage().deserialize("<gradient:#ffcc66:#ff6600>[TagsX]</gradient> ")
}

override fun onEnable() {
saveDefaultConfig()

tagStorage.loadTags()

commandManager.registerCommands(this)
TagList.loadTags(this)
commandManager.registerCommands()

server.pluginManager.registerEvents(PlayerJoinListener(this), this)
server.pluginManager.registerEvents(TagsGui(this), this)
Expand All @@ -32,4 +42,9 @@ class TagsX : JavaPlugin() {
tagStorage.saveTags()
logger.info("🛑 TagsX został wyłączony.")
}
}

fun sendMessageWithPrefix(receiver: CommandSender, message: String) {
val formattedMessage = LegacyComponentSerializer.legacySection().serialize(PREFIX) + message
receiver.sendMessage(formattedMessage)
}
}
54 changes: 45 additions & 9 deletions src/main/kotlin/pl/syntaxdevteam/tagsx/commands/CommandManager.kt
Original file line number Diff line number Diff line change
@@ -1,27 +1,63 @@
package pl.syntaxdevteam.tagsx.commands

import net.kyori.adventure.text.minimessage.MiniMessage
import org.bukkit.command.Command
import org.bukkit.command.CommandSender
import org.bukkit.command.TabCompleter
import org.bukkit.command.defaults.BukkitCommand
import org.bukkit.entity.Player
import pl.syntaxdevteam.tagsx.TagsX
import pl.syntaxdevteam.tagsx.gui.TagsGui

class CommandManager(private val plugin: TagsX) {

private val mm = MiniMessage.miniMessage()
private val gui = TagsGui(plugin)

fun registerCommands(plugin: TagsX) {
plugin.server.commandMap.register("tagsx", object : org.bukkit.command.Command("tags") {
fun registerCommands() {
val tagsCommand = object : BukkitCommand("tags") {
override fun execute(sender: CommandSender, label: String, args: Array<out String>): Boolean {
if (sender is Player) {
gui.open(sender) // ✅ Otwiera GUI
if (sender !is Player) {
sender.sendMessage("§cTa komenda jest tylko dla graczy!")
return false
}
gui.open(sender)
return true
}
}

val tagsxCommand = object : BukkitCommand("tagsx"), TabCompleter {
override fun execute(sender: CommandSender, label: String, args: Array<out String>): Boolean {
if (args.isEmpty() || args[0].lowercase() != "reload") {
sender.sendMessage("§cUżycie: /tagsx reload")
return true
}

if (!sender.hasPermission("tagsx.reload")) {
if (sender is Player) {
plugin.sendMessageWithPrefix(sender, "§cNie masz uprawnień do tej komendy!")
} else {
sender.sendMessage("§cNie masz uprawnień do tej komendy!")
}
return true
}

sender.sendMessage(mm.deserialize("<red>Ta komenda jest tylko dla graczy!</red>"))
return false
plugin.reloadConfig()
plugin.sendMessageWithPrefix(sender, "§aPlugin TagsX został poprawnie przeładowany!")
return true
}
})

override fun onTabComplete(
sender: CommandSender,
command: Command,
alias: String,
args: Array<out String>
): MutableList<String> {
return if (args.size == 1) {
mutableListOf("reload").filter { it.startsWith(args[0], ignoreCase = true) }.toMutableList()
} else mutableListOf()
}
}

plugin.server.commandMap.register("tags", tagsCommand)
plugin.server.commandMap.register("tagsx", tagsxCommand)
}
}
23 changes: 23 additions & 0 deletions src/main/kotlin/pl/syntaxdevteam/tagsx/commands/ReloadCommand.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package pl.syntaxdevteam.tagsx.commands

import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
import pl.syntaxdevteam.tagsx.TagsX

class ReloadCommand(private val plugin: TagsX) : CommandExecutor {

override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
if (sender is Player) {
plugin.sendMessageWithPrefix(sender, "§cNie masz dostępu do tej komendy!")
} else {
sender.sendMessage("§cTę komendę może wykonać tylko gracz!")
}


plugin.reloadConfig()
plugin.sendMessageWithPrefix(sender, "§aPlugin TagsX został poprawnie przeładowany!")
return true
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,14 @@ import pl.syntaxdevteam.tagsx.gui.TagsGui
class TagsCommand(private val plugin: TagsX) : CommandExecutor {

private val gui = TagsGui(plugin)
private val mm = MiniMessage.miniMessage()

override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
if (sender is Player) {
gui.open(sender) // ✅ Otwieranie GUI
gui.open(sender)
return true
}

sender.sendMessage(mm.deserialize("<red>Tę komendę może użyć tylko gracz!</red>"))
plugin.sendMessageWithPrefix(sender, "<red>Tę komendę może użyć tylko gracz!</red>")
return false
}
}
25 changes: 16 additions & 9 deletions src/main/kotlin/pl/syntaxdevteam/tagsx/data/TagList.kt
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
package pl.syntaxdevteam.tagsx.data

import org.bukkit.Material
import pl.syntaxdevteam.tagsx.TagsX

object TagList {
val tags = listOf(
TagItem(Material.RED_DYE, "§cWojownik§r"),
TagItem(Material.BLUE_DYE, "§dMag§r"),
TagItem(Material.BLACK_DYE, "§0Mroczny§r"),
TagItem(Material.YELLOW_DYE, "§bBłyskawica§r"),
TagItem(Material.PURPLE_DYE, "§6Król§r"),
TagItem(Material.GREEN_DYE, "§aSzczęściarz§r")
val tags = mutableListOf<TagItem>()

)
fun loadTags(plugin: TagsX) {
tags.clear()
val config = plugin.config.getConfigurationSection("tags") ?: return

for (key in config.getKeys(false)) {
val display = config.getString("tags.$key.display") ?: continue
val material = Material.matchMaterial(config.getString("tags.$key.material") ?: "NAME_TAG") ?: Material.NAME_TAG

tags.add(TagItem(material, display))
}
plugin.logger.info("✅ Załadowano ${tags.size} tagów z config.yml!")
}
}
// §§§

data class TagItem(val material: Material, val name: String)

// §§§
Loading