Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.messageofdeath.RPG.Quests;
- import java.io.IOException;
- import me.messageofdeath.MMO.MMO;
- import me.messageofdeath.MMO.API.Api;
- import me.messageofdeath.MMO.API.Conf;
- import me.messageofdeath.MMO.API.Eco;
- import me.messageofdeath.MMO.API.User;
- import net.citizensnpcs.resources.npclib.HumanNPC;
- import net.citizensnpcs.resources.npclib.NPCManager;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityDamageByEntityEvent;
- import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
- import com.sk89q.worldguard.protection.managers.RegionManager;
- public class Quest implements Listener {
- public MMO plugin;
- public Quest(MMO instance) {
- plugin = instance;
- }
- @SuppressWarnings("static-access")
- @EventHandler
- public void BlackSmith(EntityDamageByEntityEvent event) {
- if(event.getDamager() instanceof Player) {
- Player player = (Player) event.getDamager();
- if(NPCManager.isNPC(event.getEntity())) {
- HumanNPC npc = NPCManager.get(event.getEntity());
- User user = Api.getUser(player.getName());
- if(Api.getConfig().get("Quests." + npc.getName()) == null)return;
- Object[] regions = Api.getConfig().getConfigurationSection("Quests." + npc.getName()).getKeys(false).toArray();
- WorldGuardPlugin worldguard = plugin.getWorldGuard();
- RegionManager region = worldguard.getRegionManager(Bukkit.getWorld("world"));
- Location loc = new Location(npc.getWorld(), npc.getLocation().getBlockX(), npc.getLocation().getBlockY(), npc.getLocation().getBlockZ());
- if(getRegion(region, regions, loc) == true) {
- Object[] quests = Api.getConfig().getConfigurationSection("Quests." + npc.getName() + "." + this.region).getKeys(false).toArray();
- getQuest(quests);
- Conf config = new Conf(npc.getName(), this.region, this.quest);
- if(!user.getCompletedQuests().contains(String.valueOf(config.getQuestID()))) {
- if(player.getInventory().contains(config.getItem()) && user.getActiveQuest() == config.getQuestID()) {
- user.sendMsg(ChatColor.DARK_RED + "You have finished the quest " + ChatColor.GOLD + config.getName());
- Eco eco = new Eco(user.getName(), config.getAmount());
- eco.give();
- user.sendMsg(ChatColor.DARK_RED + "You recieved " + eco.getFormat());
- user.getInventory().remove(config.getItem());
- user.setCompletedQuests(user.getCompletedQuests() + "," + String.valueOf(user.getActiveQuest()));
- user.setActiveQuest(0);
- try {
- Api.getDatabase().save(Api.getPlugin().DBFile);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }else{
- if(!(user.getActiveQuest() == config.getQuestID())) {
- user.sendQuest(config);
- user.setWaiting(true);
- user.setPendingQuest(config.getQuestID());
- try {
- Api.getDatabase().save(Api.getPlugin().DBFile);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }else{
- user.sendMsg(ChatColor.DARK_RED + "You already have the quest!");
- }
- }
- }else{
- user.sendMsg(ChatColor.DARK_RED + "You already finished this quest!");
- }
- }
- }
- }
- }
- String region, quest;
- public boolean getRegion(RegionManager region, Object[] g, Location loc) {
- int i = g.length;
- i = i - 1;
- while(i != -1) {
- if(region.getRegion(g[i].toString()).contains(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())) {
- this.region = g[i].toString();
- i = -1;
- return true;
- }
- i--;
- }
- return false;
- }
- public void getQuest(Object[] g) {
- int d = 0;
- quest = g[d].toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement