import time import logging logger = logging.getLogger(__name__) class Event: def __init__(self, tick_start, tick_stop, chance, repeat_times, command): self.tick_start = tick_start self.tick_stop = tick_stop self.chance = chance self.repeat_times = repeat_times self.command = command self.executed = 0 def __str__(self): return str("Event starting at time {}".format(self.tick_start)) def loop(self, bot, tick): if self.is_active(tick): if self.is_oneshot(): if self.executed == 0: self.execute(bot, tick) else: self.execute(bot, tick) def is_active(self, tick): if tick >= self.tick_start and tick <= self.tick_stop: return True else: return False def is_oneshot(self): if self.tick_stop == 0 or self.tick_stop == self.tick_start: return True else: return False def is_timespan(self): if self.tick_stop > self.tick_start: return True else: return False def execute(self, bot, tick): logger.info("event executed for " + bot.name + ". current tick: " + str(tick) + " event: " + str(self.command)) if self.command.startswith('printtime'): print(time.time()//1000) self.executed += 1