mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-12 23:14:36 +01:00
69 lines
2.4 KiB
Go
69 lines
2.4 KiB
Go
package channelserver
|
|
|
|
import (
|
|
"erupe-ce/common/byteframe"
|
|
"erupe-ce/common/stringsupport"
|
|
"erupe-ce/common/token"
|
|
"erupe-ce/network/mhfpacket"
|
|
)
|
|
|
|
func handleMsgMhfGetBbsUserStatus(s *Session, p mhfpacket.MHFPacket) {
|
|
//Post Screenshot pauses till this succeedes
|
|
pkt := p.(*mhfpacket.MsgMhfGetBbsUserStatus)
|
|
bf := byteframe.NewByteFrame()
|
|
bf.WriteUint32(200)
|
|
bf.WriteUint32(0)
|
|
bf.WriteUint32(0)
|
|
bf.WriteUint32(0)
|
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
|
}
|
|
|
|
func handleMsgMhfGetBbsSnsStatus(s *Session, p mhfpacket.MHFPacket) {
|
|
pkt := p.(*mhfpacket.MsgMhfGetBbsSnsStatus)
|
|
bf := byteframe.NewByteFrame()
|
|
bf.WriteUint32(200)
|
|
bf.WriteUint32(401)
|
|
bf.WriteUint32(401)
|
|
bf.WriteUint32(0)
|
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
|
}
|
|
|
|
func handleMsgMhfApplyBbsArticle(s *Session, p mhfpacket.MHFPacket) {
|
|
pkt := p.(*mhfpacket.MsgMhfApplyBbsArticle)
|
|
bf := byteframe.NewByteFrame()
|
|
articleToken := token.Generate(40)
|
|
bf.WriteUint32(200)
|
|
bf.WriteUint32(s.server.erupeConfig.Screenshots.Port)
|
|
bf.WriteUint32(0)
|
|
bf.WriteUint32(0)
|
|
bf.WriteBytes(stringsupport.PaddedString(articleToken, 64, false))
|
|
bf.WriteBytes(stringsupport.PaddedString(s.server.erupeConfig.Screenshots.Host, 64, false))
|
|
|
|
if s.server.erupeConfig.SaveDumps.Enabled && s.server.erupeConfig.Discord.Enabled {
|
|
messageId := s.server.DiscordScreenShotSend(pkt.Name, pkt.Title, pkt.Description) // TODO: send and get back message id store in db
|
|
|
|
_, err := s.server.db.Exec("INSERT INTO public.screenshots (article_id,discord_message_id,char_id,title,description) VALUES ($1,$2,$3,$4,$5)", articleToken, messageId, s.charID, pkt.Title, pkt.Description)
|
|
if err != nil {
|
|
doAckBufFail(s, pkt.AckHandle, make([]byte, 4))
|
|
} else {
|
|
|
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
|
s.server.BroadcastChatMessage("Screenshot has been sent to discord")
|
|
|
|
}
|
|
|
|
} else if s.server.erupeConfig.SaveDumps.Enabled {
|
|
_, err := s.server.db.Exec("INSERT INTO public.screenshots (article_id,char_id,title,description) VALUES ($1,$2,$3,$4)", articleToken, s.charID, pkt.Title, pkt.Description)
|
|
if err != nil {
|
|
doAckBufFail(s, pkt.AckHandle, make([]byte, 4))
|
|
} else {
|
|
s.server.BroadcastChatMessage("Screenshot has been sent to server")
|
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
|
|
|
}
|
|
} else {
|
|
doAckBufFail(s, pkt.AckHandle, make([]byte, 4))
|
|
s.server.BroadcastChatMessage("No destination for screenshots have been configured by the host")
|
|
}
|
|
}
|