Known Module's, <?php echo $NOModulesActive; ?> Active</span> </h3> </div> <div class="panel-body"> <?php echo $templates->informationPanel('<p> Note: Not all modules are listed here.<br/> Unlisted modules can be enabled/disabled by using "Manually Enable/Disable Modules".<br/> After manually enabling the module, the module will become listed here. </p> <p> Note: Each module page has a module active indication. Here\'s a list of possible module statuses: </p> <ul> <li>"<span class="text-success"><span class="fa fa-check-circle"></span> Module Activated</span>" - Module is active </li> <li>"<span class="text-danger"><span class="fa fa-exclamation-circle"></span> Module Inactive</span>" - Module is inactive </li> </ul>'); ?> <hr/> <h4 class="collapsible-master">Manually Enable/Disable Modules</h4> <div class="collapsible-content"> <div class="row"> <div class="col-sm-4"> <?php
<select class="form-control" name="file"> <?php echo $sfxSelectOptions; ?> </select> </div> <input type="text" class="form-control" name="command" placeholder="[command]"/> <span class="input-group-btn"> <button class="btn btn-primary"><span class="fa fa-paper-plane-o"></span></button> </span> </div> </div> </form> </div> </div> <div class="row"> <div class="col-sm-8"> <?php echo $templates->informationPanel('<p>This feature only works on the latest <a href="https://github.com/GloriousEggroll/PhantomBot" target="_blank">Phantombot</a> "nightly"!</p>' . '<p>Place your audio files (mp3, wav or ogg) in "app/content/sfx" and they will be listed automatically.</p>' . '<p>Select a sfx from the dropdown, enter a command and click the send button to save it.</p>' . '<p>You will have to open the Sfx Host using the "Open Sfx Host" Button"</p>' . '<p class="text-warning">Currently there\'s no volume control. This will be added later on!</p>'); ?> </div> </div> </div> <hr/> <?php echo $templates->dataTable('Current Sfx Commands', ['command', 'file', ''], $sfxTableDataRows, true); ?> </div> </div> </div>
<h3 class="panel-title"> Raid System <?php echo $templates->toggleFavoriteButton(); ?> <?php echo $templates->moduleActiveIndicator($functions->getModuleStatus('raidSystem.js')); ?> </h3> </div> <div class="panel-body"> <p> Keep a record of incomming raids. </p> <?php echo $firstTime ? $templates->informationPanel('<p>We\'ve created the command !doraid in order to make the Raid target field work.</p>Because PhantomBot does not have such a thing...') : ''; ?> <hr/> <div class="row"> <div class="col-sm-4"> <h4>Report Incoming Raid</h4> <?php echo $templates->botCommandForm('raider', 'Raid host'); ?> </div> <div class="col-sm-4"> <h4>Let's Raid</h4> <?php echo $doRaidCommandForm; ?> </div>
echo $templates->botCommandForm('pricecom', 'Price', '[command] [amount]'); ?> <?php echo $templates->botCommandForm('permcom', 'Permission', '[command] [group] [mode]'); ?> <?php echo $templates->botCommandForm('rewardcom', 'Reward', '[command] [amount]'); ?> </div> <div class="col-sm-6"> <?php echo $templates->informationPanel('<p>!Permcom uses a "<b>mode</b>" system, which is for targeting what groups has access to the command.<br/> <ul> <li>1: Setting the mode as "<b>1</b>" will set the command to be accessible by <cite>ONLY</cite> the chosen group. </li> <li>2: Setting the mode as "<b>2</b>" will set the command to be accessible by the chosen group you and any group ranked higher. </li> </ul> <p><b>Alias:</b> Alias means another word for the same command. If you set !points with an alias as wallet, the !points command will respond to !wallet.</p>'); ?> </div> </div> </div> <hr/> <?php echo $templates->dataTable('Current Custom Commands', ['Command', 'Attributes', 'Aliases', ''], $customCommandsTableRows, true, 'custom-commands'); ?> <hr/> <?php echo $templates->dataTable('Default Command Settings', ['Command', 'Attributes', 'Aliases'], $defaultCommandsTableRows, true, 'custom-commands');
?> </div> </div> <hr/> <h4 class="collapsible-master">Notice Settings</h4> <div class="collapsible-content"> <div class="row"> <div class="col-sm-4"> <?php echo $templates->botCommandForm('notice req', 'Message amount requirement', '[amount]', array_key_exists('reqmessages', $noticeSettings) ? $noticeSettings['reqmessages'] : '25'); ?> <?php echo $templates->botCommandForm('notice timer', 'Notice interval', '[minutes]', array_key_exists('interval', $noticeSettings) ? $noticeSettings['interval'] : '10'); ?> </div> <div class="col-sm-4 col-sm-offset-4"> <?php echo $templates->informationPanel('<b>Message Requirement</b> is the amount of messages in chat that will trigger a notice.<br> <b>Notice Interval</b> is the amount of time before triggering from the amount of messages in chat.'); ?> </div> </div> </div> <hr/> <?php echo $templates->dataTable('Current Notices', ['#id', 'Message'], $noticesTableRows); ?> </div> </div> </div>
?> <?php echo $templates->moduleActiveIndicator($functions->getModuleStatus('timeSystem.js')); ?> </h3> </div> <div class="panel-body"> <div class="row"> <div class="col-sm-4"> <?php echo $templates->switchToggle('Toggle Time Command Permissions For Mods', 'doQuickCommand', '[\'time toggle\']', null, array_key_exists('permToggleTime', $botSettings) && filter_var($botSettings['permToggleTime'], FILTER_VALIDATE_BOOLEAN)); ?> </div> <div class="col-sm-4 col-sm-offset-4"> <?php echo $templates->informationPanel('Toggle permissions for time changing commands for Mods.<br/><b>Red means Admin-only!</b>'); ?> </div> </div> <hr/> <h4 class="collapsible-master">Time Control</h4> <div class="collapsible-content"> <div class="row"> <div class="col-sm-4"> <?php echo $templates->botCommandForm('time', 'Check viewer time'); ?> </div> <div class="col-sm-4"> <?php
<div class="row"> <div class="col-sm-4"> <?php echo $templates->botCommandForm('poll open', 'Start a normal poll', '[option1] [option2]'); ?> <div class="form-group"> <?php echo $templates->botCommandButton('poll close', 'End Current Poll'); ?> </div> </div> <div class="col-sm-4"> <?php echo $templates->botCommandForm('poll open -t', 'Start a timed poll', '[seconds] [option1] [option2]'); ?> </div> <div class="col-sm-4"> <?php echo $templates->informationPanel('To vote type <b>!vote "option"</b> in chat.'); ?> </div> </div> <hr/> <h4>Poll Results</h4> <?php echo $templates->botCommandButton('poll results', 'Announce Last Poll Results'); ?> </div> </div> </div>
echo $templates->moduleActiveIndicator($functions->getModuleStatus('greetingSystem.js')); ?> </h3> </div> <div class="panel-body"> <h4 class="collapsible-master">Default Greeting Settings</h4> <div class="collapsible-content"> <?php echo $templates->switchToggle('Toggle Auto-Greeting', 'doQuickCommand', '[\'greeting toggledefault\']', null, array_key_exists('autoGreetEnabled', $greetingSettings) && $greetingSettings['autoGreetEnabled'] == 'true'); ?> <div class="row"> <div class="col-sm-6"> <?php echo $templates->botCommandForm('greeting setdefault', 'Set global greeting message', '[message]', array_key_exists('defaultJoin', $greetingSettings) ? $greetingSettings['defaultJoin'] : ''); ?> </div> <div class="col-sm-4"> <?php echo $templates->informationPanel('Users can set their own greeting using "!greeting enable <message>".<br /><br />To disable a personal message use "!greeting disable".'); ?> </div> </div> </div> <hr/> <?php echo $templates->dataTable('User Greetings', ['Username', 'Greeting'], $userGreetingRows, true); ?> </div> </div> </div>
?> "/> <span class="input-group-btn"> <button class="btn btn-primary" onclick="saveToConfig('misc/alertWindowSize', 'setting-window-size', this)"> Save </button> </span> </div> </div> </div> </div> <div class="row"> <div class="col-sm-8"> <?php echo $templates->informationPanel('<p>Use (name) in the Alert Text to insert the new follower/hoster\'s name.</p>' . '<p>Use <code>//' . \PBPanel\AppLoader::getBaseUrl() . '/stream-alerts-player.php</code> in your OBS browser, to embed the alerts easilly in your stream!</p>' . '<p>Leave the sound field empty if you don\'t want to use sound effects on alerts.</p>' . '<p>Empty the CSS field and save to reset it\'s original value!</p>' . '<p>Donation alerts will be available soon!</p>'); ?> </div> </div> <hr/> <h4 class="collapsible-master">Follower Alerts</h4> <div class="collapsible-content"> <div class="row"> <div class="col-sm-4"> <div class="form-group"> <span>Alert Background <span class="text-muted">(file has to be hosted online!)</span></span> <div class="input-group"> <input type="text" class="form-control" id="setting-alert-bg-follower" placeholder="url"
<div class="col-sm-8"> <div class="btn-toolbar"> <?php echo $templates->botCommandButton('slot', 'Play The Slots'); ?> <?php echo $templates->botCommandButton('d !chat NEW!!! The Slot Machine! type !slot to try your luck!', 'Hype The Slots'); ?> <?php echo $templates->switchToggle('Toggle Cool Down Messages', 'doQuickCommand', '[\'slot CooldownMessages toggle\']', null, array_key_exists('slotCMessages', $slotMachineSettings) && $slotMachineSettings['slotCMessages'] == 1); ?> </div> </div> <div class="col-sm-4"> <?php echo $templates->informationPanel('<p>Win points by hitting 3 of the same emotes in a row!</p>Emote 1 is most likely to triple while emote 7 is least likely to!'); ?> </div> </div> <hr/> <h4 class="collapsible-master">General Settings</h4> <div class="collapsible-content"> <div class="row"> <div class="col-sm-4"> <?php echo $templates->botCommandForm('slot time', 'Set Slot Cool Down', '[seconds]', array_key_exists('slotTimer', $slotMachineSettings) ? $slotMachineSettings['slotTimer'] : '0'); ?> </div> <div class="col-sm-4"> <?php
?> </div> <div class="col-sm-4"> <?php echo $templates->botCommandForm('bet max', 'Set maximum bet', '[amount]'); ?> </div> <div class="col-sm-4"> <?php echo $templates->botCommandForm('bet time', 'Set join time', '[seconds]'); ?> </div> </div> <hr/> <h4>Choose winner</h4> <div class="row"> <div class="col-sm-4"> <?php echo $templates->botCommandForm('bet win', 'Select winner', '[option]'); ?> </div> <div class="col-sm-4 col-sm-offset-4"> <?php echo $templates->informationPanel('Have a viewer decide who wins by having them use "!bet win <option>".'); ?> </div> </div> </div> </div> </div>
?> <?php echo $templates->moduleActiveIndicator($functions->getModuleStatus('./handlers/donationHandler.js')); ?> </h3> </div> <div class="panel-body"> <h4>Donation Event Settings</h4> <div class="btn-toolbar"> <?php echo $templates->switchToggle('Enable Donation Alerts', 'doQuickCommand', '[\'donationalert toggle\']', '', array_key_exists('donation_toggle', $botSettings) && $botSettings['donation_toggle'] == '1'); ?> </div> <div class="spacer"></div> <div class="row"> <div class="col-sm-4"> <?php echo $templates->botCommandForm('donationalert filepath', 'Donations File', '[filepath]', array_key_exists('checker_storepath', $botSettings) ? $botSettings['checker_storepath'] : ''); ?> </div> <div class="col-sm-4"> </div> <div class="col-sm-4"> <?php echo $templates->informationPanel('Set a new file path for the donation text file.<br />This is useful when you have another program that produces an output file, you can point the bot towards it and have it send a message to the chat when there are changes.'); ?> </div> </div> </div> </div> </div>
<div class="collapsible-content"> <div class="row"> <div class="col-sm-4"> <div class="form-group"> <?php echo $templates->botCommandButton('timezone', 'Current Timezone'); ?> </div> <?php echo $templates->botCommandForm('timezone', 'Change bot timezone', '[timezone]', array_key_exists('timezone', $timezoneSettings) ? $timezoneSettings['timezone'] : ''); ?> </div> <div class="col-sm-4 col-sm-offset-4"> <?php echo $templates->informationPanel('Marathon commands use the Time-Zone module that\'s included in the script in order to make up for timezone differences.'); ?> </div> </div> </div> <hr/> <h4>Current Marathon</h4> <p> <?php echo !$marathonName && !$marathonLink && !$lastAnnouncement ? 'No marathon currently active.' : ''; ?> <?php echo $marathonName ? 'Marathon: ' . $marathonName . '<br />' : ''; ?> <?php
<?php echo $templates->switchToggle('Enable Chat Logging', $templates->_wrapInJsToggledDoQuickCommand('logchat', array_key_exists('logchat', $botSettings) && $botSettings['logchat'] == '1' ? 'true' : 'false', 'enable', 'disable'), '[]', '', array_key_exists('logchat', $botSettings) && $botSettings['logchat'] == '1'); ?> </div> <div class="spacer"></div> <div class="row"> <div class="col-sm-4"> <?php echo $templates->botCommandForm('log days', 'Set log rotate days', '[days]', array_key_exists('logrotatedays', $botSettings) ? $botSettings['logrotatedays'] : '7', 'Set'); ?> </div> </div> </div> <div class="col-sm-4"> <?php echo $templates->informationPanel('The bot is able to whisper any messages intended for a specific user to that user, instead of posting it in the chat.'); ?> </div> </div> <hr/> <h4>Connector Settings</h4> <div class="row"> <div class="col-sm-4"> <div class="form-group"> <label>PhantomBot IP address</label> <div class="input-group"> <input type="text" class="form-control" id="setting-bot-ip" placeholder="<?php echo $dataStore->getVar('connector', 'botIp');
<?php echo $templates->moduleActiveIndicator($functions->getModuleStatus('greetingSystem.js')); ?> </h3> </div> <div class="panel-body"> <?php echo $templates->switchToggle('Toggle Auto-Greeting', 'doQuickCommand', '[\'greeting toggle\']', null, array_key_exists('autogreet', $greetingSettings) && filter_var($greetingSettings['autogreet'], FILTER_VALIDATE_BOOLEAN)); ?> <hr/> <h4>Greeting Message</h4> <div class="row"> <div class="col-sm-6"> <?php echo $templates->botCommandForm('greeting set default', 'Set global greeting message', '[message]', array_key_exists('_default', $greetingSettings) ? $greetingSettings['_default'] : ''); ?> </div> <div class="col-sm-4 col-sm-offset-2"> <?php echo $templates->informationPanel('Users can set their own greeting using "!greeting set <message>". Then enable/disable the greeting by using "!greeting <enable/disable>".'); ?> </div> </div> <hr/> <?php echo $templates->dataTable('User Greetings', ['Username', 'Greeting'], $userGreetingRows, true); ?> </div> </div> </div>
<h3 class="panel-title"> Panel Users <?php echo $templates->toggleFavoriteButton(); ?> <button class="btn btn-default btn-sm" onclick="openPart('extras/panel-settings.php')">Back to Panel Settings</button> </h3> </div> <div class="panel-body"> <div class="row"> <div class="col-sm-8"> <?php echo $templates->dataTable('Panel Users', ['Username', 'Password', 'Save'], $usersDataRows, true); ?> <?php echo $userIsAdmin ? '<div class="btn-toolbar"><button class="btn btn-default" onclick="addPanelUser()">Add User</button></div>' : ''; ?> <div class="spacer"></div> </div> <div class="col-sm-4"> <?php echo $templates->informationPanel('<p>You can not change your own username, nor can you delete your account!</p>' . '<p>If you change your own password you will have to <a href="#" onclick="logOut()">log out</a> and log back in using your new password to be able to continue!</p>' . '<p>Admins be careful, granting someone access to your panel gives them full access to everything!</p>' . '<p>Use the users twitch username to have the panel send their username on communication with the bot.' . '<br />If the name is not known with the bot the channel-owner\'s username will be used!</p>'); ?> </div> </div> </div> </div> </div> <script src="app/js/spark-md5.min.js" type="text/javascript"></script> <script src="app/js/panel-users.min.js" type="text/javascript"></script>
?> <?php echo $templates->moduleActiveIndicator($functions->getModuleStatus('phraseHandler.js')); ?> </h3> </div> <div class="panel-body"> <h4>Phrase Trigger Settings</h4> <div class="row"> <div class="col-sm-4"> <?php echo $templates->botCommandForm('addphrase', 'Add reply', '[emote] [reply]'); ?> <?php echo $templates->botCommandForm('delphrase', 'Delete reply', '[emote]'); ?> </div> <div class="col-sm-4 col-sm-offset-4"> <?php echo $templates->informationPanel('The bot can reply to words posted in the chat.<br/>"emote" equals to one word without spaces!'); ?> </div> </div> <hr/> <?php echo $templates->dataTable('Current Phrase Triggers', ['Emote', 'Reply'], $phraseTableRows, true); ?> </div> </div> </div>