From fee769714d76784c687d5478114570ad51b31d58 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Mon, 22 May 2023 01:55:09 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20System=20MessageTarget=EB=A5=BC=20?= =?UTF-8?q?=EB=B9=A0=EB=A5=B4=EA=B2=8C=20=EC=83=9D=EC=84=B1=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=ED=95=A8=EC=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/sammo/Message.php | 2 +- hwe/sammo/MessageTarget.php | 30 +++++++++++++++++------------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/hwe/sammo/Message.php b/hwe/sammo/Message.php index ea2db1c0..e3039883 100644 --- a/hwe/sammo/Message.php +++ b/hwe/sammo/Message.php @@ -381,7 +381,7 @@ class Message * @param string $msg */ public static function sendPrivateMsgAsNotice(array|int|MessageTarget $targets, string $msg): void{ - $src = new MessageTarget(0, '', 0, 'System', '#000000'); + $src = MessageTarget::buildSystemTarget(); if(is_int($targets)){ $targets = [$targets]; } diff --git a/hwe/sammo/MessageTarget.php b/hwe/sammo/MessageTarget.php index c8ec7ba5..f2f28008 100644 --- a/hwe/sammo/MessageTarget.php +++ b/hwe/sammo/MessageTarget.php @@ -10,7 +10,7 @@ class MessageTarget extends Target { public $color; /** @var string */ public $icon; - + public function __construct( int $generalID, string $generalName, @@ -19,13 +19,13 @@ class MessageTarget extends Target { string $color, string $icon='' ){ - + parent::__construct($generalID, $nationID); if(!$icon){ $icon = ServConfig::getSharedIconPath().'/default.jpg'; } - + $this->generalName = $generalName; $this->nationName = $nationName; $this->color = $color; @@ -47,28 +47,28 @@ class MessageTarget extends Target { } return new MessageTarget( - $arr['id'], - $arr['name'], - $arr['nation_id'], - $arr['nation'], - $arr['color'], + $arr['id'], + $arr['name'], + $arr['nation_id'], + $arr['nation'], + $arr['color'], $arr['icon']??'' ); } /** - * DB 부하 감수하고 일일히 찾아줌. + * DB 부하 감수하고 일일히 찾아줌. * 게임 로직과 크게 연관이 없는 곳에서 메시지를 생성해야 할 경우에만 사용할 것을 권함. * @return MessageTarget */ public static function buildQuick(int $generalID){ $db = DB::db(); list( - $generalName, - $nationID, - $imgsvr, + $generalName, + $nationID, + $imgsvr, $picture - ) = $db->queryFirstList('SELECT `name`, nation, imgsvr, picture FROM general WHERE `no`=%i', $generalID); + ) = $db->queryFirstList('SELECT `name`, nation, imgsvr, picture FROM general WHERE `no`=%i', $generalID); if($generalName === null){ throw new \RuntimeException('장수가 없음:'.$generalID); @@ -79,6 +79,10 @@ class MessageTarget extends Target { return new MessageTarget($generalID, $generalName, $nationID, $nation['name'], $nation['color'], $icon); } + public static function buildSystemTarget(): MessageTarget{ + return new MessageTarget(0, '', 0, 'System', '#000000'); + } + public function toArray() : array{ return [ 'id'=>$this->generalID,