Files
apollo/game/plugin/chat/private-messaging/src/messaging.plugin.kts
T
2017-09-16 18:49:06 +01:00

26 lines
896 B
Kotlin

import org.apollo.game.message.impl.ForwardPrivateChatMessage
import org.apollo.game.message.impl.PrivateChatMessage
import org.apollo.game.model.entity.Player
import org.apollo.game.model.entity.setting.PrivacyState.OFF
import org.apollo.game.model.entity.setting.PrivacyState.ON
on { PrivateChatMessage::class }
.then {
val friend = it.world.getPlayer(username)
if (interactionPermitted(it, friend)) {
friend.send(ForwardPrivateChatMessage(it.username, it.privilegeLevel, compressedMessage))
}
}
fun interactionPermitted(player: Player, friend: Player?): Boolean {
val username = player.username
val privacy = friend?.friendPrivacy
if (friend == null || friend.hasIgnored(username)) {
return false
} else {
return if (friend.friendsWith(username)) privacy != OFF else privacy == ON
}
}