- protected function executePresence(Discord $discord) {
- $activity = null;
- $idle = false;
- $status = 'online';
- $afk = false;
- if (isset($this->parameters['activity'])) {
- $activity = new Activity($discord);
- $activity->type = $this->parameters['activity'];
- if (isset($this->parameters['name'])) {
- $activity->name = $this->parameters['name'];
- }
- if (isset($this->parameters['url'])) {
- $activity->url = $this->parameters['url'];
- }
- }
- if (isset($this->parameters['idle'])) {
- $idle = $this->parameters['idle'];
- }
- if (isset($this->parameters['status'])) {
- $status = $this->parameters['status'];
- }
- if (isset($this->parameters['afk'])) {
- $afk = $this->parameters['afk'];
- }
- $discord->updatePresence($activity, $idle, $status, $afk);
+
+ private function setDone() {
+ $this->status = 'done';
+ $this->save();
+ }
+
+ private function setExecuting() {
+ $this->status = 'executing';
+ $this->executed_at = now();
+ $this->save();
+ }
+
+ private function setException(\Throwable $e) {
+ $this->status = 'exception';
+ $this->result = [
+ 'type' => get_class($e),
+ 'file' => $e->getFile(),
+ 'line' => $e->getLine(),
+ 'message' => $e->getMessage(),
+ ];
+ $this->save();