__author__ = 'CorrosionX'
__name__ = 'EasyAirdrops'
__version__ = '1.2.3'
import clr
import sys
clr.AddReferenceByPartialName("UnityEngine")
clr.AddReferenceByPartialName("Pluton")
import UnityEngine
import Pluton
class EasyAirdrops:
def On_PluginInit(self):
if not Plugin.IniExists("EasyAirdrops"):
setini = Plugin.CreateIni("EasyAirdrops")
setini.AddSetting("Settings", "PlayersRequired", "3") # Default
setini.AddSetting("Settings", "DropFrequency", "3600") # In Seconds! 1 hour
setini.AddSetting("Settings", "DropDuring", "anytime") # (default) - Can be day/night/anytime
setini.Save()
drop_time1 = 3600000
DataStore.Add("airdrop", "call", False)
Plugin.CreateTimer("AirDropTimer", drop_time1).Start()
else:
# If config exists, make sure each setting is set, else add what is missing
ini = self.easyairdropsini()
if ini.GetSetting("Settings", "PlayersRequired") is None:
ini.AddSetting("Settings", "PlayersRequired", "3") # Default
if ini.GetSetting("Settings", "DropFrequency") is None:
ini.AddSetting("Settings", "DropFrequency", "3600") # In Seconds! 1 hour
if ini.GetSetting("Settings", "DropDuring") is None:
ini.AddSetting("Settings", "DropDuring", "anytime")
ini.Save()
def On_PlayerConnected(self, player):
ini = self.easyairdropsini()
req_players = 0
try:
req_players = int(ini.GetSetting("Settings", "PlayersRequired"))
except:
req_players = 3 # Default if incorrectly set in config
if req_players <= Server.Players.Count:
DataStore.Add("airdrop", "call", True)
Server.Broadcast("AirDrops are now being called for!") # debug
player.Message("Required Players= " + str(req_players)) # //debug
# drop_time2 = 0
try:
drop_time2 = int(ini.GetSetting("Settings", "DropFrequency"))*1000
except:
drop_time2 = 3600000 # default if not set properly
timer = Plugin.GetTimer("airdroptimer")
Server.Broadcast(str(drop_time2))
if timer is None:
Plugin.CreateTimer("airdroptimer", drop_time2).Start()
def On_PlayerDisconnected(self, unused):
ini = self.easyairdropsini()
req_players = 0
try:
req_players = int(ini.GetSetting("Settings", "PlayersRequired"))
except:
req_players = 3 # Default if incorrectly set in config
if req_players > Server.Players.Count:
DataStore.Add("airdrop", "call", False)
Server.Broadcast("Not enough people online to call airdrops!") # debug
timer = Plugin.GetTimer("airdroptimer")
if timer is not None:
Plugin.KillTimer("airdroptimer")
def airdroptimerCallback(self, timer):
ini = self.easyairdropsini()
drop_time = 0
try:
drop_time = int(ini.GetSetting("Settings", "DropFrequency"))*1000
except:
drop_time = 3600000 # Default time if number not set.
Server.Broadcast("Timer Completed. Drop Frequency =" + str(drop_time)) # debug
time = DataStore.Get("airdrop", "call")
if time:
drop_during = str(ini.GetSetting("Settings", "DropDuring"))
if drop_during == "night" and 17.5 < World.Time < 5.5:
World.Airdrop()
elif drop_during == "day" and 17.5 > World.Time > 5.5:
World.Airdrop()
else:
World.Airdrop()
Server.Broadcast("AirDrop on its way!")
Plugin.CreateTimer("airdroptimer", drop_time).Start()
def easyairdropsini(self):
return Plugin.GetIni("EasyAirdrops")