mirror of
https://github.com/mii443/BungeeDiscordChat.git
synced 2025-08-22 15:05:29 +00:00
DiscordBotと、サーバーメッセージの処理等々
This commit is contained in:
@ -7,6 +7,9 @@ import net.md_5.bungee.api.ProxyServer
|
||||
import net.md_5.bungee.api.chat.TextComponent
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer
|
||||
import net.md_5.bungee.api.event.ChatEvent
|
||||
import net.md_5.bungee.api.event.PlayerDisconnectEvent
|
||||
import net.md_5.bungee.api.event.PostLoginEvent
|
||||
import net.md_5.bungee.api.event.ServerConnectedEvent
|
||||
import net.md_5.bungee.api.plugin.Listener
|
||||
import net.md_5.bungee.api.plugin.Plugin
|
||||
import net.md_5.bungee.event.EventHandler
|
||||
@ -23,7 +26,7 @@ class BungeeDiscordChat : Plugin(), Listener{
|
||||
var discord = DiscordBot()
|
||||
|
||||
override fun onEnable() {
|
||||
/*
|
||||
/**
|
||||
for (command in arrayOf(
|
||||
"tell", "msg", "message", "m", "w", "t")) {
|
||||
proxy.pluginManager.registerCommand(
|
||||
@ -33,11 +36,29 @@ class BungeeDiscordChat : Plugin(), Listener{
|
||||
proxy.pluginManager.registerCommand(
|
||||
this, ReplyCommand(this, command))
|
||||
}
|
||||
*/
|
||||
**/
|
||||
loadConfig()
|
||||
|
||||
proxy.pluginManager.registerListener(this, this)
|
||||
}
|
||||
|
||||
fun loadConfig(){
|
||||
val config = ConfigFile(this).getConfig()
|
||||
try {
|
||||
this.lunachat = config?.getBoolean("lunachat")!!
|
||||
|
||||
discord.token = config.getString("Discord.Token")
|
||||
discord.guildID = config.getLong("Discord.Guild")
|
||||
discord.chatChannelID = config.getLong("Discord.ChatChannel")
|
||||
discord.commandlogChannelID = config.getLong("Discord.CommandlogChannel")
|
||||
discord.systemChannelID = config.getLong("Discord.SystemChannel")
|
||||
|
||||
} catch (e: NullPointerException) {
|
||||
e.printStackTrace()
|
||||
discord.system("[Error]${e.localizedMessage}")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDisable() {
|
||||
}
|
||||
|
||||
@ -56,11 +77,38 @@ class BungeeDiscordChat : Plugin(), Listener{
|
||||
sendMessage(player.uniqueId, chatMessage)
|
||||
}
|
||||
}
|
||||
if (!e.isCommand || !e.isProxyCommand) {
|
||||
if (e.isCommand || e.isProxyCommand) {
|
||||
discord.cmdlog("[CMD-LOG] <${e.sender}> $message")
|
||||
}else {
|
||||
discord.chat(chatMessage)
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
fun onLogin(e: PostLoginEvent){
|
||||
val player = e.player
|
||||
val name = player.name
|
||||
ProxyServer.getInstance().broadcast("§e§l[ログイン] §f§l${name}§r§fさんがサーバーに参加しました。")
|
||||
discord.chat(":bangbang: **${player}さんがログインしました**")
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
fun onLogout(e: PlayerDisconnectEvent) {
|
||||
val player = e.player
|
||||
val name = player.name
|
||||
ProxyServer.getInstance().broadcast("§e§l[ログアウト] §f§l${name}§r§fさんがサーバーから退出しました。")
|
||||
discord.chat(":x: **${name}さんがログアウトしました**")
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
fun onMove(e: ServerConnectedEvent){
|
||||
val player = e.player
|
||||
val name = player.name
|
||||
val server = e.server.info.name
|
||||
ProxyServer.getInstance().broadcast("§e§l[ムーブメント] §f§l${name}§r§fさんが${server}サーバーに移動しました。")
|
||||
discord.chat(":door: **${name}さんが${server}サーバーに移動しました。**")
|
||||
}
|
||||
|
||||
fun sendMessage(uuid: UUID ,text:String){
|
||||
ProxyServer.getInstance().getPlayer(uuid).sendMessage(TextComponent(text))
|
||||
}
|
||||
@ -68,6 +116,4 @@ class BungeeDiscordChat : Plugin(), Listener{
|
||||
private fun removeColorCode(msg: String?): String? {
|
||||
return ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', msg))
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -10,7 +10,7 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter
|
||||
import javax.security.auth.login.LoginException
|
||||
|
||||
class DiscordBot() : ListenerAdapter() {
|
||||
class DiscordBot : ListenerAdapter() {
|
||||
var plugin: BungeeDiscordChat? = null
|
||||
|
||||
lateinit var jda: JDA
|
||||
@ -21,9 +21,11 @@ class DiscordBot() : ListenerAdapter() {
|
||||
var guildID:Long = 0
|
||||
var chatChannelID:Long = 0
|
||||
var systemChannelID:Long = 0
|
||||
var commandlogChannelID:Long = 0
|
||||
|
||||
var chatChannel: TextChannel? = null
|
||||
var systemChannel:TextChannel? = null
|
||||
var commandlogChannel: TextChannel? = null
|
||||
|
||||
|
||||
// チャットチャンネル出力
|
||||
@ -37,6 +39,10 @@ class DiscordBot() : ListenerAdapter() {
|
||||
fun system(text:String){
|
||||
systemChannel?.sendMessage(text)?.queue()
|
||||
}
|
||||
// コマンドログ出力
|
||||
fun cmdlog(text: String){
|
||||
commandlogChannel?.sendMessage(text)?.queue()
|
||||
}
|
||||
|
||||
fun shutdown(){
|
||||
jda.shutdown()
|
||||
@ -58,6 +64,7 @@ class DiscordBot() : ListenerAdapter() {
|
||||
guild = jda.getGuildById(this.guildID);
|
||||
chatChannel = guild?.getTextChannelById(this.chatChannelID)
|
||||
systemChannel = guild?.getTextChannelById(this.systemChannelID)
|
||||
commandlogChannel = guild?.getTextChannelById(this.commandlogChannelID)
|
||||
|
||||
} catch (e: LoginException) {
|
||||
e.printStackTrace()
|
||||
|
8
src/main/resources/config.yml
Normal file
8
src/main/resources/config.yml
Normal file
@ -0,0 +1,8 @@
|
||||
Discord:
|
||||
Token: ""
|
||||
Guild:
|
||||
ChatChannel:
|
||||
CommandlogChannel:
|
||||
SystemChannel:
|
||||
|
||||
lunachat: true
|
Reference in New Issue
Block a user