Added 3 more quests
Prevented killing the npc Made more things configurable Moved things to the right config
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package com.alttd.altitudequests.events;
|
||||
|
||||
import com.alttd.altitudequests.config.LocalConfig;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByBlockEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityPotionEffectEvent;
|
||||
import org.bukkit.event.vehicle.VehicleEnterEvent;
|
||||
|
||||
public class DonNotMessWithNPC implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onVehicleEnter(VehicleEnterEvent event) {
|
||||
Entity entered = event.getEntered();
|
||||
if (!(entered instanceof Wolf))
|
||||
return;
|
||||
if (LocalConfig.activeNPC.equals(entered.getUniqueId()))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onVillagerPotioned(EntityPotionEffectEvent event) {
|
||||
Entity entity = event.getEntity();
|
||||
if (!(entity instanceof Wolf))
|
||||
return;
|
||||
if (LocalConfig.activeNPC.equals(entity.getUniqueId()))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onVillagerEntityDamage(EntityDamageByEntityEvent event) {
|
||||
Entity entity = event.getEntity();
|
||||
if (!(entity instanceof Wolf))
|
||||
return;
|
||||
if (LocalConfig.activeNPC.equals(entity.getUniqueId()))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onVillagerBlockDamage(EntityDamageByBlockEvent event) {
|
||||
Entity entity = event.getEntity();
|
||||
if (!(entity instanceof Wolf))
|
||||
return;
|
||||
if (LocalConfig.activeNPC.equals(entity.getUniqueId()))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.alttd.altitudequests.events;
|
||||
|
||||
import com.alttd.altitudequests.objects.Quest;
|
||||
import com.alttd.altitudequests.objects.quests.BreedMobsQuest;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityBreedEvent;
|
||||
|
||||
public class EntityBreed implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onEntityBreed(EntityBreedEvent event) {
|
||||
if (!(event.getBreeder() instanceof Player player))
|
||||
return;
|
||||
Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId());
|
||||
if (dailyQuest == null || dailyQuest.isDone())
|
||||
return;
|
||||
if (dailyQuest instanceof BreedMobsQuest breedMobsQuest) {
|
||||
breedMobsQuest.breed(event.getMother());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.alttd.altitudequests.events;
|
||||
|
||||
import com.alttd.altitudequests.objects.Quest;
|
||||
import com.alttd.altitudequests.objects.quests.CollectDropsQuest;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerBucketFillEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class EntityBucketed implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBucketFill(PlayerBucketFillEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId());
|
||||
if (dailyQuest == null || dailyQuest.isDone())
|
||||
return;
|
||||
if (dailyQuest instanceof CollectDropsQuest collectDropsQuest) {
|
||||
ItemStack itemStack = event.getItemStack();
|
||||
if (itemStack != null)
|
||||
collectDropsQuest.collectDrops(List.of(itemStack));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.alttd.altitudequests.events;
|
||||
|
||||
import com.alttd.altitudequests.objects.Quest;
|
||||
import com.alttd.altitudequests.objects.quests.CollectDropsQuest;
|
||||
import com.alttd.altitudequests.objects.quests.KillMobsQuest;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
|
||||
public class EntityDeath implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onEntityDeath(EntityDeathEvent event) {
|
||||
LivingEntity entity = event.getEntity();
|
||||
Player player = entity.getKiller();
|
||||
if (player == null)
|
||||
return;
|
||||
Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId());
|
||||
if (dailyQuest == null || dailyQuest.isDone())
|
||||
return;
|
||||
if (dailyQuest instanceof KillMobsQuest killMobsQuest) {
|
||||
killMobsQuest.kill(entity);
|
||||
} else if (dailyQuest instanceof CollectDropsQuest collectDropsQuest) {
|
||||
collectDropsQuest.collectDrops(event.getDrops());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.alttd.altitudequests.events;
|
||||
|
||||
import com.alttd.altitudequests.objects.Quest;
|
||||
import com.alttd.altitudequests.objects.quests.CollectDropsQuest;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerShearEntityEvent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class EntitySheared implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onEntityShear(PlayerShearEntityEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId());
|
||||
if (dailyQuest == null || dailyQuest.isDone())
|
||||
return;
|
||||
if (dailyQuest instanceof CollectDropsQuest collectDropsQuest) {
|
||||
collectDropsQuest.collectDrops(List.of(event.getItem()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ public class PluginMessageListener implements org.bukkit.plugin.messaging.Plugin
|
||||
case "try-lock-result" -> {
|
||||
if (!in.readBoolean()) {
|
||||
Logger.warning("Unable to lock row");
|
||||
return; //TODO handle
|
||||
return;
|
||||
}
|
||||
UUID uuid = UUID.fromString(in.readUTF());
|
||||
if (Config.DEBUG)
|
||||
@@ -49,7 +49,7 @@ public class PluginMessageListener implements org.bukkit.plugin.messaging.Plugin
|
||||
case "locked-queue-lock" -> {
|
||||
if (!in.readBoolean()) {
|
||||
Logger.warning("Got false back from locked queue lock");
|
||||
return; //TODO handle
|
||||
return;
|
||||
}
|
||||
UUID uuid = UUID.fromString(in.readUTF());
|
||||
if (Config.DEBUG)
|
||||
|
||||
@@ -36,7 +36,5 @@ public class TalkToQuest implements Listener {
|
||||
inProcess.remove(uniqueId);
|
||||
}
|
||||
}.runTaskAsynchronously(AQuest.getInstance());
|
||||
//TODO make it so everything can be done with commands and just don't let them tab complete and do them through the book instead
|
||||
//TODO in config allow a multitude of events to be prepared and randomly select from them at certain times of day?
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user