class StarWarsDestiny():
  def __init__(self, bot):
    self.bot = bot

  def destiny_new(self, num : int):
    self.bot.log("Creating a new destiny pool with "+str(num)+" players")
    roll, dice_results = self.bot.star_wars.roll.roll(0,0,0,0,0,0,num)
    roll = "".join(sorted(roll))

    with open("gwendolyn/resources/star_wars/destinyPoints.txt","wt") as file_pointer:
      file_pointer.write(roll)

    return "Rolled for Destiny Points and got:\n"+self.bot.star_wars.roll.diceResultToEmoji(dice_results)+"\n"+self.bot.star_wars.roll.resultToEmoji(roll)

  def destiny_use(self, user : str):
    with open("gwendolyn/resources/star_wars/destinyPoints.txt","rt") as file_pointer:
      points = file_pointer.read()

    if user == "Nikolaj":
      self.bot.log("Trying to use a dark side destiny point")
      if 'B' in points:
        points = points.replace("B","L",1)
        points = "".join(sorted(points))
        with open("gwendolyn/resources/star_wars/destinyPoints.txt","wt") as file_pointer:
          file_pointer.write(points)
        self.bot.log("Did it")
        return "Used a dark side destiny point. Destiny pool is now:\n"+self.bot.star_wars.roll.resultToEmoji(points)
      else:
        self.bot.log("There were no dark side destiny points")
        return "No dark side destiny points"
    else:
      self.bot.log("Trying to use a light side destiny point")
      if 'L' in points:
        points = points.replace("L","B",1)
        points = "".join(sorted(points))
        with open("gwendolyn/resources/star_wars/destinyPoints.txt","wt") as file_pointer:
          file_pointer.write(points)
        self.bot.log("Did it")
        return "Used a light side destiny point. Destiny pool is now:\n"+self.bot.star_wars.roll.resultToEmoji(points)
      else:
        self.bot.log("There were no dark side destiny points")
        return "No light side destiny points"

  async def parse_destiny(self, ctx, cmd : str):
    user = f"#{ctx.author.id}"
    if cmd != "":
      while cmd[0] == ' ':
        cmd = cmd[1:]
        if cmd == "":
          break

    if cmd == "":
      self.bot.log("Retrieving destiny pool info")
      with open("gwendolyn/resources/star_wars/destinyPoints.txt","rt") as file_pointer:
        send_message = self.bot.star_wars.roll.resultToEmoji(file_pointer.read())
    else:
      commands = cmd.upper().split(" ")
      if commands[0] == "N":
        if len(commands) > 1:
          send_message = self.destiny_new(int(commands[1]))
        else:
          send_message = "You need to give an amount of players"
      elif commands[0] == "U":
        send_message = self.destiny_use(user)
      else:
        send_message = "I didn't quite understand that"

    message_list = send_message.split("\n")
    await ctx.send(message_list[0])
    if len(message_list) > 1:
      for message_item in message_list[1:]:
        await ctx.channel.send(message_item)
