SHOW:
|
|
- or go back to the newest paste.
| 1 | local component = require("component")
| |
| 2 | local computer = require("computer")
| |
| 3 | local cb = component.chat_box | |
| 4 | local event = require("event")
| |
| 5 | local colors = require("colors")
| |
| 6 | local terminal = require("term")
| |
| 7 | local radar = component.radar | |
| 8 | ||
| 9 | terminal.clear() | |
| 10 | - | print("ЧатБот варпа Sky")
|
| 10 | + | print("ЧатБот варпа P")
|
| 11 | - | print("Разработал: FERROUS")
|
| 11 | + | |
| 12 | local botName = " §8warp P: §8" | |
| 13 | - | local botName = " §8Светлана: §8" |
| 13 | + | |
| 14 | local blackList = {
| |
| 15 | "Pipidastro", | |
| 16 | - | "FERROUS", |
| 16 | + | "Alex25764" |
| 17 | - | "Hedboys" |
| 17 | + | |
| 18 | ||
| 19 | local playersGreeted = {}
| |
| 20 | ||
| 21 | local state = false | |
| 22 | ||
| 23 | function dump(table) | |
| 24 | if type(table) == 'table' then | |
| 25 | local s = '{ '
| |
| 26 | for k,v in pairs(table) do | |
| 27 | if type(k) ~= 'number' then k = '"'..k..'"' end | |
| 28 | s = s .. '['..k..'] = ' .. dump(v) .. ',' | |
| 29 | end | |
| 30 | return s .. '} ' | |
| 31 | else | |
| 32 | return tostring(table) | |
| 33 | end | |
| 34 | end | |
| 35 | ||
| 36 | local function Ads() | |
| 37 | - | function Ads() |
| 37 | + | cb.say(botName .. "➢ §c/warp P - §7магазин предлагает всем заинтересованным лицам разделы под каждую основную модификацию сервера.§7 §7Прекрасное оформление, которое станет настоящей жемчужиной любого игрока!§7") |
| 38 | - | cb.say(botName .. "➢ §c/warp sky - §7магазин предлагает всем заинтересованным лицам разделы под каждую основную модификацию сервера.§7 §7Прекрасное оформление, которое станет настоящей жемчужиной любого игрока!§7") |
| 38 | + | |
| 39 | cb.say(botName .. "➢ §bДраконы и пчелы- [DraconicEvolution + §bFORESTRY]§b") | |
| 40 | - | cb.say(botName .. "➢ §bМагия и пчелы- [THAUMCRAFT + WITCHERY + §bFORESTRY]§b") |
| 40 | + | |
| 41 | cb.say(botName .. "➢ §cИ многое другое, приходите и запишите нас §cв блокноте!") | |
| 42 | - | cb.say(botName .. "➢ §dСовершенно любые заказы, ритуалы, обряды§d") |
| 42 | + | |
| 43 | ||
| 44 | local function checkIsLocalChat(message) | |
| 45 | - | resetArray(playersGreeted) |
| 45 | + | |
| 46 | return firstLetter ~= "!" | |
| 47 | end | |
| 48 | - | function checkIsLocalChat(message) |
| 48 | + | |
| 49 | local function isNumber(str) | |
| 50 | return type(tonumber(str)) == "number" | |
| 51 | end | |
| 52 | ||
| 53 | - | function isNumber(str) |
| 53 | + | local function thanksForUser(message, nick) |
| 54 | if checkIsLocalChat(message) == true then | |
| 55 | if isNumber(message) == true then | |
| 56 | cb.say(botName .. "§cСпасибо за покупку, " .. nick) | |
| 57 | - | function thanksForUser(message, nick) |
| 57 | + | |
| 58 | end | |
| 59 | end | |
| 60 | ||
| 61 | local function handlerMessage(message, nick) | |
| 62 | print(nick, " написал " .. message) | |
| 63 | thanksForUser(message, nick) | |
| 64 | end | |
| 65 | - | function handlerMessage(message, nick) |
| 65 | + | |
| 66 | local function resetArray(array) | |
| 67 | for i = 1, #array do | |
| 68 | array[i] = nil | |
| 69 | end | |
| 70 | - | function resetArray(array) |
| 70 | + | |
| 71 | ||
| 72 | local function findElement(array, str) | |
| 73 | local state = false | |
| 74 | for k, v in pairs(array) do | |
| 75 | if v == str then | |
| 76 | - | function findElement(array, str) |
| 76 | + | |
| 77 | end | |
| 78 | end | |
| 79 | return state | |
| 80 | end | |
| 81 | ||
| 82 | cb.setName("§aP")
| |
| 83 | cb.setDistance(250) | |
| 84 | ||
| 85 | for i = 1, #blackList do | |
| 86 | - | cb.setName("§cSKY§7Bot§7")
|
| 86 | + | |
| 87 | end | |
| 88 | ||
| 89 | while true do | |
| 90 | local _, _, nick, msg = event.pull(1, "chat_message") | |
| 91 | if msg ~= nil and nick ~= nil then | |
| 92 | handlerMessage(msg, nick) | |
| 93 | - | local t = event.timer(650, Ads, math.huge) |
| 93 | + | |
| 94 | ||
| 95 | local players = radar.getPlayers() | |
| 96 | ||
| 97 | for i = 1, #players do | |
| 98 | local current = players[i].name | |
| 99 | if not findElement(blackList, current) then | |
| 100 | if not findElement(playersGreeted, current) then | |
| 101 | table.insert(playersGreeted, current) | |
| 102 | print(current, " пришел на варп") | |
| 103 | cb.say(botName .. "§cДобро пожаловать, " .. current .. ", будем рады видеть тебя вновь!") | |
| 104 | end | |
| 105 | end | |
| 106 | end | |
| 107 | ||
| 108 | local hour = tonumber(os.date('%H'))
| |
| 109 | ||
| 110 | if hour % 8 == 0 and state == false then | |
| 111 | resetArray(playersGreeted) | |
| 112 | Ads() | |
| 113 | state = true | |
| 114 | end | |
| 115 | if hour % 8 ~= 0 and state == true then | |
| 116 | - | if hour % 4 == 0 and state == false then |
| 116 | + | |
| 117 | - | cb.say(botName .. "§c/warp sky§7 - тот варп, который рад каждому посетителю. Спасибо, что вы остаетесь с нами. ") |
| 117 | + | |
| 118 | end |