diff --git a/classes/artifacts/Factions_jar/Factions.jar b/classes/artifacts/Factions_jar/Factions.jar deleted file mode 100644 index 2fe0a4a2..00000000 Binary files a/classes/artifacts/Factions_jar/Factions.jar and /dev/null differ diff --git a/src/main/java/com/massivecraft/factions/FactionsPlugin.java b/src/main/java/com/massivecraft/factions/FactionsPlugin.java old mode 100644 new mode 100755 diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsBlockListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsBlockListener.java index ffadf8b0..1b2387f1 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsBlockListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsBlockListener.java @@ -562,4 +562,4 @@ public class FactionsBlockListener implements Listener { } } } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/missions/MissionHandler.java b/src/main/java/com/massivecraft/factions/missions/MissionHandler.java index c756c14e..8476e46f 100644 --- a/src/main/java/com/massivecraft/factions/missions/MissionHandler.java +++ b/src/main/java/com/massivecraft/factions/missions/MissionHandler.java @@ -6,6 +6,8 @@ import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -13,6 +15,7 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.entity.EntityBreedEvent; import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityTameEvent; import org.bukkit.event.player.PlayerFishEvent; import java.util.List; @@ -38,7 +41,7 @@ public class MissionHandler implements Listener { List missions = fPlayer.getFaction().getMissions().values().stream().filter(mission -> mission.getType().equalsIgnoreCase("kill")).collect(Collectors.toList()); for (Mission mission2 : missions) { ConfigurationSection section = plugin.getConfig().getConfigurationSection("Missions").getConfigurationSection(mission2.getName()); - if (!event.getEntityType().toString().equals(section.getConfigurationSection("Mission").getString("EntityType"))) { + if (!event.getEntityType().toString().equals(section.getConfigurationSection("Mission").getString("EntityType")) && !section.getConfigurationSection("Mission").getString("EntityType").equalsIgnoreCase("ALL")) { continue; } mission2.incrementProgress(); @@ -55,7 +58,7 @@ public class MissionHandler implements Listener { List missions = fPlayer.getFaction().getMissions().values().stream().filter(mission -> mission.getType().equalsIgnoreCase("mine")).collect(Collectors.toList()); for (Mission mission2 : missions) { ConfigurationSection section = plugin.getConfig().getConfigurationSection("Missions").getConfigurationSection(mission2.getName()); - if (!event.getBlock().getType().toString().equals(section.getConfigurationSection("Mission").getString("Material"))) { + if (!event.getBlock().getType().toString().equals(section.getConfigurationSection("Mission").getString("Material")) && !section.getConfigurationSection("Mission").getString("Material").equalsIgnoreCase("ALL")) { continue; } mission2.incrementProgress(); @@ -72,7 +75,7 @@ public class MissionHandler implements Listener { List missions = fPlayer.getFaction().getMissions().values().stream().filter(mission -> mission.getType().equalsIgnoreCase("place")).collect(Collectors.toList()); for (Mission mission2 : missions) { ConfigurationSection section = plugin.getConfig().getConfigurationSection("Missions").getConfigurationSection(mission2.getName()); - if (!event.getBlock().getType().toString().equals(section.getConfigurationSection("Mission").getString("Material"))) { + if (!event.getBlock().getType().toString().equals(section.getConfigurationSection("Mission").getString("Material")) && !section.getConfigurationSection("Mission").getString("Material").equalsIgnoreCase("ALL")) { continue; } mission2.incrementProgress(); @@ -97,6 +100,26 @@ public class MissionHandler implements Listener { } } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onPlayerTame(EntityTameEvent event) { + if (!(event.getOwner() instanceof Player)) { + return; + } + FPlayer fPlayer = FPlayers.getInstance().getByPlayer((Player)event.getOwner()); + if (fPlayer == null) { + return; + } + List missions = fPlayer.getFaction().getMissions().values().stream().filter(mission -> mission.getType().equalsIgnoreCase("tame")).collect(Collectors.toList()); + for (Mission mission2 : missions) { + ConfigurationSection section = plugin.getConfig().getConfigurationSection("Missions").getConfigurationSection(mission2.getName()); + if (!event.getEntityType().toString().equals(section.getConfigurationSection("Mission").getString("EntityType")) && !section.getConfigurationSection("Mission").getString("EntityType").equalsIgnoreCase("ALL")) { + continue; + } + mission2.incrementProgress(); + checkIfDone(fPlayer, mission2, section); + } + } + private void checkIfDone(FPlayer fPlayer, Mission mission, ConfigurationSection section) { if (mission.getProgress() < section.getConfigurationSection("Mission").getLong("Amount")) { return; diff --git a/src/main/java/com/massivecraft/factions/struct/Permission.java b/src/main/java/com/massivecraft/factions/struct/Permission.java old mode 100644 new mode 100755 diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index cfa00f06..e1dc510c 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -741,7 +741,7 @@ Missions-GUI-Title: '&bFaction Missions' MaximumMissionsAllowedAtOnce: 1 Mission-Progress-Format: '&b&lProgression: &f{progress}&7/&e{total}' -#Mission Types: KILL, MINE, FISH +#Mission Types: KILL, MINE, PLACE, FISH, TAME Missions: sugarcane: Slot: 11 @@ -778,6 +778,18 @@ Missions: Amount: 100 Reward: Commands: ["f points add %faction% 100"] + animaltaming: + Slot: 21 + Material: "BONE" + Name: "&f100 &cTamed Animals" + Lore: + - "&b&lTame an animal &n100&r &d<imes" + Mission: + Type: "TAME" + EntityType: "ALL" + Amount: 100 + Reward: + Commands: ["f points add %faction% 100"] ############################################################ # +------------------------------------------------------+ # diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 0110ed1d..ce00422c 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -22,6 +22,7 @@ permissions: factions.modifypower: true factions.ahome: true factions.setmaxvaults: true + factions.convertconfig: true factions.*: description: This is just an alias for factions.kit.admin children: