Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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
3 changes: 2 additions & 1 deletion .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions modules/WaypointShareSystem/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
plugins {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bitte alles außer version und group entfernen

id("java")
}

group = "de.nick"
version = "unspecified"

repositories {
mavenCentral()
}

dependencies {
testImplementation(platform("org.junit:junit-bom:5.10.0"))
testImplementation("org.junit.jupiter:junit-jupiter")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}

tasks.test {
useJUnitPlatform()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package de.nick.waypointsharesystem

import net.derfarmer.moduleloader.modules.Module
import net.derfarmer.playersystem.utils.ItemBuilder
import org.bukkit.Material
import org.bukkit.NamespacedKey
import org.bukkit.inventory.ShapedRecipe

object WaypointShareModule : Module() {
override fun onEnable() {
i
}

override fun onDisable() {
}

override fun onReload() {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package de.nick.waypointsharesystem.command

import net.derfarmer.moduleloader.commands.Command
import net.derfarmer.moduleloader.sendMSG
import net.derfarmer.playersystem.utils.ItemBuilder
import org.bukkit.Material
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player

object SpawnLauncherCommand : Command("spawnlauncher") {

override fun execute(player: CommandSender, commandLabel: String, args: Array<String>): Boolean {
if (player !is Player) return false


if (!player.hasPermission("EV1System.Command.SpawnLauncher")) {
player.sendMSG("launcher.notPermission.SpawnLauncher")
return false
}

if (args.isNotEmpty()) {
player.sendMSG("launcher.usage")
return false
}


val spawnLauncher = ItemBuilder(Material.DISPENSER).setDisplayName("§l§aElytra Launcher §8(§aSpawn§8)")
.setLore("§3Platziere den Elytra Launcher mit dem Loch nach oben.")
.setData("ev1", "elytra_launcher", 100).build()


player.inventory.addItem(spawnLauncher)
player.sendMSG("launcher.SpawnLauncher.GiveItem")

return true
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
package de.nick.waypointsharesystem.listener

import com.github.benderfarmer.Config
import com.github.benderfarmer.manager.getClan
import com.github.benderfarmer.utils.ItemBuilder
import com.github.benderfarmer.waypointshare.utils.ShareInventory
import com.github.benderfarmer.waypointshare.utils.SkullBuilder
import io.papermc.paper.event.player.AsyncChatEvent
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer
import org.bukkit.Bukkit
import org.bukkit.Material
import org.bukkit.Sound
import org.bukkit.entity.Player
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import java.util.*

object ChatListener : Listener {

val playerWaypointMessages: HashMap<UUID, String> = HashMap()
val playerWaypointWaiting = arrayListOf<Player>()

@EventHandler
fun onChat(event: AsyncChatEvent) {

val messageComponent = event.message()
val messagesString = PlainTextComponentSerializer.plainText().serialize(messageComponent)

if (playerWaypointWaiting.contains(event.player)) {
playerWaypointWaiting.remove(event.player)
event.isCancelled = true

val targetPlayer = Bukkit.getServer().getPlayer(messagesString)

if (targetPlayer != null && targetPlayer.isOnline) {

targetPlayer.sendMessage("")
targetPlayer.sendMessage("${Config.prefix}§7Der Spieler §a" + event.player.name + " §7hat dir ein §aWaypoint §7geschickt")
targetPlayer.sendMessage(getLastWaypointMessage(event.player.uniqueId).toString())
targetPlayer.sendMessage("")
targetPlayer.playSound(targetPlayer.location, Sound.BLOCK_NOTE_BLOCK_BASS, 10.0F, 10.0F)

event.player.sendMessage("${Config.prefix}§7Du hast §aerfolgreich §7den Waypoint an den Spieler §a" + targetPlayer.name + " §7geschickt")
return
}
event.player.sendMessage("${Config.prefix}§7Der Spieler §a" + messagesString + " §7ist §cnicht §7online")
event.player.playSound(event.player.location, Sound.BLOCK_GLASS_BREAK, 10.0F, 10.0F)
}

if (!messagesString.lowercase().startsWith("xaero-waypoint:")) return

event.isCancelled = true

playerWaypointMessages[event.player.uniqueId] = messagesString

val sendInventory = ShareInventory().inventory


for (i in 0.. 26) {
sendInventory.setItem(i, ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).setDisplayName(" ").build())
}

sendInventory.setItem(10, SkullBuilder()
.setDisplayName("§6Schicke den §e§lWaypoint §6an einen Freund")
.setSkullOwner("76cbae7246cc2c6e888587198c7959979666b4f5a4088f24e26e075f140ae6c3")
.build())

sendInventory.setItem(13, SkullBuilder()
.setDisplayName("§9Schicke den §b§lWaypoint §9an alle.")
.setSkullOwner("bdde594dead88b35bc21ad1ab238dcae411253e34a585d925258ce674c642617")
.build())

if (event.player.getClan() == "") {

sendInventory.setItem(16, SkullBuilder()
.setDisplayName("§2Du bist leider in keinem Clan")
.setSkullOwner("4a2fe01a1f7d76f3cd6ddb53d5325a398ad748d718ae720a6bc23382867d6531")
.build())


Bukkit.getRegionScheduler().execute(WaypointShare.plugin, event.player.location) {
event.player.openInventory(sendInventory)
}
return
}


sendInventory.setItem(16, SkullBuilder()
.setDisplayName("§2Schicke den §a§lWaypoint §2nur an Clanmitglieder.")
.setSkullOwner("e730127542440ef0e18b4a2994fbd097e9529d59f6cedb57dbfd5fb6134a606d")
.build())


Bukkit.getRegionScheduler().execute(WaypointShare.plugin, event.player.location) {
event.player.openInventory(sendInventory)
event.player.playSound(event.player.location, Sound.BLOCK_CHEST_OPEN, 10.0F, 10.0F)
}
}
fun getLastWaypointMessage(player: UUID): String? {
return playerWaypointMessages[player]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package de.nick.waypointsharesystem.listener

object InventoryClickListener : Listener {

@EventHandler
fun onInventoryClick(event: InventoryClickEvent) {

if (event.inventory.holder !is ShareInventory) return

val player = event.whoClicked
if(player !is Player) return

event.isCancelled = true

val waypointMessage = ChatListener.getLastWaypointMessage(player.uniqueId) ?: return

when(event.slot) {
10 -> {
if (ChatListener.playerWaypointWaiting.contains(player)) {
player.sendMessage("${Config.prefix}§7Schreibe den Spielernamen in den Chat.")
player.playSound(player.location, Sound.BLOCK_NOTE_BLOCK_BASS, 10.0F, 10.0F)
return
}
ChatListener.playerWaypointWaiting.add(player)
player.sendMessage("${Config.prefix}§7Schreibe den Spielernamen in den Chat.")
player.playSound(player.location, Sound.BLOCK_NOTE_BLOCK_BASS, 10.0F, 10.0F)
}
13 -> {
ChatListener.playerWaypointMessages.remove(player.uniqueId)
Bukkit.broadcast(Component.text(""))
Bukkit.broadcast(Component.text("${Config.prefix}§7Der Spieler §a" + player.name + " §7hat ein §aWaypoint §7geteilt"))
Bukkit.broadcast(Component.text(waypointMessage))
Bukkit.broadcast(Component.text(""))
player.playSound(player.location, Sound.BLOCK_NOTE_BLOCK_BASS, 10.0F, 10.0F)
}
16 -> {
ChatListener.playerWaypointMessages.remove(player.uniqueId)
if (player.getClan() == "") {

player.sendMessage("${Config.prefix}§7Du bist aktuell in §ckeinem §7Clan")
player.playSound(player.location, Sound.BLOCK_GLASS_BREAK, 10.0F, 10.0F)
return
}

ClanManager.sendMessage(player, "<green>" + player.name + " <gray>hat ein Waypoint geteilt");
ClanManager.sendMessage(player, waypointMessage)

Bukkit.getOnlinePlayers().forEach { onlinePlayer ->
if (onlinePlayer.getClan() == player.getClan()) {

onlinePlayer.playSound(onlinePlayer.location, Sound.BLOCK_NOTE_BLOCK_BASS, 10.0F, 10.0F)
}
}

}
}

WaypointShare.plugin.launch {
delay(5)
withContext(WaypointShare.plugin.entityDispatcher(player)) {
player.closeInventory()
}
}
}

}
7 changes: 7 additions & 0 deletions modules/WaypointShareSystem/src/main/resources/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "WaypointShareModule",
"main": "de.nick.waypointsharesystem.WaypointShareModule",
"authors": [
"nick"
]
}
3 changes: 2 additions & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,5 @@ include("modules:DiscordModule")
include("modules:ElevatorSystem")
include("modules:QuestSystem")
include("modules:VoiceChatModule")
include("modules:WebModule")
include("modules:WebModule")
include("modules:WaypointShareSystem")