Created
March 9, 2014 03:35
-
-
Save 97WaterPolo/9442550 to your computer and use it in GitHub Desktop.
MyAPI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.AnniStuff.sigler; | |
import java.util.ArrayList; | |
import java.util.HashSet; | |
import java.util.List; | |
import net.minecraft.server.v1_7_R1.NBTTagCompound; | |
import net.minecraft.server.v1_7_R1.NBTTagList; | |
import org.bukkit.Location; | |
import org.bukkit.Material; | |
import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftItemStack; | |
import org.bukkit.entity.Entity; | |
import org.bukkit.entity.Player; | |
import org.bukkit.inventory.ItemStack; | |
import org.bukkit.inventory.meta.ItemMeta; | |
public class SiglerAPI | |
{ | |
public static Entity[] getNearbyEntities(Location l, int radius) | |
{ | |
int chunkRadius = radius < 16 ? 1 : (radius - (radius % 16)) / 16; | |
HashSet <Entity> radiusEntities = new HashSet < Entity > (); | |
for (int chX = 0 - chunkRadius; chX <= chunkRadius; chX++) { | |
for (int chZ = 0 - chunkRadius; chZ <= chunkRadius; chZ++) | |
{ | |
int x = (int) l.getX(), y = (int) l.getY(), z = (int) l.getZ(); | |
for (Entity e: new Location(l.getWorld(), x + (chX * 16), y, z + (chZ * 16)).getChunk().getEntities()) | |
{ | |
if (e.getLocation().distance(l) <= radius && e.getLocation().getBlock() != l.getBlock()) | |
radiusEntities.add(e); | |
} | |
} | |
} | |
return radiusEntities.toArray(new Entity[radiusEntities.size()]); | |
} | |
public static ItemStack addEnchant(ItemStack item) | |
{ | |
net.minecraft.server.v1_7_R1.ItemStack handle = CraftItemStack.asNMSCopy(item); | |
if (handle == null) { | |
return item; | |
} | |
if (handle.tag == null) { | |
handle.tag = new NBTTagCompound(); | |
} | |
NBTTagList tag = handle.getEnchantments(); | |
if (tag == null) { | |
tag = new NBTTagList(); | |
handle.tag.set("ench", tag); | |
} | |
return CraftItemStack.asCraftMirror(handle); | |
} | |
@SuppressWarnings({ "unchecked", "rawtypes" }) | |
public static List<Location> getCone(Location loc, String direction) | |
{ | |
List locs = new ArrayList(); | |
Location loc1 = loc.clone(); | |
Location loc2 = loc.clone(); | |
Location loc3 = loc.clone(); | |
if (direction.equals("N")) { | |
loc1.setZ(loc.getZ() - 1.0D); | |
locs.add(loc1); | |
loc2.setZ(loc.getZ() - 2.0D); | |
locs.add(loc2); | |
loc3.setZ(loc.getZ() - 3.0D); | |
locs.add(loc3); | |
Location loc4 = loc2.clone(); | |
Location loc5 = loc2.clone(); | |
Location loc6 = loc3.clone(); | |
Location loc7 = loc3.clone(); | |
Location loc8 = loc3.clone(); | |
Location loc9 = loc3.clone(); | |
loc4.setX(loc2.getX() - 1.0D); | |
locs.add(loc4); | |
loc5.setX(loc2.getX() + 1.0D); | |
locs.add(loc5); | |
loc6.setX(loc3.getX() + 2.0D); | |
locs.add(loc6); | |
loc7.setX(loc3.getX() + 1.0D); | |
locs.add(loc7); | |
loc8.setX(loc3.getX() - 1.0D); | |
locs.add(loc8); | |
loc9.setX(loc3.getX() - 2.0D); | |
locs.add(loc9); | |
} else if (direction.equals("S")) { | |
loc1.setZ(loc.getZ() + 1.0D); | |
locs.add(loc1); | |
loc2.setZ(loc.getZ() + 2.0D); | |
locs.add(loc2); | |
loc3.setZ(loc.getZ() + 3.0D); | |
locs.add(loc3); | |
Location loc4 = loc2.clone(); | |
Location loc5 = loc2.clone(); | |
Location loc6 = loc3.clone(); | |
Location loc7 = loc3.clone(); | |
Location loc8 = loc3.clone(); | |
Location loc9 = loc3.clone(); | |
loc4.setX(loc2.getX() - 1.0D); | |
locs.add(loc4); | |
loc5.setX(loc2.getX() + 1.0D); | |
locs.add(loc5); | |
loc6.setX(loc3.getX() + 2.0D); | |
locs.add(loc6); | |
loc7.setX(loc3.getX() + 1.0D); | |
locs.add(loc7); | |
loc8.setX(loc3.getX() - 1.0D); | |
locs.add(loc8); | |
loc9.setX(loc3.getX() - 2.0D); | |
locs.add(loc9); | |
} else if (direction.equals("E")) { | |
loc1.setX(loc.getX() + 1.0D); | |
locs.add(loc1); | |
loc2.setX(loc1.getX() + 1.0D); | |
locs.add(loc2); | |
loc3.setX(loc2.getX() + 1.0D); | |
locs.add(loc3); | |
Location loc4 = loc2.clone(); | |
Location loc5 = loc2.clone(); | |
Location loc6 = loc3.clone(); | |
Location loc7 = loc3.clone(); | |
Location loc8 = loc3.clone(); | |
Location loc9 = loc3.clone(); | |
loc4.setZ(loc2.getZ() - 1.0D); | |
locs.add(loc4); | |
loc5.setZ(loc2.getZ() + 1.0D); | |
locs.add(loc5); | |
loc6.setZ(loc3.getZ() + 2.0D); | |
locs.add(loc6); | |
loc7.setZ(loc3.getZ() + 1.0D); | |
locs.add(loc7); | |
loc8.setZ(loc3.getZ() - 1.0D); | |
locs.add(loc8); | |
loc9.setZ(loc3.getZ() - 2.0D); | |
locs.add(loc9); | |
} else if (direction.equals("W")) { | |
loc1.setX(loc.getX() - 1.0D); | |
locs.add(loc1); | |
loc2.setX(loc1.getX() - 1.0D); | |
locs.add(loc2); | |
loc3.setX(loc2.getX() - 1.0D); | |
locs.add(loc3); | |
Location loc4 = loc2.clone(); | |
Location loc5 = loc2.clone(); | |
Location loc6 = loc3.clone(); | |
Location loc7 = loc3.clone(); | |
Location loc8 = loc3.clone(); | |
Location loc9 = loc3.clone(); | |
loc4.setZ(loc2.getZ() - 1.0D); | |
locs.add(loc4); | |
loc5.setZ(loc2.getZ() + 1.0D); | |
locs.add(loc5); | |
loc6.setZ(loc3.getZ() + 2.0D); | |
locs.add(loc6); | |
loc7.setZ(loc3.getZ() + 1.0D); | |
locs.add(loc7); | |
loc8.setZ(loc3.getZ() - 1.0D); | |
locs.add(loc8); | |
loc9.setZ(loc3.getZ() - 2.0D); | |
locs.add(loc9); | |
} else if (direction.equals("NW")) { | |
loc1.setZ(loc.getZ() - 1.0D); | |
loc1.setX(loc.getX() - 1.0D); | |
locs.add(loc1); | |
loc2.setZ(loc.getZ() - 2.0D); | |
loc2.setX(loc.getX() - 2.0D); | |
locs.add(loc2); | |
loc3 = loc1.clone(); | |
loc3.setZ(loc1.getZ() - 1.0D); | |
locs.add(loc3); | |
Location loc4 = loc1.clone(); | |
Location loc5 = loc1.clone(); | |
Location loc6 = loc1.clone(); | |
loc4.setZ(loc1.getZ() - 2.0D); | |
locs.add(loc4); | |
loc5.setX(loc1.getX() - 1.0D); | |
locs.add(loc5); | |
loc6.setX(loc1.getX() - 2.0D); | |
locs.add(loc6); | |
} else if (direction.equals("NE")) { | |
loc1.setZ(loc.getZ() - 1.0D); | |
loc1.setX(loc.getX() + 1.0D); | |
locs.add(loc1); | |
loc2.setZ(loc.getZ() - 2.0D); | |
loc2.setX(loc.getX() + 2.0D); | |
locs.add(loc2); | |
loc3 = loc1.clone(); | |
loc3.setZ(loc1.getZ() - 1.0D); | |
locs.add(loc3); | |
Location loc4 = loc1.clone(); | |
Location loc5 = loc1.clone(); | |
Location loc6 = loc1.clone(); | |
loc4.setZ(loc1.getZ() - 2.0D); | |
locs.add(loc4); | |
loc5.setX(loc1.getX() + 1.0D); | |
locs.add(loc5); | |
loc6.setX(loc1.getX() + 2.0D); | |
locs.add(loc6); | |
} else if (direction.equals("SW")) { | |
loc1.setZ(loc.getZ() + 1.0D); | |
loc1.setX(loc.getX() - 1.0D); | |
locs.add(loc1); | |
loc2.setZ(loc.getZ() + 2.0D); | |
loc2.setX(loc.getX() - 2.0D); | |
locs.add(loc2); | |
loc3 = loc1.clone(); | |
Location loc4 = loc1.clone(); | |
Location loc5 = loc1.clone(); | |
Location loc6 = loc1.clone(); | |
loc3.setZ(loc1.getZ() + 1.0D); | |
locs.add(loc3); | |
loc4.setZ(loc1.getZ() + 2.0D); | |
locs.add(loc4); | |
loc5.setX(loc1.getX() - 1.0D); | |
locs.add(loc5); | |
loc6.setX(loc1.getX() - 2.0D); | |
locs.add(loc6); | |
} else if (direction.equals("SE")) { | |
loc1.setZ(loc.getZ() + 1.0D); | |
loc1.setX(loc.getX() + 1.0D); | |
locs.add(loc1); | |
loc2.setZ(loc.getZ() + 2.0D); | |
loc2.setX(loc.getX() + 2.0D); | |
locs.add(loc2); | |
loc3 = loc1.clone(); | |
loc3.setZ(loc1.getZ() + 1.0D); | |
locs.add(loc3); | |
Location loc4 = loc1.clone(); | |
Location loc5 = loc1.clone(); | |
Location loc6 = loc1.clone(); | |
loc4.setZ(loc1.getZ() + 2.0D); | |
locs.add(loc4); | |
loc5.setX(loc1.getX() + 1.0D); | |
locs.add(loc5); | |
loc6.setX(loc1.getX() + 2.0D); | |
locs.add(loc6); | |
} | |
return locs; | |
} | |
public static String getPlayerDirection(Player player) | |
{ | |
double rotation = (player.getLocation().getYaw() - 90.0F) % 360.0F; | |
if (rotation < 0.0D) { | |
rotation += 360.0D; | |
} | |
if ((0.0D <= rotation) && (rotation < 22.5D)) | |
return "W"; | |
if ((22.5D <= rotation) && (rotation < 67.5D)) | |
return "NW"; | |
if ((67.5D <= rotation) && (rotation < 112.5D)) | |
return "N"; | |
if ((112.5D <= rotation) && (rotation < 157.5D)) | |
return "NE"; | |
if ((157.5D <= rotation) && (rotation < 202.5D)) | |
return "E"; | |
if ((202.5D <= rotation) && (rotation < 247.5D)) | |
return "SE"; | |
if ((247.5D <= rotation) && (rotation < 292.5D)) | |
return "S"; | |
if ((292.5D <= rotation) && (rotation < 337.5D)) | |
return "SW"; | |
if ((337.5D <= rotation) && (rotation < 360.0D)) { | |
return "W"; | |
} | |
return null; | |
} | |
public static ItemStack createItem(Material material, String displayname, String lore, String lore2) { | |
ItemStack item = new ItemStack(material); | |
ItemMeta meta = item.getItemMeta(); | |
meta.setDisplayName(displayname); | |
ArrayList<String> Lore = new ArrayList<String>(); | |
Lore.add(lore); | |
Lore.add(lore2); | |
meta.setLore(Lore); | |
item.setItemMeta(meta); | |
return item; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment