Skip to content

Instantly share code, notes, and snippets.

@97WaterPolo
Created March 9, 2014 03:35
Show Gist options
  • Save 97WaterPolo/9442550 to your computer and use it in GitHub Desktop.
Save 97WaterPolo/9442550 to your computer and use it in GitHub Desktop.
MyAPI
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