feat: 메시지 전송 페널티

This commit is contained in:
2024-06-08 17:22:10 +00:00
parent 8bd0cc1c64
commit 0c07060f4d
2 changed files with 10 additions and 0 deletions
+7
View File
@@ -192,6 +192,9 @@ class SendMessage extends \sammo\BaseAPI
// 전체 메세지 // 전체 메세지
if ($mailbox === Message::MAILBOX_PUBLIC) { if ($mailbox === Message::MAILBOX_PUBLIC) {
if($penalty[PenaltyKey::NoSendPublicMsg->value] ?? 0) {
return '공개 메세지를 보낼 수 없습니다.';
}
$msgID = $this->genPublicMessage($src, $text)->send(); $msgID = $this->genPublicMessage($src, $text)->send();
return [ return [
'msgType' => 'public', 'msgType' => 'public',
@@ -232,6 +235,10 @@ class SendMessage extends \sammo\BaseAPI
$lastMsg = new \DateTime($session->lastMsg ?? '0000-00-00'); $lastMsg = new \DateTime($session->lastMsg ?? '0000-00-00');
$msg_interval = $now->getTimestamp() - $lastMsg->getTimestamp(); $msg_interval = $now->getTimestamp() - $lastMsg->getTimestamp();
if($penalty[PenaltyKey::NoSendPrivateMsg->value] ?? 0) {
return '개인 메세지를 보낼 수 없습니다.';
}
$msg_min_interval = $penalty[PenaltyKey::SendPrivateMsgDelay->value] ?? 2; $msg_min_interval = $penalty[PenaltyKey::SendPrivateMsgDelay->value] ?? 2;
if ($msg_interval < $msg_min_interval) { if ($msg_interval < $msg_min_interval) {
return "개인메세지는 {$msg_min_interval}초당 1건만 보낼 수 있습니다!"; return "개인메세지는 {$msg_min_interval}초당 1건만 보낼 수 있습니다!";
+3
View File
@@ -7,6 +7,8 @@ namespace sammo\Enums;
*/ */
enum PenaltyKey: string{ enum PenaltyKey: string{
case SendPrivateMsgDelay = 'sendPrivateMsgDelay'; case SendPrivateMsgDelay = 'sendPrivateMsgDelay';
case NoSendPrivateMsg = 'noSendPrivateMsg';
case NoSendPublicMsg = 'noSendPublicMsg';
case NoTopSecret = 'noTopSecret'; case NoTopSecret = 'noTopSecret';
case NoChief = 'noChief'; case NoChief = 'noChief';
case NoAmbassador = 'noAmbassador'; case NoAmbassador = 'noAmbassador';
@@ -14,4 +16,5 @@ enum PenaltyKey: string{
case NoChiefTurnInput = 'noChiefTurnInput'; case NoChiefTurnInput = 'noChiefTurnInput';
case NoChiefChange = 'noChiefChange'; case NoChiefChange = 'noChiefChange';
case NoFoundNation = 'noFoundNation'; case NoFoundNation = 'noFoundNation';
case NoChosenAssignment = 'noChosenAssignment';
} }