VillagerShopUI/src/main/java/com/alttd/events/VillagerEvents.java

108 lines
3.5 KiB
Java
Raw Normal View History

2021-09-24 23:56:42 +00:00
package com.alttd.events;
import com.alttd.GUI.windows.OpenGUI;
2021-10-23 12:43:11 +00:00
import com.alttd.VillagerUI;
import com.alttd.config.Config;
2021-12-23 02:03:00 +00:00
import com.alttd.config.VillagerConfig;
2021-12-23 21:52:13 +00:00
import com.alttd.objects.EconUser;
2021-09-24 23:56:42 +00:00
import com.alttd.objects.LoadedVillagers;
import com.alttd.objects.VillagerType;
import com.alttd.util.Utilities;
import jdk.jshell.execution.Util;
2021-12-23 02:03:00 +00:00
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
2021-09-24 23:56:42 +00:00
import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByBlockEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
2021-12-23 02:03:00 +00:00
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityPotionEffectEvent;
2021-09-24 23:56:42 +00:00
import org.bukkit.event.player.PlayerInteractEntityEvent;
2021-10-23 12:43:11 +00:00
import org.bukkit.scheduler.BukkitRunnable;
2021-09-24 23:56:42 +00:00
2021-12-23 02:03:00 +00:00
import java.util.UUID;
2021-12-23 02:15:38 +00:00
public class VillagerEvents implements Listener {
2021-09-24 23:56:42 +00:00
@EventHandler
public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
if (!(event.getRightClicked() instanceof Villager villager))
return;
VillagerType loadedVillager = LoadedVillagers.getLoadedVillager(villager.getUniqueId());
if (loadedVillager == null)
return;
Player player = event.getPlayer();
event.setCancelled(true);
if (!player.hasPermission(loadedVillager.getPermission())) {
player.sendMiniMessage(Config.NO_PERMISSION, null); //TODO more specific message?
return;
}
EconUser user = EconUser.getUser(player.getUniqueId());
if (user == null) {
Utilities.econSyncingMessage(player);
return;
}
2021-10-23 12:43:11 +00:00
new BukkitRunnable() {
@Override
public void run() {
OpenGUI openGUI = new OpenGUI(loadedVillager, user);
2021-10-23 12:43:11 +00:00
new BukkitRunnable() {
@Override
public void run() {
openGUI.open(player);
2021-10-23 12:43:11 +00:00
}
}.runTask(VillagerUI.getInstance());
}
}.runTaskAsynchronously(VillagerUI.getInstance());
2021-09-24 23:56:42 +00:00
}
2021-12-23 02:03:00 +00:00
@EventHandler
public void onVillagerDeath(EntityDeathEvent event) {
if (!event.getEntityType().equals(EntityType.VILLAGER))
return;
UUID uuid = event.getEntity().getUniqueId();
LoadedVillagers.removeLoadedVillager(uuid);
VillagerConfig.removeVillager(uuid);
}
@EventHandler
public void onVillagerPotioned(EntityPotionEffectEvent event) {
if (!(event.getEntity() instanceof Villager villager))
return;
VillagerType loadedVillager = LoadedVillagers.getLoadedVillager(villager.getUniqueId());
if (loadedVillager == null)
return;
event.setCancelled(true);
}
@EventHandler
public void onVillagerEntityDamage(EntityDamageByEntityEvent event) {
if (!(event.getEntity() instanceof Villager villager))
return;
VillagerType loadedVillager = LoadedVillagers.getLoadedVillager(villager.getUniqueId());
if (loadedVillager == null)
return;
event.setCancelled(true);
}
@EventHandler
public void onVillagerBlockDamage(EntityDamageByBlockEvent event) {
if (!(event.getEntity() instanceof Villager villager))
return;
VillagerType loadedVillager = LoadedVillagers.getLoadedVillager(villager.getUniqueId());
if (loadedVillager == null)
return;
event.setCancelled(true);
}
2021-09-24 23:56:42 +00:00
}