Untitled diff

Created Diff never expires
0 removals
61 lines
1 addition
62 lines
PLUGIN.Title = "Respawner"
PLUGIN.Title = "Respawner"
PLUGIN.Version = V(0, 2, 1)
PLUGIN.Version = V(0, 2, 1)
PLUGIN.Description = "Automatically respawns players after they die."
PLUGIN.Description = "Automatically respawns players after they die."
PLUGIN.Author = "Wulf / Luke Spragg"
PLUGIN.Author = "Wulf / Luke Spragg"
PLUGIN.Url = "http://oxidemod.org/plugins/669/"
PLUGIN.Url = "http://oxidemod.org/plugins/669/"
PLUGIN.ResourceId = 669
PLUGIN.ResourceId = 669


local debug = false
local debug = false


--[[ Do NOT edit the config here, instead edit Respawner.json in oxide/config ! ]]
--[[ Do NOT edit the config here, instead edit Respawner.json in oxide/config ! ]]


function PLUGIN:LoadDefaultConfig()
function PLUGIN:LoadDefaultConfig()
self.Config.Messages = self.Config.Messages or {}
self.Config.Messages = self.Config.Messages or {}
messages = self.Config.Messages
messages = self.Config.Messages
messages.CustomSpawn = messages.CustomSpawn or "You've respawned at {location}"
messages.CustomSpawn = messages.CustomSpawn or "You've respawned at {location}"
messages.SameLocation = messages.SameLocation or "You've respawned at the same location"
messages.SameLocation = messages.SameLocation or "You've respawned at the same location"
messages.SleepingBag = messages.SleepingBag or "You've respawned at your sleeping bag"
messages.SleepingBag = messages.SleepingBag or "You've respawned at your sleeping bag"


self.Config.Settings = self.Config.Settings or {}
self.Config.Settings = self.Config.Settings or {}
settings = self.Config.Settings
settings = self.Config.Settings
settings.AutoWakeUp = settings.AutoWakeUp or "true"
settings.AutoWakeUp = settings.AutoWakeUp or "true"
settings.CustomSpawn = settings.CustomSpawn or "false"
settings.CustomSpawn = settings.CustomSpawn or "false"
settings.SameLocation = settings.SameLocation or "false"
settings.SameLocation = settings.SameLocation or "false"
settings.ShowMessages = settings.ShowMessages or "false"
settings.ShowMessages = settings.ShowMessages or "false"
settings.SleepingBags = settings.SleepingBags or "false"
settings.SleepingBags = settings.SleepingBags or "false"


self:SaveConfig()
self:SaveConfig()
end
end


local function Print(self, message) print("[" .. self.Title .. "] " .. message) end
local function Print(self, message) print("[" .. self.Title .. "] " .. message) end


local FindForPlayer = global.SleepingBag.FindForPlayer.methodarray[0]
local FindForPlayer = global.SleepingBag.FindForPlayer.methodarray[0]
local function FindSleepingBags(steamId)
local function FindSleepingBags(steamId)
local array = util.TableToArray({ steamId, true })
local array = util.TableToArray({ steamId, true })
util.ConvertAndSetOnArray(array, 0, steamId, System.UInt64._type)
util.ConvertAndSetOnArray(array, 0, steamId, System.UInt64._type)
return FindForPlayer:Invoke(nil, array)
return FindForPlayer:Invoke(nil, array)
end
end


function PLUGIN:Init() self:LoadDefaultConfig() end
function PLUGIN:Init() self:LoadDefaultConfig() end


function PLUGIN:Respawn(player)
function PLUGIN:Respawn(player)
local steamId = rust.UserIDFromPlayer(player)
local steamId = rust.UserIDFromPlayer(player)
local spawnTimer = {}
local spawnTimer = {}


spawnTimer[steamId] = timer.Once(1, function()
spawnTimer[steamId] = timer.Once(1, function()
player:Respawn(true)
player:Respawn(true)


if settings.AutoWakeUp == "true" then player:EndSleeping() end
end, self.Plugin)
end, self.Plugin)
end
end


function PLUGIN:OnEntityDeath(entity)
function PLUGIN:OnEntityDeath(entity)
local player = entity:ToPlayer()
local player = entity:ToPlayer()
if player and player:IsConnected() then self:Respawn(player) end
if player and player:IsConnected() then self:Respawn(player) end
end
end


function PLUGIN:OnPlayerRespawned(player)
function PLUGIN:OnPlayerRespawned(player)
if debug then Print(self, "Spawn location: " .. tostring(player.transform.position)) end
if debug then Print(self, "Spawn location: " .. tostring(player.transform.position)) end
end
end