Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var blinkInterval = 1000; // Custom blink delay, 1000ms is default
- importScriptPage('MediaWiki:PrivateMessageAlert/code.js', 'dev');
- importScriptPage('User:Monchoman45/ChatHacks.js', 'community');
- importScriptPage('User:Madnessfan34537/multikick.js', 'callofduty');
- importArticles( {
- type: 'script',
- articles: [
- "u:dev:ChatOptions/code.js",
- ]
- } );
- /* ChatPlugins */
- var ChatPlugins = {
- release: {
- version: 1.1,
- branch: "Stable"
- },
- models: {
- feature: function(id, name, access, script) {
- this.enabled = false;
- this.id = id;
- this.name = name;
- this.access = access;
- this.script = script;
- },
- alert: function(text) {
- newInlineAlert = new models.InlineAlert();
- newInlineAlert.attributes.text = text;
- mainRoom.model.chats.add(newInlineAlert);
- },
- command: function(command, script) {
- this.command = command;
- this.script = script;
- }
- },
- features: {},
- settings: {
- release: {
- version: 1.0,
- branch: "Stable"
- },
- icons: {
- staffIcon: "http://img1.wikia.nocookie.net/__cb20140626173406/gamedezyner/images/6/60/StaffIcon.png",
- modIcon: "http://img1.wikia.nocookie.net/__cb20140626173343/gamedezyner/images/8/89/ModIcon.png"
- },
- sounds: {
- pingSound: "https://notificationsounds.com/soundfiles/9461cce28ebe3e76fb4b931c35a169b0/file-sounds-1044-inquisitiveness.mp3"
- },
- features: {
- pings: true
- }
- },
- save: function() {
- ChatPlugins.settings.features.pings = ChatPlugins.features.pings.enabled;
- api.functions.editPage("User:" + wgUserName + "/ChatPlugins.js", JSON.stringify(ChatPlugins.settings));
- },
- load: function() {
- new ChatPlugins.models.alert("Welcome to Chat Plugins 1.0!");
- pagecontents = api.functions.getPageContents("User:" + wgUserName + "/ChatPlugins.js");
- if (pagecontents == "error") {
- new ChatPlugins.models.alert("There seems to be something wrong with your settings file, or it doesn't exist yet. Default settings have been saved.");
- ChatPlugins.save();
- } else {
- ChatPlugins.settings = JSON.parse(pagecontents);
- ChatPlugins.features.pings.enabled = ChatPlugins.settings.features.pings;
- ChatPlugins.features.pings.words = ChatPlugins.settings.pings;
- }
- pagecontents = api.functions.getPageContents("MediaWiki:ChatPluginsSettings.js");
- if (pagecontents != "error") {
- wikicustom = JSON.parse(pagecontents);
- if (typeof(wikicustom.settings) != "object") {
- new ChatPlugins.models.alert("This wiki has a custom settings page, but it is broken.");
- } else {
- ChatPlugins.settings.icons = wikicustom.settings.icons; //Load Wiki-specific icons
- ChatPlugins.settings.sounds = wikicustom.settings.sounds; //Load Wiki-specific sounds
- new ChatPlugins.models.alert("This wiki has custom settings and they have been applied.");
- }
- }
- }
- };
- // Call API
- function callAPI(data, method, callback) {
- data.format = 'json';
- $.ajax({
- data: data,
- dataType: 'json',
- url: wgScriptPath + '/api.php',
- type: method,
- success: function(response) {
- if (response.error)
- showError('API error: ' + response.error.info);
- else
- callback(response);
- },
- error: function(xhr, error) {
- showError('AJAX error: ' + error);
- }
- });
- }
- //Inline-mod tools
- function scrollToBottom() {
- var chat = document.getElementById('Chat_' + mainRoom.roomId);
- chat.scrollTop = chat.scrollHeight;
- }
- ChatPlugins.features.modIcons = new ChatPlugins.models.feature(null, "Mod Icons", 0, function(chat) {
- var time = new Date();
- var hours = time.getHours();
- var minutes = time.getMinutes();
- var seconds = time.getSeconds();
- if ( hours < 10) hours = '0' + hours;
- if (minutes < 10) minutes = "0" + minutes;
- if (seconds < 10) seconds = "0" + seconds;
- mainRoom.viewDiscussion.chatUL.children().last().children(".message").attr('msg-source', chat.attributes.text);
- mainRoom.viewDiscussion.chatUL.children().last().children(".message").attr('msg-time', hours + ':' + minutes + ':' + seconds);
- var icon = '';''
- mainRoom.viewDiscussion.chatUL.children().last().children('.message').hover(
- function() {
- thistarget = this;
- username = $(thistarget).parent().attr("data-user");
- timestamp = $(thistarget).attr('msg-time');
- message = $(thistarget).attr('msg-source');
- $(thistarget).append('<span class="inline-quote" style="color: #3cd7fa !important;cursor:pointer;">&nbsp;&nbsp;Quote</span>');
- $(thistarget).children('.inline-quote').click(function(e) {
- if ( e.shiftKey ) {
- $('.message textarea').val($('.message textarea').val() + '[' + timestamp + '] ' + username + ": " + message.replace(/^\/me/, "* " + username) + '\n');
- } else {
- $('.message textarea').val('[' + timestamp + '] ' + username + ": " + message.replace(/^\/me/, "* " + username) + '\n');
- scrollToBottom();
- }
- $(".message textarea").focus();
- });
- },
- function() {
- $(this).children('.inline-quote').remove();
- }
- );
- }
- );
- //Bind function to chat updates
- setTimeout(function() {
- mainRoom.model.chats.bind('afteradd', ChatPlugins.features.modIcons.script, mainRoom.viewDiscussion);
- }, 15000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement