---

- name: add minecraft user
  become: yes
  user: name="{{minecraft_user}}" home="{{minecraft_dir}}"

- name: install adoptopenjdk
  include_tasks: adoptopenjdk.yaml

- name: set minecraft fork
  set_fact: minecraft_url="{{minecraft_vanilla_url}}"
  when: minecraft_fork == "vanilla"

- name: set minecraft fork
  set_fact: minecraft_url="{{minecraft_paper_url}}"
  when: minecraft_fork == "paper"

- name: create minecraft dir
  become: yes
  file:
    path: "{{minecraft_dir}}"
    owner: "{{minecraft_user}}"
    group: "{{minecraft_user}}"
    mode: "0755"
    state: "directory"

- name: download minecraft
  become: yes
  get_url:
    url: "{{minecraft_url}}"
    dest: "{{minecraft_dir}}/server.jar"
    mode: "0755"
  notify: restart minecraft

- name: configure minecraft eula and ops
  become: yes
  copy:
    src: "{{item}}"
    dest: "{{minecraft_dir}}/{{item}}"
    owner: "{{minecraft_user}}"
    group: "{{minecraft_user}}"
  loop:
    - "eula.txt"
    - "ops.json"
  notify: restart minecraft

- name: install plugins
  include_tasks: dynmap.yaml
  when: minecraft_fork == "paper"

- name: create server.properties
  become: yes
  file:
    path: "{{minecraft_dir}}/server.properties"
    state: "touch"
    access_time: "preserve"
    modification_time: "preserve"
    owner: "{{minecraft_user}}"
    group: "{{minecraft_user}}"

- name: configure server.properties
  become: yes
  lineinfile:
    path: "{{minecraft_dir}}/server.properties"
    regexp: "^{{item.key}}="
    line: "{{item.key}}={{item.value}}"
  notify: restart minecraft
  loop:
    - {key: "motd", value: "{{minecraft_motd}}"}
    - {key: "level-seed", value: "{{minecraft_seed}}"}
    - {key: "difficulty", value: "{{minecraft_difficulty}}"}

- name: install systemd service
  become: yes
  template:
    src: "minecraft.service.j2"
    dest: "/lib/systemd/system/minecraft.service"
  notify: restart minecraft

- name: ensure service is started
  become: yes
  systemd: name="minecraft.service" enabled="yes" state="started"
