diff --git a/src/main/java/de/fanta/challengesjoinentities/ChallengesJoinEntities.java b/src/main/java/de/fanta/challengesjoinentities/ChallengesJoinEntities.java index 166f1c4..afa967a 100644 --- a/src/main/java/de/fanta/challengesjoinentities/ChallengesJoinEntities.java +++ b/src/main/java/de/fanta/challengesjoinentities/ChallengesJoinEntities.java @@ -8,9 +8,11 @@ import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.craftbukkit.v1_16_R1.entity.CraftPiglin; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; +import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; import java.util.HashMap; @@ -26,12 +28,15 @@ private Map entities; private Map entityPortLocations; - @Override - public void onEnable() { - this.config = new Config(this); - this.globalDataHelper = new ChallengesGlobalDataHelper(this); + public ChallengesJoinEntities() { this.entities = new HashMap<>(); this.entityPortLocations = new HashMap<>(); + } + + @Override + public void onEnable() { + this.globalDataHelper = new ChallengesGlobalDataHelper(this); + this.config = new Config(this); if (Bukkit.getPluginManager().getPlugin("Challenges") != null) { Bukkit.getPluginManager().registerEvents(new ChallengesEventListener(this), this); @@ -67,10 +72,16 @@ } public void addPiglin(UUID piglinUUID, String serverName, String gpLocationName) { + addPiglin(piglinUUID, serverName, gpLocationName, true); + } + + public void addPiglin(UUID piglinUUID, String serverName, String gpLocationName, boolean saveToConfig) { this.entities.put(serverName, piglinUUID); this.entityPortLocations.put(piglinUUID, gpLocationName); - this.config.savePiglin(piglinUUID, serverName, gpLocationName); + if (saveToConfig) { + this.config.savePiglin(piglinUUID, serverName, gpLocationName); + } } public void removePiglin(String serverName) { @@ -90,7 +101,11 @@ public void setServerStatus(String serverName, boolean online) { CraftPiglin piglin = getPiglinForServerName(serverName); if (piglin != null) { - // TODO trading dingsdings + paper in hand + if (!online) { + piglin.getEquipment().setItemInOffHand(new ItemStack(Material.GOLD_NUGGET)); + } else { + piglin.getEquipment().clear(); + } } } diff --git a/src/main/java/de/fanta/challengesjoinentities/Config.java b/src/main/java/de/fanta/challengesjoinentities/Config.java index ebf4a33..8ebfbc7 100644 --- a/src/main/java/de/fanta/challengesjoinentities/Config.java +++ b/src/main/java/de/fanta/challengesjoinentities/Config.java @@ -21,9 +21,11 @@ ConfigurationSection piglinsSection = config.getConfigurationSection("piglins"); - for (String serverName : piglinsSection.getKeys(false)) { - ConfigurationSection piglin = piglinsSection.getConfigurationSection(serverName); - plugin.addPiglin(UUID.fromString(piglin.getString("uuid")), serverName, piglin.getString("gpLocation")); + if (piglinsSection != null) { + for (String serverName : piglinsSection.getKeys(false)) { + ConfigurationSection piglin = piglinsSection.getConfigurationSection(serverName); + plugin.addPiglin(UUID.fromString(piglin.getString("uuid")), serverName, piglin.getString("gpLocation"), false); + } } } @@ -31,6 +33,11 @@ FileConfiguration config = plugin.getConfig(); ConfigurationSection piglinsSection = config.getConfigurationSection("piglins"); + if (piglinsSection == null) { + config.createSection("piglins"); + piglinsSection = config.getConfigurationSection("piglins"); + } + ConfigurationSection piglin = piglinsSection.createSection(serverName); piglin.set("uuid", piglinUUID.toString()); piglin.set("gpLocation", gpLocation); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 5731b8b..de54dde 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,4 +1 @@ piglins: - SERVERNAME: - uuid: - gpLocation: diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index c6cf3ba..d9c974f 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,7 +3,7 @@ version: ${project.version} author: ${project.author} -depend: [GlobalClient, CubesideUtils] +depend: [GlobalClient, CubesideUtils, GlobalPort] softdepend: [Challenges] commands: