Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --|============================|
- --| Бот для глобал чата. |
- --| Автор: SkyDrive_ |
- --|Modded by: Tekyera, krovyaka|
- --|Проект McSkill, cерв TM, HTC|
- --| 22.12.2016 |
- --| Последнее обновление: |
- --| 01.05.2017 |
- --| Version: 3.01 |
- --|============================|
- local component = require("component")
- local term = require("term")
- local event = require("event")
- local unicode=require("unicode")
- local computer = require("computer")
- local fs = require("filesystem")
- local shell = require("shell")
- if not fs.exists("/lib/sky.lua") then
- shell.execute("wget https://www.dropbox.com/s/29fhy9l54v1yclo/sky.lua?dl=1 /lib/sky.lua")
- end
- local sky = require("sky")
- local g = component.gpu
- local c = component.chat_box
- event.shouldInterrupt = function () return false end
- --------------------Настройки--------------------
- local ODMENS = {"SkyDrive_"} --Люди на серве, которые могут писать от имени бота, обновлять его и т.д.
- local VAIP = "29.11.2019" --Дата последнего вайпа
- local COLOR1 = "§a" --Рамка
- local COLOR2 = "§b" --Цвет кнопок
- local COLOR_CMD = 0xffff00 --цвет консоли
- local MUTE_DIF = 10 --Разница в голосах, чтоб замутить игрока
- local BOT_NAME = "§7❽ §8[§4Малышка§8] §8Kelira" --Преффикс и имя бота
- local FLOOD = 30 --Интервал в сек. через который даётся мут за флуд
- -------------------------------------------------
- local MAT = {"пидор", "пидар", "ебырь", "ебаный", "нихуя", "нахуя", "ебнутый", "ёбну", "ебись", "пидр", "хуй", "хуя", "хуи", "нахуй",
- "похуй", "хуевый", "хуесос", "хуеглот", "отъебись", "мудак", "мудила", "мудень", "долбаеб", "долбоеб", "хуета", "ебать", "ебал", "ебу",
- "ебло", "уебан", "уебок", "уебки", "ахуеть", "ахуительно", "заебись", "заебал", "ебет", "ебля", "нехуя", "ебанат", "уебище", "уёбище", "выебать",
- "кончеглот", "выебу", "хуйня", "мудозвон", "выблядок", "еблище", "впиздячил", "жидоеб", "выблядовал", "еблан", "мразь", "blyat", "blyad", "ebal",
- "cyka", "сука", "suka", "pidor", "pidar", "hui", "huesos", "ueban", "ебанный", "хуево", "залупа", "гандон", "гондон", "xyi", "xui", "наебал",
- "наебывают", "наёбывают", "ахуе", "ahue", "loh", "su4ka", "пизд", "пезд", "бляд", "блят"
- }
- --Слова которые проверяются только в их исходном виде.
- local COMPOSITE = {"бля", "хули", "педик", "suka"}
- local WORDS = {"солнышко", "зайка", "пупсик", "котик", "сладкий", "милый", "медвежонок", "ангелочек", "малыш", "кисик",
- "любимый", "родной", "мой герой", "котенок"}
- local OFF = {"убрать", "выключить", "отключить", "вырубить", "офф", "очистить", "снять"}
- local SELL = {"сетку", "полосы", "полосочки", "zone", "зону", "выделение", "линии"}
- local HELLO = {"привет", "прив", "ку", "q", "qq", "здаров", "здарова", "добрый день", "добрый вечер", "доброе утро",
- "здравствуйте", "здрасьте", "дратути", "хай"}
- local BYE = {"бб", "bb", "пока", "досвидания", "досвиданья", "досвидули","спокойной"}
- local RULES = { --Правила проекта
- {"1.1", "Любой человек, зарегистрировавшийся на проекте, тем самым соглашается со всеми правилами, перечисленными ниже. Незнание правил не освобождает Вас от ответственности."},
- {"1.2", "Вы сами несете ответственность за безопасность своего аккаунта и обязуетесь соблюдать все надлежащие меры по обеспечению его безопасности. Взлом аккаунта не является оправданием, если игрок обвиняется в нарушении правил."},
- {"1.3", "Сервис бесплатен и предоставляется как есть без каких-либо гарантий правильной работы. Администрация оставляет за собой право не возвращать вещи, потерянные в результате бага, отката, смерти игрока, нестабильной работы сервера и т.п."},
- {"1.4", "При блокировке аккаунта, все игровые ценности, предметы в инвентаре, территория, содержимое сундуков и прочее не подлежат передаче другим игрокам или возврату."},
- {"1.5", "Администрация имеет право наказать игрока по причине, не указанной в настоящих правилах."},
- {"1.6", "Любые игровые ценности игрока могут быть изъяты и удалены в следующих случаях:" .. string.char(10) .. " - игрок не входил в игру более 30 дней" .. string.char(10) .. " - игровые ценности были получены нечестным путем или в результате ошибки в работе сервера"},
- {"1.7", "Запрещена реклама и упоминание сторонних проектов в любом её виде.", "Наказание: Перманентный бан."},
- {"1.8", "Запрещено использовать следующие ники:" .. string.char(10) .. " - содержащие оскорбления или нецензурные выражения" .. string.char(10) .. " - содержащие фразы Admin, Server, Mod, Help, OP и т.п." .. string.char(10) .. " - схожие с никами администрации", "Наказание: Перманентный бан."},
- {"1.9", "Запрещено устанавливать следующие скины и плащи:" .. string.char(10) .. " - содержащие надписи с оскорблениями или нецензурными выражениями" .. string.char(10) .. " - носящие порнографический характер" .. string.char(10) .. " - имеющие отношение к нацизму", "Наказание: Бан на 1 час. При рецидиве – Бан от 1 до 7 дней."},
- {"1.10", "Запрещено лжесвидетельствовать против игроков, подставлять их, подделывать доказательства, шантажировать доказательствами нарушения игрока.", "Наказание: Бан на 7 дней. При рецидиве – Бан от 7 до 30 дней."},
- {"1.11", "Жалобы на нарушения должны быть поданы не позднее 48 часов с момента фиксации."},
- {"1.12", "Запрещено покупать или продавать игровые ресурсы, игровой аккаунт, предоставлять прочие услуги за реальные деньги или в обмен на другие ценности, не связанные с проектом; передавать аккаунт третьим лицам.", "Наказание: Перманентный бан."},
- {"1.13", "Модератор имеет право выдать наказание по дополнительным правилам, которые указаны в описании каждого сервера. Важно! На каждом сервере свои дополнительные правила. Они также являются частью основных правил."},
- {"1.14", "Если у игрока имеется уже забаненный аккаунт, то модерация в праве банить последующие аккаунты игрока, на максимально полученный срок."},
- {"1.15", "Средства, потраченные на донат, являются пожертвованием, идут на развитие проекта и не могут быть возвращены ни при каких обстоятельствах."},
- {"1.16", "В случае необходимости игрок может быть временно забанен модерацией, на время разрешения инцидента с нарушением правил. "},
- {"2.1", "Регулировка отношений внутри региона происходит самими игроками (если вы добавляете игрока в регион, он имеет полное право забрать все ваши ресурсы)."},
- {"2.2", "Другой игрок не обязан возвращать вам потерянные в PvP или же случайно выброшенные вещи."},
- {"2.3", "Запрещено:" .. string.char(10) .. " - использовать или обсуждать изменения файлов клиента, ошибки (баги) в работе сервера и любые сторонние программы, дающие дополнительные преимущества в игре или вредящие игровому процессу и серверу" .. string.char(10) .. " - использовать, распространять, хранить предметы, добытые нечестным путем", "Наказание: Бан от 7 до 360 дней."},
- {"2.4", "Запрещено:" .. string.char(10) .. "– вводить в заблуждение игроков с целью получения собственной выгоды" .. string.char(10) .. "– вводить в заблуждение представителей администрации.", "Наказание: бан от 7 до 180 дней" .. string.char(10) .. "– выдавать себя за должностное лицо проекта/сервера, если вы таковым не являетесь.", "Наказание: бан от 3 до 7 дней. При рецидиве – бан от 7 до 30 дней"},
- {"2.5", "Запрещено продавать блоки напечатанные на 3D принтере схожие с приборами и прочими механизмами, без указания того, что это 3D модель.", "Наказание: Бан от 1 до 7 дней."},
- {"2.6", "Запрещено убивать игроков, заманивая к себе обманом, рекламой, запросом на телепортацию.", "Наказание: Бан от 1 до 3 дней, изъятие выбитых ресурсов. При рецидиве – Бан от 3 до 10 дней. "},
- {"2.7", "Запрещено совершать любые действия, направленные на дестабилизацию экономики сервера.", "Наказание: Бан от 1 до 7 дней. При рецидиве – Бан от 7 до 30 дней."},
- {"2.8", "Запрещено нарушать правила официальных (созданных или одобренных администрацией) ивентов или мешать их проведению.", "Наказание: Указывается в правилах ивента. Срок наказания не должен превышать 24 часов."},
- {"2.9", "Запрещены оскорбления и нецензурные выражения в названиях предметов, варпов, животных.", "Наказание: Бан на 1 день и удаление предмета, варпа, животного. При рецидиве – Бан от 1 до 7 дней."},
- {"2.10", "Запрещено наносить вред чужим постройкам, в том числе:" .. string.char(10) .. " - приносить вред чужим постройкам с помощью поршней" .. string.char(10) .. " - убивать мирных животных в загонах/выталкивать животных из загонов" .. string.char(10) .. " - намеренно блокировать доступ к чужим сооружениям (выстраивая глухие стены, вырывая окопы, разливая жидкости)" .. string.char(10) .. " - уничтожать чужие посевы", "Наказание: Бан от 1 до 7 дней. При рецидиве – Бан от 7 до 30 дней."},
- {"2.11", "Запрещено создание/размещение объектов:" .. string.char(10) .. " - имеющего форму чего-либо непристойного" .. string.char(10) .. " - содержащих в себе оскорбления или нецензурные выражения" .. string.char(10) .. " - представляющих из себя нацистские символы", "Наказание: Бан от 1 до 7 дней и снос постройки. При рецидиве – Бан от 7 до 30 дней."},
- {"2.12", "Запрещено намеренно портить внешний вид карты.", "Наказание: Предупреждение. При рецидиве — Бан на 1 день."},
- {"2.13", "Запрещено обходить анти-афк систему любыми способами. Не действует на сервера с низким онлайном (меньше половины от максимального количества игроков)", "Наказание: Бан на 1 день. При рецидиве – Бан от 1 до 7 дней."},
- {"3.0", "Приватные чаты(клан чаты/личные сообщения) не модерируется, если вам кто–то мешает используйте команду: «/ignore ник». "},
- {"3.1", "Запрещено:" .. string.char(10) .. " - отправлять одинаковые сообщения с разницей по времени менее 60 секунд" .. string.char(10) .. " - осуществлять рекламу чего-либо с разницей по времени менее 5 минут" .. string.char(10) .. " - отправлять сообщения не имеющие смысловой нагрузки" .. string.char(10) .. " – провоцировать флуд" .. string.char(10) .. " - использовать капс в сообщениях (кроме аббревиатур)", "Наказание: Мут от 30 минут до 3 часов. При рецидиве – Мут от 3 часов до 3 дней."},
- {"3.2", "Запрещено:" .. string.char(10) .. " - оскорблять игроков и их родственников" .. string.char(10) .. " - оскорблять представителей администрации, сервер или проект в целом (Мут от 1 до 24 часов)" .. string.char(10) .. " – употреблять мат (в том числе завуалированный), нецензурную лексику в любом виде" .. string.char(10) .. " - создавать конфликты путем отправки в чат провокационных сообщений" .. string.char(10) .. " - разжигать межнациональную рознь" .. string.char(10) .. " - подстрекать третьих лиц на нарушение правил" .. string.char(10) .. " - отправлять сообщения сексуального характера" .. string.char(10) .. " - угрожать расправой в реальной жизни", "Наказание: Мут от 1 до 6 часов. При рецидиве – Мут от 6 до 3 дней"},
- {"3.3", "Запрещены любые виды попрошайничества, в том числе:" .. string.char(10) .. " - просить модерацию сменить время суток или погодные условия" .. string.char(10) .. " - просить модерацию выровнять территорию" .. string.char(10) .. " - просьбы снять наказание с игрока", "Наказание: Мут от 30 минут до 2 часов. При рецидиве – Мут от 2 до 8 часов."},
- {"3.4", "Запрещена публичная критика, оспаривание или обсуждение действий администрации проекта. Для этого существует специальный раздел форума, где можно подать жалобу.", "Наказание: Мут от 30 минут до 3 часов. При рецидиве – Мут от 3 до 24 часов."},
- {"3.5", "Запрещено пускать ложные сведения о вайпе, обо всех вайпах всегда пишут в новостях на сайте и на форуме.", "Наказание: Мут от 30 минут до 3 часов. При рецидиве – Мут от 3 до 24 часов."},
- {"4.1", "Донатный модератор имеет право игнорировать нарушения других игроков."},
- {"4.2", "При выдаче наказания (kick, mute, ban) модератор обязан указать пункт правил или причину, по который игрок получил наказание. Также модератор обязан иметь необходимые доказательства нарушения игроков и предоставить их в случае необходимости в соответствующей теме на форуме."},
- {"4.3", "Модератор обязан/имеет право выбирать степень наказание в зависимости от тяжести нарушения, в первую очередь основываясь на здравом смысле и общественных нормах."},
- {"5.1", "Запрещено злоупотреблять привелегиями."},
- {"5.2", "Запрещено наказывать членов администрации и менять/снимать наказание другим игрокам, которых наказывал не он. Для изменения/снятия наказания с игрока - обращаться к главному модератору или администратору."},
- }
- local glob, loc = {}, {"Инициализация...", "Программа успешно запущена..."}
- local flood = {}
- local flood_cmd = {}
- g.setResolution(160, 40)
- term.clear()
- c.setName("§6G§7")
- BOT_NAME = BOT_NAME .. COLOR1 .. ": "
- function CheckAdmins(nick)
- for i = 1, #ODMENS do
- if ODMENS[i] == nick then
- return true
- end
- end
- return false
- end
- function Questions(msg, nick) --Общение с ботом
- local up = computer.uptime()
- local BD = {
- {120, {"всем"},HELLO, "Привет, " .. WORDS[math.random(1, #WORDS)] .. " :*"},
- {120, {"всем"},BYE, "Всего хорошего, " .. WORDS[math.random(1, #WORDS)] .. " :*"},
- {120, {"как", "чем", "почему"}, {"приватить"}, "Команды для привата: " .. COLOR2 .. "/warp world §8➢ " .. COLOR2 .. "/rtp §8➢ " .. COLOR1 .. "вместо топорика: " .. COLOR2 .. "/zone §8➢ " .. COLOR2 .. "/rg claim <name>"},
- {120, {"как",},OFF,{"пвп","pvp"}, "Отключить пвп вы можете через команду §8➢ " .. COLOR2 .. "/buyflag" .. COLOR1 .. ". Цена: " .. COLOR2 .. "100 эм. " .. COLOR1 .. ":*"},
- {120, {"когда", "давно"},{"был"},{"вайп"}, "Вайп был: " .. COLOR2 .. VAIP .. COLOR1 .. ", а вот когда будет - неизвестно :*"},
- {120, {"как", "где"},{"выход", "выйти", "покинуть"},{"спавн"}, "Чтобы выйти со спавна, напиши" .. COLOR2 .. " /warp world " .. COLOR1 .. ":*"},
- {120, {"как"},{"сменить","включ","переключ","менять","поменять"},{"бур", "гравитул"}, "Сменить режим инструмента можно, используя сочетание клавиш " .. COLOR2 .. "ПКМ + I"},
- {120, {"как"},{"ночн"},{"зрение"}, "Включить ночное зрение на квантовом или нано-шлеме можно сочетанием клавиш " .. COLOR2 .. "Alt + I"},
- {120, {"как"},{"летать","полет","полёт","лететь"}, "Вкл/откл полёт на гравитационном жилете или улучшенном наножилете можно клавишей " .. COLOR2 .. "R" .. COLOR1 .. ". На квантовом нагруднике это делается сочетанием клавиш " .. COLOR2 .. "Ctrl + I"},
- {120, {"как"},{"планирова","левитировать","левитац"}, "Режим планирования или левитации на гравитационном жилете или улучшенном наножилете включается/отключается сочетанием клавиш " .. COLOR2 .. "Пробел + I"},
- {120, {"как"},OFF,SELL, "Чтобы убрать сетку, пропиши §8➢ " .. COLOR2 .. "//sel"},
- {120, {"как", "где"},{"открыть", "забрать", "получить", "брать", "взять"}, {"кейс"}, "По дефолту: " .. COLOR2 .. "F6" .. COLOR1 ..". Если не работает, нужно изменить в настройках управления, в самом низу :*"},
- }
- local n = 0
- for i = 1, #BD do
- for j = 2, #BD[i]-1 do
- for k = 1, #BD[i][j] do
- if string.find(msg, BD[i][j][k]) ~= nil then
- n = n + 1
- break
- end
- end
- if n < j-1 then
- break
- end
- end
- if n == #BD[i]-2 then
- if not sky.checkMute(nick) then
- local j = 1
- while flood_cmd[j] ~= nil do
- if up - flood_cmd[j][2] > BD[flood_cmd[j][1]][1] then
- table.remove(flood_cmd, j)
- elseif flood_cmd[j][1] == i then
- return false
- else
- j = j + 1
- end
- end
- c.say(BOT_NAME .. BD[i][#BD[i]])
- table.insert(flood_cmd, {i, up})
- return true
- end
- else
- n = 0
- end
- end
- return false
- end
- function Commands(msg, msg2, nick) --Команды
- if msg == "-help" then
- Help(nick)
- elseif msg == "-votesun" then
- elseif msg == "-voteday" then
- elseif msg == "-votemute" then
- elseif string.sub(msg, 1,4) == "-inf" then
- Inf(msg, nick)
- elseif string.sub(msg, 1,5) == "-seen" then
- elseif msg == "-server" then
- elseif msg == "-botupdate" then
- if CheckAdmins(nick) then
- Update(nick)
- end
- return false
- elseif string.sub(msg2, 1,2) == "==" then
- if CheckAdmins(nick) then
- Say(msg2, nick)
- end
- return false
- else
- return false
- end
- return true
- end
- function Mats(msg, nick) --Мут за мат в глобал чат
- if checkMats(msg) then
- if not sky.checkMute(nick) then
- sky.com("tempmute " .. nick .. " 2 hour 3.2_from_kelira_with_love")
- c.say(BOT_NAME .. "Не ругайся, " .. WORDS[math.random(1, #WORDS)] .. " :*")
- return true
- end
- end
- return false
- end
- function checkMats(msg)
- for i = 1, #MAT do
- if (string.find(msg, MAT[i]) ~= nil) then
- local t1 = " " .. string.match(msg, MAT[i])
- local t2 = "!" .. string.match(msg, MAT[i])
- if string.find(msg, t1) ~= nil or string.find(msg, t2) ~= nil then
- return true
- end
- end
- end
- for i = 1, #COMPOSITE do
- if (string.find(msg, COMPOSITE[i]) ~= nil) then
- local t1 = " " .. string.match(msg, COMPOSITE[i]) .. " "
- local t2 = "!" .. string.match(msg, COMPOSITE[i]) .. " "
- local t3 = " " .. string.match(msg, COMPOSITE[i])
- local t4 = "!" .. string.match(msg, COMPOSITE[i])
- if string.find(msg, t1) ~= nil or string.find(msg, t2) ~= nil or
- string.sub(msg, unicode.len(msg) - unicode.len(t3)+1) == t3 or msg == t4 then
- return true
- end
- end
- end
- return false
- end
- function Flood(msg, nick) --3 Одинаковых сообщения с интервалом меньше, чем FLOOD, мут на час
- local up = computer.uptime()
- local i = 1
- while flood[i] ~= nil do
- if up - flood[i][3] > FLOOD then
- table.remove(flood, i)
- elseif msg == flood[i][1] and nick == flood[i][2] then
- if flood[i][4] >= 2 then
- if not sky.checkMute(nick) then
- sky.com("tempmute " .. nick .. " 2 hour 3.1_from_kelira_with_love")
- c.say(BOT_NAME .. "Не флуди, " .. WORDS[math.random(1, #WORDS)] .. " :*")
- table.remove(flood, i)
- return true
- end
- return false
- else
- flood[i][3] = up
- flood[i][4] = flood[i][4] + 1
- return false
- end
- else
- i = i + 1
- end
- end
- table.insert(flood, {msg, nick, up, 1})
- return false
- end
- function Caps(msg, nick) --Мут за КАПС - Сообщение полностью капсом более 20 символов
- if unicode.upper(msg) == msg and unicode.len(msg) >= 20 then
- if string.find(msg,"1")==nil and string.find(msg,"2")==nil and string.find(msg,"3")==nil and string.find(msg,"4")==nil and string.find(msg,"5")==nil and string.find(msg,"6")==nil and string.find(msg,"7")==nil and string.find(msg,"8")==nil and string.find(msg,"9")==nil and string.find(msg,"0")==nil then
- if not sky.checkMute(nick) then
- sky.com("tempmute " .. nick .. " 30 min 3.1_from_kelira_with_love")
- c.say(BOT_NAME .. "Не капси, " .. WORDS[math.random(1, #WORDS)] .. " :*")
- return true
- end
- end
- end
- return false
- end
- function Help(nick) --Команда -help (Список доступных команд)
- sky.com("w " .. nick .. " " .. BOT_NAME .. string.char(10) ..
- "§8------------------------------------------------" .. string.char(10) ..
- COLOR1 .. "Все команды вводятся в §4локал " .. COLOR1 .. "чат." .. string.char(10) ..
- COLOR2 .. "-voteday §8➢ " .. COLOR1 .. "Начать голосование для смены времени суток на " .. COLOR2 .. "6:00 " .. COLOR1 .. "утра." .. string.char(10) ..
- COLOR2 .. "-votesun §8➢ " .. COLOR1 .. "Начать голосование для отключения дождя." .. string.char(10) ..
- COLOR2 .. "-votemute §8➢ " .. COLOR1 .. "Голосование, чтоб замутить игрока на 2 часа. Разница должна быть в +" .. MUTE_DIF .. " голосов, иначе вы получите мут на 10 мин." .. string.char(10) ..
- COLOR2 .. "-mods §8➢ " .. COLOR1 .. "Модераторы в сети." .. string.char(10) ..
- COLOR2 .. "-inf §8➢ " .. COLOR1 .. "Узнать информацию о нужном п.п." .. string.char(10) ..
- COLOR2 .. "-seen §8➢ " .. COLOR1 .. "Получить онлайн/оффлайн время выбранного игрока." .. string.char(10) ..
- COLOR2 .. "-server §8➢ " .. COLOR1 .. "Получить краткую информацию о работе сервера." .. string.char(10) ..
- "§8------------------------------------------------")
- end
- function Inf(msg, nick) --Инфа о правилах
- if msg == "-inf" then
- sky.com("w " .. nick .. " " .. COLOR1 .. " Введите пункт правил. Пример: " .. COLOR2 .. "-inf 3.1")
- else
- for i = 1, #RULES do
- if string.sub(msg, 6, unicode.len(msg)) == RULES[i][1] then
- sky.com("w " .. nick .. " " .. COLOR1 .. RULES[i][2])
- if RULES[i][3] ~= nil then
- sky.com("w " .. nick .. " " .. COLOR2 .. RULES[i][3])
- end
- return true
- end
- end
- sky.com("w " .. nick .. " " .. COLOR1 .. " Пункт правил введён неверно")
- end
- return false
- end
- function Update(nick)
- sky.com("w " .. nick .. " " .. COLOR1 .. "Обновление...")
- os.execute("del bot.lua")
- os.execute("wget -q https://www.dropbox.com/s/5z7nl7ca5zmbmtk/Kelira.lua?dl=1 bot.lua")
- os.sleep(3)
- os.execute("bot.lua")
- os.exit()
- end
- function Say(msg, nick)
- if msg == "==dela" then
- c.say(BOT_NAME .. "¯\\_(ツ)_/¯")
- else
- while string.find(msg, "love") ~= nil do
- msg = string.gsub(msg,"love","§4❤§b")
- end
- c.say(BOT_NAME .. unicode.sub(msg,3, unicode.len(msg)))
- end
- end
- function Message(msg, nick)
- msg2 = msg
- msg = unicode.lower(msg)
- if string.sub(msg, 1,1) == "!" then
- local questions = Questions(msg, nick)
- local mats = Mats(msg, nick)
- local caps = Caps(msg2, nick)
- local floods = Flood(msg, nick)
- if questions or mats or floods or caps then
- if #glob == 38 then
- table.remove(glob, 1)
- end
- table.insert(glob, nick .. ":" .. msg2)
- Draw()
- end
- else
- local commands = Commands(msg, msg2, nick)
- if commands then
- if #loc == 38 then
- table.remove(loc, 1)
- end
- table.insert(loc, nick .. ":" .. msg2)
- Draw()
- end
- end
- end
- function Draw()
- term.clear()
- g.setForeground(COLOR_CMD)
- g.set(1,1,"||=================[ Локал чат ]=================||============================================[ Глобальный чат ]=============================================||")
- g.set(1,40,"||===[ Консоль ]=================================||==================================================================[ Автор: SkyDrive_ - Проект: McSkill ]===||")
- g.fill(1,1,2,40,"|")
- g.fill(50,1,2,40,"|")
- g.fill(159,1,2,40,"|")
- g.setForeground(0xffffff)
- g.setForeground(0xffffff)
- for i = 1, #loc do
- g.set(4,i+1,"[ ]" .. loc[i])
- g.setForeground(0x00ff00)
- g.set(5,i+1, "L")
- g.setForeground(0xffffff)
- end
- for i = 1, #glob do
- g.set(53,i+1,"[ ]" .. glob[i])
- g.setForeground(0xff9900)
- g.set(54,i+1, "G")
- g.setForeground(0xffffff)
- end
- end
- for i = 1, #ODMENS do
- sky.com("w " .. ODMENS[i] .. " &aУспешно обновлено :)")
- end
- Draw()
- while true do
- local _, _, nick, msg = event.pull("chat_message")
- if msg ~= nil and nick ~= nil then
- Message(msg, nick)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement