Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Auto-Cycler
- By: DryRoastedLemon/JoshTheSquid
- This module allows you to set up number of messages that are cycled through automatically.
- The interval at which the messages are cycled through (and sent) can be changed from within Koalabot,
- as can each message. The module can also be enabled and disabled.
- */
- var modAutoCycler = (function() {
- // Basic mod information
- var _modName = "autoCycler";
- var _tabName = "Auto-Cycler";
- var _saveFile = "autoCycler.ini";
- var _settings = {};
- var _curMsg = 0;
- var _timer;
- // Save function
- var _saveSettings = function() {
- apiWriteFile(_saveFile, JSON.stringify(_settings));
- };
- // Load Settings
- if (apiOpenFile(_saveFile) === null) {
- _settings = {
- enabled: false,
- time: 10 * 60 * 1000,
- messages: ["This is message 1.", "This is message 2."]
- };
- _saveSettings();
- } else {
- _settings = $.parseJSON(apiOpenFile(_saveFile));
- }
- // Create tab
- var _tab = apiAddTab(_tabName);
- $(_tab).html(`
- <div class="row-fluid">
- <div class="col-sm-12">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h2 class="panel-title">${_tabName}</h2>
- </div>
- <ul class="list-group">
- <li class="list-group-item">
- <p><strong>Enabled: </strong>
- <button id="mod${_modName}Toggle" class="btn btn-xs"></button></p>
- <p>Current Message: <span id="mod${_modName}CurMsg"></span></p>
- <p><button id="mod${_modName}Reset" class="btn btn-default btn-xs">Restart Cycler</button></p>
- </li>
- <li class="list-group-item">
- <strong>Time: </strong>
- <input id="mod${_modName}Time" type="text" size="4"> minutes.
- </li>
- <li class="list-group-item">
- <p><strong>Messages:</strong></p>
- <div id="mod${_modName}MsgList">
- </div>
- <p><button class="btn btn-default btn-sm" id="mod${_modName}AddMsg">Add Message</button></p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- `);
- // Tab functionality
- if (_settings.enabled) $("#mod" + _modName + "Toggle").addClass("btn-info").html("On");
- if (!_settings.enabled) $("#mod" + _modName + "Toggle").addClass("btn-danger").html("Off");
- $("#mod" + _modName + "CurMsg").html(_curMsg);
- $("#mod" + _modName + "Time").val(_settings.time / 60000);
- $("#mod" + _modName + "Toggle").click(function() {
- if (_settings.enabled) {
- _settings.enabled = false;
- $(this).addClass("btn-danger").removeClass("btn-info").html("Off");
- _saveSettings();
- _updateCycler();
- } else {
- _settings.enabled = true;
- $(this).addClass("btn-info").removeClass("btn-danger").html("On");
- _saveSettings();
- _updateCycler();
- }
- });
- $("#mod" + _modName + "Time").change(function() {
- _settings.time = $(this).val() * 60000;
- _saveSettings();
- _updateCycler();
- });
- $("#mod" + _modName + "AddMsg").click(function() {
- _settings.messages.push("");
- _saveSettings();
- _updateMsgs();
- });
- $("#mod" + _modName + "Reset").click(function() {
- _curMsg = 0;
- $("#mod" + _modName + "CurMsg").html(_curMsg);
- });
- function _updateMsgs() {
- var content = "";
- var newelement;
- for (var i = 0; i < _settings.messages.length; i++) {
- newelement = "<p><input class='mod" + _modName + "Msg' value='" + _settings.messages[i].replace(/"/, """).replace(/'/, "'") + "' size='80'> <button class='mod" + _modName + "DelMsg btn btn-xs btn-danger'>-</button></p>";
- content = content + newelement;
- }
- $("#mod" + _modName + "MsgList").html(content);
- $(".mod" + _modName + "Msg").each(function(i) {
- $(this).change(function() {
- _settings.messages[i] = $(this).val();
- _saveSettings();
- _updateMsgs();
- });
- });
- $(".mod" + _modName + "DelMsg").each(function(i) {
- $(this).click(function() {
- _settings.messages.splice(i, 1);
- if (_curMsg > _settings.messages.length - 1) _curMsg = 0;
- _saveSettings();
- _updateMsgs();
- });
- });
- }
- _updateMsgs();
- _updateCycler();
- // Main Auto-Cycler Function
- function _updateCycler() {
- if (_settings.enabled) {
- clearInterval(_timer);
- _timer = setInterval(function() {
- apiSay(_settings.messages[_curMsg]);
- if (_curMsg < _settings.messages.length - 1)
- _curMsg += 1;
- else {
- _curMsg = 0;
- }
- $("#mod" + _modName + "CurMsg").html(_curMsg);
- }, _settings.time);
- } else {
- clearInterval(_timer);
- }
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement