Moved Message sending to Message Manager as per issue #28
This commit is contained in:
@@ -25,6 +25,7 @@ class Game
|
||||
private $eventManager;
|
||||
private $composerManager;
|
||||
private $moduleManager;
|
||||
private $messageManager;
|
||||
private $logger;
|
||||
private $configuration;
|
||||
private $character;
|
||||
@@ -32,6 +33,7 @@ class Game
|
||||
private $cwd;
|
||||
private $timeKeeper;
|
||||
|
||||
|
||||
/**
|
||||
* Construct a game. You probably want to use Bootstrap to do this.
|
||||
* @param Configuration $configuration
|
||||
@@ -184,6 +186,24 @@ class Game
|
||||
return $this->timeKeeper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Message manager
|
||||
* @return MessageManager
|
||||
*/
|
||||
public function getMessageManager(): MessageManager
|
||||
{
|
||||
return $this->messageManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the Message Manager
|
||||
* @param MessageManager $messageManager
|
||||
*/
|
||||
public function setMessageManager(MessageManager $messageManager) : void
|
||||
{
|
||||
$this->messageManager=$messageManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently configured user character.
|
||||
* @return Character
|
||||
|
||||
+14
-2
@@ -27,7 +27,7 @@ class GameBuilder
|
||||
private $composerManagerClass;
|
||||
private $eventManagerClass;
|
||||
private $diceBagClass;
|
||||
|
||||
private $messageManagerClass;
|
||||
/**
|
||||
* Creates the game instance with the prepared parameters.
|
||||
* @return Game
|
||||
@@ -62,7 +62,8 @@ class GameBuilder
|
||||
$diceBag = $this->diceBagClass ?? DiceBag::class;
|
||||
$game->setDiceBag(new $diceBag());
|
||||
|
||||
|
||||
$messageManager=$this->messageManagerClass ?? MessageManager::class;
|
||||
$game->setMessageManager(new $messageManager());
|
||||
return $game;
|
||||
}
|
||||
|
||||
@@ -132,6 +133,17 @@ class GameBuilder
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the fqcn for the message manager to be used
|
||||
* @param string $messageManagerFqcn
|
||||
* @return self
|
||||
*/
|
||||
public function useMessageManager(string $messageManagerFqcn): self
|
||||
{
|
||||
$this->messageManagerClass=$messageManagerFqcn;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the fqcn for the event manager to be used.
|
||||
* @param string $eventManagerFqcn
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/**
|
||||
* Handles the messages in the game
|
||||
* User: nekosune
|
||||
* Date: 07/04/2018
|
||||
* Time: 18:54
|
||||
*/
|
||||
|
||||
namespace LotGD\Core;
|
||||
|
||||
|
||||
use LotGD\Core\Models\Character;
|
||||
use LotGD\Core\Models\Message;
|
||||
use LotGD\Core\Models\MessageThread;
|
||||
use LotGD\Core\Models\SystemCharacter;
|
||||
|
||||
class MessageManager
|
||||
{
|
||||
/**
|
||||
* Sends a message to a MessageThread
|
||||
* @param \LotGD\Core\Models\Character $from
|
||||
* @param string $message
|
||||
* @param \LotGD\Core\Models\MessageThread $thread
|
||||
* @param bool $systemMessage
|
||||
* @return \LotGD\Core\Models\Message
|
||||
* @throws Exceptions\CoreException
|
||||
*/
|
||||
public function send(
|
||||
Character $from,
|
||||
string $message,
|
||||
MessageThread $thread,
|
||||
bool $systemMessage = false
|
||||
) {
|
||||
$message=new Message($from, $message, $thread, $systemMessage);
|
||||
$thread->addMessage($message);
|
||||
return $message;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sends a system message to a MessageThread
|
||||
* @param string $message
|
||||
* @param \LotGD\Core\Models\MessageThread $thread
|
||||
* @return \LotGD\Core\Models\Message
|
||||
* @throws Exceptions\ArgumentException
|
||||
* @throws Exceptions\CoreException
|
||||
*/
|
||||
public function sendSystemMessage(
|
||||
string $message,
|
||||
MessageThread $thread
|
||||
) {
|
||||
$message=new Message(SystemCharacter::getInstance(), $message, $thread, true);
|
||||
$thread->addMessage($message);
|
||||
return $message;
|
||||
}
|
||||
}
|
||||
+4
-31
@@ -38,48 +38,21 @@ class Message
|
||||
/** @Column(type="boolean", nullable=false) */
|
||||
private $systemMessage = false;
|
||||
|
||||
/**
|
||||
* Sends a message to a MessageThread
|
||||
* @param \LotGD\Core\Models\Character $from
|
||||
* @param string $message
|
||||
* @param \LotGD\Core\Models\MessageThread $thread
|
||||
* @param bool $systemMessage
|
||||
* @return \LotGD\Core\Models\Message
|
||||
*/
|
||||
public static function send(
|
||||
Character $from,
|
||||
string $message,
|
||||
MessageThread $thread,
|
||||
bool $systemMessage = false
|
||||
) {
|
||||
$thread->addMessage(new self($from, $message, $thread, $systemMessage));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sends a system message to a MessageThread
|
||||
* @param string $message
|
||||
* @param \LotGD\Core\Models\MessageThread $thread
|
||||
* @return \LotGD\Core\Models\Message
|
||||
*/
|
||||
public static function sendSystemMessage(
|
||||
string $message,
|
||||
MessageThread $thread
|
||||
) {
|
||||
$thread->addMessage(new self(SystemCharacter::getInstance(), $message, $thread, true));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Constructs the message.
|
||||
*
|
||||
* This method has been made protected to prevent from accessing it directly. Use
|
||||
* the static methods self::send() and self::sendSystemMessage() instead.
|
||||
* Use the static methods self::send() and self::sendSystemMessage() instead.
|
||||
* @param CharacterInterface $from
|
||||
* @param string $message
|
||||
* @param MessageThread $thread
|
||||
* @param bool $systemMessage
|
||||
* @throws ArgumentException
|
||||
*/
|
||||
protected function __construct(CharacterInterface $from, string $message, MessageThread $thread, bool $systemMessage)
|
||||
public function __construct(CharacterInterface $from, string $message, MessageThread $thread, bool $systemMessage)
|
||||
{
|
||||
if ($from instanceof Character) {
|
||||
if ($from->isDeleted() === true) {
|
||||
|
||||
Reference in New Issue
Block a user