Since no one seems to have a copy, I just went ahead and re-implemented it.
You put this code in your LocalSettings.php, and then any time you want to
roll dice, you make an edit that includes @@ROLL@@ in the wikitext. The
DiceRoller system user will then immediately make an edit replacing @@ROLL@@
with a number between 1 and 6, and link to the diff for easy auditing.

function onDiceRoll( $article, $user, $content, $summary, $isMinor,
$isWatch,
        $section, $flags, $revision, $status, $baseRevId ) {
        global $alreadyCheckedForDice;
        global $wgDiceRoller;
        if ( $alreadyCheckedForDice ) {
                return true;
        }
        $alreadyCheckedForDice = true;
        $text = ContentHandler::getContentText( $content );
        $diceCommand = '@@ROLL@@';
        $summary = 'Roll(s):';
        while ( true ) {
                if ( strpos( $text, $diceCommand ) === false ) {
                        break;
                }
                $dieRoll = rand( 1, 6 );
                $revId = $revision->getId();
                $dieRollText = "[[Special:Diff/$revId/next|$dieRoll]]";
                $summary .= " $dieRoll";
                $text = str_replace_first( $diceCommand, $dieRollText,
$text );
        }
        echo $text;
        $content = ContentHandler::makeContent( $text, $article->getTitle()
);
        $user = User::newSystemUser( $wgDiceRoller ) ;
        if ( $user === false ) {
                return true;
        }
        $article->doEditContent( $content, $summary, 0, false, $user );
        return true;
}

$wgHooks['PageContentSaveComplete'][] = 'onDiceRoll';
$alreadyCheckedForDice = false;
$wgDiceRoller = 'DiceRoller';

On Wed, Jun 14, 2017 at 8:42 PM, Jean Valjean <[email protected]>
wrote:

> Does anyone have a copy of the Dice extension? The download link is dead
> at https://www.mediawiki.org/wiki/Extension:Dice
>
> It looks like they were going to mirror it, but I'm not sure that ever
> happened: https://github.com/wikimedia/mediawiki-extensions-Dice
>
> Thanks.
>
_______________________________________________
MediaWiki-l mailing list
To unsubscribe, go to:
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l

Reply via email to