Skip to content
Open
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
package me.clearedSpore.sporeCore.features.mode.item

import me.clearedSpore.sporeCore.SporeCore
import me.clearedSpore.sporeCore.features.mode.item.impl.InvseeItem
import me.clearedSpore.sporeCore.features.mode.item.impl.CompassItem
import me.clearedSpore.sporeCore.features.mode.item.impl.FreezeItem
import me.clearedSpore.sporeCore.features.mode.item.impl.HistoryItem
import me.clearedSpore.sporeCore.features.mode.item.impl.PunishSwordItem
import me.clearedSpore.sporeCore.features.mode.item.impl.SpeedItem
import me.clearedSpore.sporeCore.features.mode.item.impl.*
import me.clearedSpore.sporeCore.features.mode.item.`object`.ModeItem
import org.bukkit.Bukkit

Expand All @@ -21,6 +16,7 @@ object ModeItemManager {
register(HistoryItem())
register(InvseeItem())
register(CompassItem())
register(WorldEditItem())
}

fun register(item: ModeItem) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package me.clearedSpore.sporeCore.features.mode.item.impl

import me.clearedSpore.sporeAPI.util.CC.blue
import me.clearedSpore.sporeAPI.util.CC.gray
import me.clearedSpore.sporeAPI.util.Logger
import me.clearedSpore.sporeCore.features.mode.item.`object`.ModeItem
import me.clearedSpore.sporeCore.util.ItemBuilder
import org.bukkit.Bukkit
import org.bukkit.Material
import org.bukkit.event.Listener
import org.bukkit.inventory.ItemStack


class WorldEditItem : ModeItem("worldedit"), Listener {
override fun getItemStack(): ItemStack {
if (Bukkit.getPluginManager().isPluginEnabled("WorldEdit") || Bukkit.getPluginManager()
.isPluginEnabled("FastAsyncWorldEdit")
) {
val item = ItemBuilder(Material.WOODEN_AXE)
.addNBTTag("worldedit_item", id)
.setName("WorldEdit Wand".blue())
.addLoreLine("Left Click to set the first position".gray())
.addLoreLine("Right Click to set the second position".gray())
.setGlow(true)
.build()
return item
}
Logger.info("WorldEdit is not installed on this server. The 'worldedit' item will not be given.")
return ItemStack.empty()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import org.bukkit.event.block.BlockBreakEvent
import org.bukkit.event.block.BlockPlaceEvent
import org.bukkit.event.entity.EntityDamageByEntityEvent
import org.bukkit.event.entity.EntityPickupItemEvent
import org.bukkit.event.entity.EntityShootBowEvent
import org.bukkit.event.entity.FoodLevelChangeEvent
import org.bukkit.event.inventory.InventoryClickEvent
import org.bukkit.event.player.*
Expand Down Expand Up @@ -111,6 +112,14 @@ class ModeListener(private val modeProvider: (Player) -> Mode?) : Listener {
if (!mode.inventory) event.isCancelled = true
}

@EventHandler
fun onBowPrepare(event: EntityShootBowEvent) {
val player = event.entity as? Player ?: return
val mode = modeProvider(player) ?: return
if (!mode.pvp) event.isCancelled = true

}

@EventHandler
fun onSilentChest(event: PlayerInteractEvent) {
val player = event.player
Expand Down Expand Up @@ -150,5 +159,6 @@ class ModeListener(private val modeProvider: (Player) -> Mode?) : Listener {
}
}, 0L, 20L)
}
event.isCancelled = true
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,17 @@ object RebootService {
cancelled = true
rebootTask?.cancel()
rebootTask = null
Bukkit.broadcastMessage("§m-------------------------------------")
Bukkit.broadcastMessage("")
Bukkit.broadcastMessage("Reboot has been cancelled.".red())
Bukkit.broadcastMessage("")
Bukkit.broadcastMessage("§m-------------------------------------")
}

private fun sendRebootMessage(timeLeft: Long, isCountdown: Boolean = false) {
val formatted = TimeUtil.formatDuration(timeLeft)
val title = "§lReboot!!".red()
val subtitle = "Rebooting in §f$formatted".blue()
val title = "§lServer Reboot".red()
val subtitle = "The server is rebooting in §f$formatted".blue()

Bukkit.getOnlinePlayers().forEach {
if (isCountdown) {
Expand All @@ -87,9 +89,11 @@ object RebootService {
it.playSound(it, Sound.ENTITY_PLAYER_LEVELUP, 1.0f, 1.0f)
}

Bukkit.broadcastMessage("§m-------------------------------------")
Bukkit.broadcastMessage("")
Bukkit.broadcastMessage("§lReboot!!".red())
Bukkit.broadcastMessage("Rebooting in §f$formatted".blue())
Bukkit.broadcastMessage("§lServer Reboot".red())
Bukkit.broadcastMessage("The server is rebooting in §f$formatted".blue())
Bukkit.broadcastMessage("")
Bukkit.broadcastMessage("§m-------------------------------------")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ object VanishService {
val wasInMode = ModeService.isInMode(userPlayer)

vanishedPlayers.add(uuid)
userPlayer.isSleepingIgnored = true
val config = SporeCore.instance.coreConfig
if (!wasInMode && config.joinLeaveMessages.vanish && config.joinLeaveMessages.leave.isNotEmpty()) {
Bukkit.broadcastMessage(
Expand Down Expand Up @@ -72,6 +73,7 @@ object VanishService {
}

vanishedPlayers.remove(uuid)
userPlayer.isSleepingIgnored = false
val config = SporeCore.instance.coreConfig
if (!wasInMode && config.joinLeaveMessages.vanish && config.joinLeaveMessages.join.isNotEmpty()) {
Bukkit.broadcastMessage(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ class UserListener : Listener {
}


if (config.discord.chat.isNotEmpty() && !autoStaff && !VanishService.isVanished(player.uniqueId)) {
if (config.discord.chat.isNotEmpty() && !ModeService.isInMode(player) && !VanishService.isVanished(player.uniqueId)) {
val embed = Webhook.Embed()
.setColor(0x00FF00)
.setDescription("**${player.name} joined the server**")
Expand Down Expand Up @@ -352,6 +352,8 @@ class UserListener : Listener {
event.quitMessage(null)
wasVanished = true
ModeService.toggleMode(player)
VanishService.vanishedPlayers.remove(player.uniqueId)
player.isSleepingIgnored = false
}


Expand Down Expand Up @@ -381,7 +383,7 @@ class UserListener : Listener {
event.quitMessage = null
} else {
if (config.joinLeaveMessages.leave.isNotBlank()) {
event.quitMessage = config.joinLeaveMessages.join
event.quitMessage = config.joinLeaveMessages.leave
.translate()
.parsePlaceholders(player)
}
Expand Down