Advertisement
messageofdeath

Untitled

Jul 1st, 2012
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.73 KB | None | 0 0
  1. package me.messageofdeath.RPG.Quests;
  2.  
  3. import java.io.IOException;
  4.  
  5. import me.messageofdeath.MMO.MMO;
  6. import me.messageofdeath.MMO.API.Api;
  7. import me.messageofdeath.MMO.API.Conf;
  8. import me.messageofdeath.MMO.API.Eco;
  9. import me.messageofdeath.MMO.API.User;
  10. import net.citizensnpcs.resources.npclib.HumanNPC;
  11. import net.citizensnpcs.resources.npclib.NPCManager;
  12.  
  13. import org.bukkit.Bukkit;
  14. import org.bukkit.ChatColor;
  15. import org.bukkit.Location;
  16. import org.bukkit.entity.Player;
  17. import org.bukkit.event.EventHandler;
  18. import org.bukkit.event.Listener;
  19. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  20.  
  21. import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
  22. import com.sk89q.worldguard.protection.managers.RegionManager;
  23.  
  24. public class Quest implements Listener {
  25.    
  26.     public MMO plugin;
  27.     public Quest(MMO instance) {
  28.         plugin = instance;
  29.     }
  30.    
  31.     @SuppressWarnings("static-access")
  32.     @EventHandler
  33.     public void BlackSmith(EntityDamageByEntityEvent event) {
  34.         if(event.getDamager() instanceof Player) {
  35.             Player player = (Player) event.getDamager();
  36.             if(NPCManager.isNPC(event.getEntity())) {
  37.                 HumanNPC npc = NPCManager.get(event.getEntity());
  38.                 User user = Api.getUser(player.getName());
  39.                 if(Api.getConfig().get("Quests." + npc.getName()) == null)return;
  40.                 Object[] regions = Api.getConfig().getConfigurationSection("Quests." + npc.getName()).getKeys(false).toArray();
  41.                 WorldGuardPlugin worldguard = plugin.getWorldGuard();
  42.                 RegionManager region = worldguard.getRegionManager(Bukkit.getWorld("world"));
  43.                 Location loc = new Location(npc.getWorld(), npc.getLocation().getBlockX(), npc.getLocation().getBlockY(), npc.getLocation().getBlockZ());
  44.                 if(getRegion(region, regions, loc) == true) {
  45.                     Object[] quests = Api.getConfig().getConfigurationSection("Quests." + npc.getName() + "." + this.region).getKeys(false).toArray();
  46.                     getQuest(quests);
  47.                     Conf config = new Conf(npc.getName(), this.region, this.quest);
  48.                     if(!user.getCompletedQuests().contains(String.valueOf(config.getQuestID()))) {
  49.                         if(player.getInventory().contains(config.getItem()) && user.getActiveQuest() == config.getQuestID()) {
  50.                             user.sendMsg(ChatColor.DARK_RED + "You have finished the quest " + ChatColor.GOLD + config.getName());
  51.                             Eco eco = new Eco(user.getName(), config.getAmount());
  52.                             eco.give();
  53.                             user.sendMsg(ChatColor.DARK_RED + "You recieved " + eco.getFormat());
  54.                             user.getInventory().remove(config.getItem());
  55.                             user.setCompletedQuests(user.getCompletedQuests() + "," + String.valueOf(user.getActiveQuest()));
  56.                             user.setActiveQuest(0);
  57.                             try {
  58.                                 Api.getDatabase().save(Api.getPlugin().DBFile);
  59.                             } catch (IOException e) {
  60.                                 e.printStackTrace();
  61.                             }
  62.                         }else{
  63.                             if(!(user.getActiveQuest() == config.getQuestID())) {
  64.                                 user.sendQuest(config);
  65.                                 user.setWaiting(true);
  66.                                 user.setPendingQuest(config.getQuestID());
  67.                                 try {
  68.                                     Api.getDatabase().save(Api.getPlugin().DBFile);
  69.                                 } catch (IOException e) {
  70.                                     e.printStackTrace();
  71.                                 }
  72.                             }else{
  73.                                 user.sendMsg(ChatColor.DARK_RED + "You already have the quest!");
  74.                             }
  75.                         }
  76.                     }else{
  77.                         user.sendMsg(ChatColor.DARK_RED + "You already finished this quest!");
  78.                     }
  79.                 }
  80.             }
  81.         }
  82.     }
  83.     String region, quest;
  84.     public boolean getRegion(RegionManager region, Object[] g, Location loc) {
  85.         int i = g.length;
  86.         i = i - 1;
  87.         while(i != -1) {
  88.             if(region.getRegion(g[i].toString()).contains(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())) {
  89.                 this.region = g[i].toString();
  90.                 i = -1;
  91.                 return true;
  92.             }
  93.             i--;
  94.         }
  95.         return false;
  96.     }
  97.    
  98.     public void getQuest(Object[] g) {
  99.         int d = 0;
  100.         quest = g[d].toString();
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement