Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- KrapAPI
- ChatBox = peripheral.find("chat_box")
- KrapApi = {}
- KrapApi.Blacklist = {}
- function KrapApi.Blacklist.apply()
- KrapApi.Blacklist.file.write(KrapApi.Blacklist.blacklist)
- KrapApi.Blacklist.file.flush()
- end
- function KrapApi.Blacklist.deny(_sUser)
- KrapApi.Blacklist.blacklist[_sUser] = true
- if KrapApi.Blacklist.blacklist[_sUser] then return true else return false end
- KrapApi.Blacklist.apply()
- end
- function KrapApi.Blacklist.allow(_sUser)
- KrapApi.Blacklist.blacklist[_sUser] = false
- if KrapApi.Blacklist.blacklist[_sUser] then return false else return true end
- KrapApi.Blacklist.apply()
- end
- function KrapApi.Blacklist.isBlacklisted(_sUser)
- if KrapApi.Blacklist.blacklist[_sUser] then return true else return false end
- end
- KrapApi.Chat = {}
- function KrapApi.Chat.raw(_sTarget,_sText)
- return KrapApi.say(_sText,KrapBot.prefix)
- end
- function KrapApi.Chat.say(_sText)
- return KrapApi.say(_sText,KrapBot.prefix)
- end
- function KrapApi.Chat.tell(_sTarget,_sText)
- return KrapApi.say(_sText,KrapBot.prefix)
- end
- function KrapApi.Chat.read()
- while true do
- local _sEvent,_sUser,_sMessage = os.pullEvent("chat")
- if not KrapApi.Blacklist.isBlacklisted(_sUser) then
- return _sMessage,_sUser
- end
- end
- end
- function KrapApi.Chat.readCmd()
- while true do
- local _sEvent,_sUser,_sMessage = os.pullEvent("command")
- if (_sEvent == "command") and (not KrapApi.Blacklist.isBlacklisted(_sUser)) then
- return _sMessage,_sUser
- elseif (_sEvent == "command") and (_sMessage:sub(1,#KrapBot.commandPrefix) == KrapBot.commandPrefix) and (not KrapApi.Blacklist.isBlacklisted(_sUser)) then
- return _sMessage:sub(#KrapBot.commandPrefix+1,#_sMessage),_sUser
- end
- end
- end
- function KrapApi.Chat.setLabel(_sLabel)
- if _sLabel then
- KrapBot.prefix = tostring(_sLabel)
- return true
- else
- return false
- end
- end
- function KrapApi.Chat.getLabel()
- return KrapBot.prefix
- end
- KrapApi.Core = {}
- function KrapApi.Core.loadPlugin(_sFile)
- local _sPath = KrapApi.root .. "plugins/" .. _sFile
- local sName = fs.getName( _sPath )
- local tEnv = {}
- setmetatable( tEnv, { __index = _G } )
- local fnAPI, err = loadfile( _sPath, tEnv )
- if fnAPI then
- local ok, err = pcall( fnAPI )
- if not ok then
- return false
- end
- else
- return false end
- local tAPI = {}
- for k,v in pairs( tEnv ) do
- if k ~= "_ENV" then
- tAPI[k] = v
- end
- end
- KrapBot.loadedPlugins[sName] = tAPI
- return true
- end
- function KrapApi.Core.version()
- return 1
- end
- KrapApi.Permissions = {}
- function KrapApi.Permissions.reload()
- local fFile = fs.open(KrapBot.root .. "Permissions.tbl","r")
- KrapBot.permissions = textutils.unserialise(fFile.readAll())
- if type(KrapBot.permissions) == "table" then return true else return false end
- end
- function KrapApi.Permissions.flush()
- local fFile = fs.open(KrapBot.root .. "Permissions.tbl","w")
- fFile.write(textutils.serialize(KrapBot.permissions))
- fFile.flush()
- end
- function KrapApi.Permissions.check()
- local tPermissions = KrapBot.permissions
- if not tPermissions then
- tPermissions = {}
- end
- if not tPermissions.users then
- tPermissions.users = {}
- end
- if not tPermissions.groups then
- tPermissions.groups = {}
- end
- if not tPermissions.settings then
- tPermissions.settings = {}
- end
- if not tPermissions.settings.defaultGroup then
- tPermissions.settings.defaultGroup = "default"
- end
- if not tPermissions.groups.default then
- tPermissions.groups.default = {}
- end
- for i,k in pairs(tPermissions.users) do
- if not k.group then
- k.group = tPermissions.settings.defaultGroup
- end
- if not k.permissions then
- k.permissions = {}
- end
- end
- for i,k in pairs(tPermissions.groups) do
- if not k.permissions then
- k.permissions = {}
- end
- if not k.name then
- k.name = i
- end
- end
- if tPermissions ~= KrapBot.permissions then
- KrapBot.permissions = tPermissions
- KrapApi.Permissions.flush()
- end
- end
- KrapApi.Permissions.User = {}
- function KrapApi.Permissions.User.list()
- local fUsers = {}
- for i,k in pairs(KrapBot.permissions.users) do
- table.insert(fUsers,i)
- end
- return fUsers
- end
- function KrapApi.Permissions.User.add(_sUser)
- if (KrapBot.permissions.users[_sUser]) then
- return false
- end
- KrapBot.permissions.users[_sUser] = {['group'] = KrapBot.permissions.settings.defaultGroup,['permissions'] = {}}
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.User.remove(_sUser)
- if (not KrapBot.permissions.users[_sUser]) then
- return false
- end
- KrapBot.permissions.users[_sUser] = nil
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.User.setPrefix(_sUser,_sNewPrefix)
- if (not KrapBot.permissions.users[_sUser]) then
- return false
- end
- KrapBot.permissions.users[_sUser]['prefix'] = _sNewPrefix
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.User.setSuffix(_sUser,_sNewSuffix)
- if (not KrapBot.permissions.users[_sUser]) then
- return false
- end
- KrapBot.permissions.users[_sUser]['suffix'] = _sNewSuffix
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.User.getPrefix(_sUser)
- return KrapBot.permissions.users[_sUser]['prefix']
- end
- function KrapApi.Permissions.User.getSuffix(_sUser)
- return KrapBot.permissions.users[_sUser]['suffix']
- end
- function KrapApi.Permissions.User.resetPrefix(_sUser)
- if (not KrapBot.permissions.users[_sUser]) then
- return false
- end
- KrapBot.permissions.users[_sUser]['prefix'] = nil
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.User.resetSuffix(_sUser)
- if (not KrapBot.permissions.users[_sUser]) then
- return false
- end
- KrapBot.permissions.users[_sUser]['suffix'] = nil
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.User.check(_sUser,_sPermission)
- if (not KrapBot.permissions.users[_sUser]) then
- return false
- end
- if (KrapBot.permissions.users[_sUser]['permissions'][_sPermission]) then
- return true
- else
- return false
- end
- end
- function KrapApi.Permissions.User.addPermission(_sUser,_sPermission)
- if (not KrapBot.permissions.users[_sUser]) then
- return false
- end
- KrapBot.permissions.users[_sUser]['permissions'][_sPermission] = true
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.User.removePermission(_sUser,_sPermission)
- if (not KrapBot.permissions.users[_sUser]) or (not KrapBot.permissions.users[_sUser]['permissions'][_sPermission]) then
- return false
- end
- KrapBot.permissions.users[_sUser]['permissions'][_sPermission] = nil
- KrapApi.Permissions.flush()
- return true
- end
- KrapApi.Permissions.Group = {}
- function KrapApi.Permissions.Group.setDefaultGroup(_sTarget)
- KrapBot.permissions.settings.defaultGroup = _sTarget
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.list()
- local fGroups = {}
- for i,k in pairs(KrapBot.permissions.groups) do
- table.insert(fGroups,i)
- end
- KrapApi.Permissions.flush()
- return fGroups
- end
- function KrapApi.Permissions.Group.createGroup(_sName)
- if (KrapBot.permissions.groups[_sName]) then
- return false
- end
- KrapBot.permissions.groups[_sName] = {['permissions'] = {},['name'] = _sName}
- return true
- end
- function KrapApi.Permissions.Group.removeGroup(_sName)
- if (not KrapBot.permissions.groups[_sName]) then
- return false
- end
- KrapBot.permissions.groups[_sName] = nil
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.addUser(_sTarget,_sGroup)
- if (not KrapBot.permissions.groups[_sGroup]) or (not KrapBot.permissions.users[_sTarget]) or (KrapBot.permissions.users[_sTarget]['group']) then
- return false
- end
- KrapBot.permissions.users[_sTarget]['group'] = _sGroup
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.removeUser(_sTarget,_sGroup)
- if (not KrapBot.permissions.users[_sTarget]) then
- return false
- end
- KrapBot.permissions.users[_sTarget]['group'] = nil
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.setPrefix(_sGroup,_sNewPrefix)
- if (not KrapBot.permissions.groups[_sGroup]) then
- return false
- end
- KrapBot.permissions.groups[_sGroup]['prefix'] = _sNewPrefix
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.setSuffix(_sGroup,_sNewSuffix)
- if (not KrapBot.permissions.groups[_sGroup]) then
- return true
- end
- KrapBot.permissions.groups[_sGroup]['suffix'] = _sNewSuffix
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.getPrefix(_sGroup)
- return KrapBot.permissions.groups[_sGroup]['prefix']
- end
- function KrapApi.Permissions.Group.getSuffix(_sGroup)
- return KrapBot.permissions.groups[_sGroup]['suffix']
- end
- function KrapApi.Permissions.Group.resetPrefix(_sGroup)
- if (not KrapBot.permissions.groups[_sGroup]) then
- return false
- end
- KrapBot.permissions.grou[_sGroup]['prefix'] = nil
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.resetSuffix(_sGroup)
- if (not KrapBot.permissions.groups[_sGroup]) then
- return false
- end
- KrapBot.permissions.groups[_sGroup]['suffix'] = nil
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.addPermission(_sGroup,_sPermissions)
- if (not KrapBot.permissions.groups[_sGroup]) then
- return false
- end
- KrapBot.permissions.groups[_sGroup]['permissions'][_sPermission] = true
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.removePermission(_sGroup,_sPermission)
- if (not KrapBot.permissions.groups[_sGroup]) then
- return false
- end
- KrapBot.permissions.groups[_sGroup]['permissions'][_sPermission] = nil
- KrapApi.Permissions.flush()
- return true
- end
- function KrapApi.Permissions.Group.check(_sGroup,_sPermission)
- if (not KrapBot.permissions.groups[_sGroup]) then
- return false
- end
- if KrapBot.permissions.groups[_sGroup]['permissions'][_sPermission] then
- return true
- else
- return false
- end
- end
- -- Main
- function KrapApi.say(_sText,_sPrefix)
- return ChatBox.say(_sText,_sPrefix)
- end
- -- Program
- KrapBot = {}
- KrapBot.command = peripheral.find("command")
- KrapBot.prefix = "&7<&dKrapBot&7> &r"
- KrapBot.commandPrefix = "!"
- KrapBot.root = "/KrapBot/"
- KrapBot.loadedPlugins = {}
- KrapBot.disabledPlugins = {}
- KrapBot.permissions = {}
- if not fs.exists(KrapBot.root) then
- fs.makeDir(KrapBot.root)
- fs.makeDir(KrapBot.root .. "plugins/")
- local _fFile = fs.open(KrapBot.root .. "Blacklist.tbl","a")
- _fFile.write(textutils.serialize({}))
- _fFile.close()
- local _fFile = fs.open(KrapBot.root .. "Permissions.tbl","a")
- _fFile.write("{}")
- _fFile.close()
- end
- KrapApi.Blacklist.file = fs.open(KrapBot.root .. "Blacklist.tbl","w")
- KrapApi.Blacklist.blacklist = textutils.serialize(fs.open(KrapBot.root .. "Blacklist.tbl","r").readAll())
- KrapApi.Permissions.reload()
- KrapApi.Permissions.check()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement