Hi,
ich versuche eben, mein cls-Kommando fertigzuschreiben, der beim Aufruf einfach bei allen den aktuellen Chatverlauf leeren soll. Leider scheitert es an der Umsetzung. Könnt ihr mir helfen?
Mein Zwischenstand sieht so aus:
Code
<?php
namespace chat\system\command\commands;
use \wcf\system\WCF;
/**
* Clears the chat. Don't use it to troll
*/
class ClsCommand extends \chat\system\command\AbstractRestrictedCommand {
/**
* @see \chat\system\command\IRestrictedCommand::checkPermission()
*/
public function checkPermission() {
parent::checkPermission();
WCF::getSession()->checkPermissions(array('user.chat.canTempRoom')); //change to mod.chat.canClearScreen
}
/**
* @see \chat\system\command\ICommand::getType()
*/
public function getType() {
return \chat\data\message\Message::TYPE_CLEAR;
}
/**
* @see \chat\system\command\ICommand::getMessage()
*/
public function getMessage() {
return "Der Chatverlauf wurde geleert! Oh noez!";
}
}
Alles anzeigen
Derzeit kann es aufrufen, der temporäre Räume erstellen kann. Das soll sich natürlich ändern, also nicht wundern Jedenfalls wird beim Aufruf der Funktion der Text von der getMessage-Methode angezeigt. Der Chatverlauf bleibt allerdings stehen. Ich ging davon aus, dass es bereits ausreicht, den Nachrichtentyp auf TYPE_CLEAR zu stellen, da dies in der Vorgängerversion des Chats auch ausgereicht hat.
~Schorsch