From 3215bae9fa34afe8f04f3086ec98b4e28d4f5a7f Mon Sep 17 00:00:00 2001 From: Igor Date: Fri, 5 Feb 2016 22:42:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=83=D0=BA=D0=B0!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Applications.txt | 9 +++ Applications/ForceAdmin/About.txt | 1 + Applications/ForceAdmin/ForceAdmin.lua | 93 +++++++++++++++++++++++++ Applications/ForceAdmin/Icon.pic | Bin 0 -> 313 bytes 4 files changed, 103 insertions(+) create mode 100644 Applications/ForceAdmin/About.txt create mode 100644 Applications/ForceAdmin/ForceAdmin.lua create mode 100644 Applications/ForceAdmin/Icon.pic diff --git a/Applications.txt b/Applications.txt index f05f28d9..7709c1d4 100644 --- a/Applications.txt +++ b/Applications.txt @@ -349,6 +349,15 @@ }, ----------------------------------------------------- Приложения без ресурсов -------------------------------------------------------------------------- + { + ["name"]="MineOS/Applications/ForceAdmin", + ["url"]="IgorTimofeev/OpenComputers/master/Applications/ForceAdmin/ForceAdmin.lua", + ["about"]="IgorTimofeev/OpenComputers/master/Applications/ForceAdmin/About.txt", + ["type"]="Application", + ["icon"]="IgorTimofeev/OpenComputers/master/Applications/ForceAdmin/Icon.pic", + ["createShortcut"] = "desktop", + ["version"]=1.0, + }, { ["name"]="MineOS/Applications/FlappyBlock", ["url"]="IgorTimofeev/OpenComputers/master/Applications/FlappyBlock/FlappyBlock.lua", diff --git a/Applications/ForceAdmin/About.txt b/Applications/ForceAdmin/About.txt new file mode 100644 index 00000000..bfd5e019 --- /dev/null +++ b/Applications/ForceAdmin/About.txt @@ -0,0 +1 @@ +Данная программа предназначена для игроков, которым каким-то образом попал в руки командный блок. Если это произошло - подключайте его через адаптер к компьютеру, запускайте программу и наслаждайтесь полными привилегиями администратора. Работает только на серверах с плагином PermissionsEx и включенной поддержкой командных блоков в конфиге мода. \ No newline at end of file diff --git a/Applications/ForceAdmin/ForceAdmin.lua b/Applications/ForceAdmin/ForceAdmin.lua new file mode 100644 index 00000000..b5dd180c --- /dev/null +++ b/Applications/ForceAdmin/ForceAdmin.lua @@ -0,0 +1,93 @@ + +local component = require("component") +local commandBlock +local event = require("event") +local gpu = component.gpu +local ecs = require("ECSAPI") + +if not component.isAvailable("command_block") then + ecs.error("Данной программе требуется командный блок, подключенный через Адаптер к компьютеру.") + return +else + commandBlock = component.command_block +end + +local function execute(command) + commandBlock.setCommand(command) + commandBlock.executeCommand() + commandBlock.setCommand("") +end + +local function info(width, text1, text2) + ecs.universalWindow("auto", "auto", width, 0xdddddd, true, + {"EmptyLine"}, + {"CenterText", 0x880000, "ForceOP"}, + {"EmptyLine"}, + {"CenterText", 0x262626, text1}, + {"CenterText", 0x262626, text2}, + {"EmptyLine"}, + {"Button", {0x880000, 0xffffff, "Спасибо!"}} + ) +end + +local function op(nickname) + execute("/pex user " .. nickname .. " add *") + info(40, "Вы успешно стали администратором", "этого сервера. Наслаждайтесь!") +end + +local function deop(nickname) + execute("/pex user " .. nickname .. " remove *") + info(40, "Права админстратора удалены.", "Никто ничего не видел, тс-с-с!") +end + +local function main() + ecs.setScale(0.8) + ecs.prepareToExit(0xeeeeee, 0x262626) + local xSize, ySize = gpu.getResolution() + local yCenter = math.floor(ySize / 2) + local xCenter = math.floor(xSize / 2) + local yPos = yCenter - 9 + + ecs.centerText("x", yPos, "Поздравляем! Вы каким-то образом получили командный блок,"); yPos = yPos + 1 + ecs.centerText("x", yPos, "и настало время проказничать. Данная программа работает"); yPos = yPos + 1 + ecs.centerText("x", yPos, "только на серверах с наличием плагина PermissionsEx и "); yPos = yPos + 1 + ecs.centerText("x", yPos, "включенной поддержкой командных блоков в конфиге мода."); yPos = yPos + 2 + ecs.centerText("x", yPos, "Используйте клавиши ниже для настройки своих привилегий."); yPos = yPos + 3 + + local button1 = { ecs.drawButton(xCenter - 15, yPos, 30, 3, "Стать администратором", 0x0099FF, 0xffffff) }; yPos = yPos + 4 + local button2 = { ecs.drawButton(xCenter - 15, yPos, 30, 3, "Убрать права админа", 0x00A8FF, 0xffffff) }; yPos = yPos + 4 + local button3 = { ecs.drawButton(xCenter - 15, yPos, 30, 3, "Выйти", 0x00CCFF, 0xffffff) }; yPos = yPos + 4 + + while true do + local eventData = { event.pull() } + if eventData[1] == "touch" then + if ecs.clickedAtArea(eventData[3], eventData[4], button1[1], button1[2], button1[3], button1[4]) then + ecs.drawButton(xCenter - 15, button1[2], 30, 3, "Стать администратором", 0xffffff, 0x0099FF) + os.sleep(0.2) + op(eventData[6]) + ecs.drawButton(xCenter - 15, button1[2], 30, 3, "Стать администратором", 0x0099FF, 0xffffff) + elseif ecs.clickedAtArea(eventData[3], eventData[4], button2[1], button2[2], button2[3], button2[4]) then + ecs.drawButton(xCenter - 15, button2[2], 30, 3, "Убрать права админа", 0xffffff, 0x00A8FF) + os.sleep(0.2) + deop(eventData[6]) + ecs.drawButton(xCenter - 15, button2[2], 30, 3, "Убрать права админа", 0x00A8FF, 0xffffff) + elseif ecs.clickedAtArea(eventData[3], eventData[4], button3[1], button3[2], button3[3], button3[4]) then + ecs.drawButton(xCenter - 15, button3[2], 30, 3, "Выйти", 0xffffff, 0x00CCFF) + os.sleep(0.2) + ecs.prepareToExit() + return + end + end + end +end + +main() + + + + + + + + + diff --git a/Applications/ForceAdmin/Icon.pic b/Applications/ForceAdmin/Icon.pic new file mode 100644 index 0000000000000000000000000000000000000000..b46fdaf2cfc04015b974c2cad317ff15117a9c06 GIT binary patch literal 313 zcmXwzF%H5o5Cpw<=hzZuKEPLkB}-Hkc>w|n3P6GnQ1AvM1QJbN#z(^0xpcF;+PmGP zb>=7?!r0^Y{AS!%jvT0$WyVlAA|q8(GTQ1Wxay#kK6B1RJ!(xHA=LCXg{Bh