]> git.localhorst.tv Git - alttp.git/blobdiff - app/TwitchBot/IRCMessage.php
log irc messages
[alttp.git] / app / TwitchBot / IRCMessage.php
index c0acfbb547cc2d205fff7ef5420fdfbe07ce9ad1..1e64bd9b6de7c12c0674ce7966e06adbd914f0b0 100644 (file)
@@ -2,6 +2,8 @@
 
 namespace App\TwitchBot;
 
+use App\Models\ChatLog;
+
 class IRCMessage {
 
        public $command = null;
@@ -125,6 +127,15 @@ class IRCMessage {
                return $str;
        }
 
+       public function log() {
+               ChatLog::create([
+                       'command' => $this->command,
+                       'nick' => $this->nick,
+                       'params' => $this->params,
+                       'tags' => $this->tags,
+               ]);
+       }
+
        public static function join($channels) {
                $msg = new IRCMessage();
                $msg->command = 'JOIN';
@@ -132,6 +143,28 @@ class IRCMessage {
                return $msg;
        }
 
+       public static function part($channels) {
+               $msg = new IRCMessage();
+               $msg->command = 'PART';
+               $msg->params[] = implode(',', $channels);
+               return $msg;
+       }
+
+       public static function ping($token = 'localhorsttv') {
+               $msg = new IRCMessage();
+               $msg->command = 'PING';
+               $msg->params[] = $token;
+               return $msg;
+       }
+
+       public static function privmsg($target, $message) {
+               $msg = new IRCMessage();
+               $msg->command = 'PRIVMSG';
+               $msg->params[] = $target;
+               $msg->params[] = $message;
+               return $msg;
+       }
+
        public function getPrivMsgTarget() {
                if (!empty($this->params)) {
                        return $this->params[0];
@@ -154,6 +187,10 @@ class IRCMessage {
                return $this->command == 'PING';
        }
 
+       public function isPong() {
+               return $this->command == 'PONG';
+       }
+
        public function isPrivMsg() {
                return $this->command == 'PRIVMSG';
        }