- $last = $this->getNote($channel, 'last_special');
- if ($last != 'gg' && $this->checkForGG($channel)) {
- $this->setNote($channel, 'last_special', 'gg');
- return $channel->randomOfClass('gg');
- }
- if ($last != 'number' && $this->checkForNumbers($channel)) {
- $this->setNote($channel, 'last_special', 'number');
- return $this->randomContextualNumber($channel);
- }
- if ($last != 'lol' && $this->checkForLaughter($channel)) {
- $this->setNote($channel, 'last_special', 'lol');
- return $this->randomLaughter($channel);
- }
- if ($last != 'glhf' && $this->checkForGLHF($channel)) {
- $this->setNote($channel, 'last_special', 'glhf');
- return $channel->randomOfClass('gl');
- }
- if ($last != 'hi' && $this->checkForGreeting($channel)) {
- $this->setNote($channel, 'last_special', 'hi');
- return $channel->randomOfClass('hi');
- }
- if ($last != 'hype' && $this->checkForHype($channel)) {
- $this->setNote($channel, 'last_special', 'hype');
- return $channel->randomOfClass('hype');
+ if ($this->hasQueuedSpecial($channel)) {
+ $classification = $this->getQueuedSpecial($channel);
+ if (is_string($classification)) {
+ $this->tagChannelSpecialSent($channel, $classification);
+ }
+ $this->clearQueuedSpecial($channel);
+ return $this->getRandomOfClass($channel, $classification);