feat: 메시지 전송 페널티
This commit is contained in:
@@ -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건만 보낼 수 있습니다!";
|
||||||
|
|||||||
@@ -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';
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user