mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-12 03:47:27 +00:00
317 lines
8.8 KiB
Java
317 lines
8.8 KiB
Java
package noppes.npcs.scripted.interfaces;
|
|
|
|
import net.minecraft.util.math.BlockPos;
|
|
import net.minecraft.world.WorldServer;
|
|
import noppes.npcs.scripted.*;
|
|
import noppes.npcs.scripted.interfaces.entity.IEntity;
|
|
import noppes.npcs.scripted.interfaces.entity.IPlayer;
|
|
import noppes.npcs.scripted.interfaces.item.IItemStack;
|
|
|
|
public interface IWorld {
|
|
/**
|
|
* @return The worlds time
|
|
*/
|
|
long getTime();
|
|
|
|
/**
|
|
* @return The total world time
|
|
*/
|
|
long getTotalTime();
|
|
|
|
boolean areAllPlayersAsleep();
|
|
|
|
/**
|
|
* @param x World position x
|
|
* @param y World position y
|
|
* @param z World position z
|
|
* @return The block at the given position. Returns null if there isn't a block
|
|
*/
|
|
IBlock getBlock(int x, int y, int z);
|
|
|
|
/**
|
|
*
|
|
* @return The top-most block in the world as an IBlock object.
|
|
*/
|
|
IBlock getTopBlock(int x, int z);
|
|
|
|
boolean isBlockFreezable(int x, int y, int z);
|
|
|
|
boolean isBlockFreezableNaturally(int x, int y, int z);
|
|
|
|
boolean canBlockFreeze(int x, int y, int z, boolean adjacentToWater);
|
|
|
|
boolean canBlockFreezeBody(int x, int y, int z, boolean adjacentToWater);
|
|
|
|
boolean canSnowAt(int x, int y, int z, boolean checkLight);
|
|
|
|
boolean canSnowAtBody(int x, int y, int z, boolean checkLight);
|
|
|
|
/**
|
|
* @return The Y-value of the world at this x & z value based on the height map of the world.
|
|
*/
|
|
int getHeightValue(int x, int z);
|
|
|
|
/**
|
|
* @return The minimum Y-value of the world at this x & z value based on the height map of the world.
|
|
*/
|
|
int getChunkHeightMapMinimum(int x, int z);
|
|
|
|
/**
|
|
* @return The metadata of the block at this position.
|
|
*/
|
|
int getBlockMetadata(int x, int y, int z);
|
|
|
|
boolean setBlockMetadataWithNotify(int x, int y, int z, int metadata, int flag);
|
|
|
|
boolean canBlockSeeTheSky(int x, int y, int z);
|
|
|
|
int getFullBlockLightValue(int x, int y, int z);
|
|
|
|
int getBlockLightValue(int x, int y, int z);
|
|
|
|
void playSoundAtEntity(IEntity entity, String sound, float volume, float pitch);
|
|
|
|
void playSoundToNearExcept(IPlayer player, String sound, float volume, float pitch);
|
|
|
|
IEntity getEntityByID(int id);
|
|
|
|
boolean spawnEntityInWorld(IEntity entity);
|
|
|
|
IPlayer getClosestPlayerToEntity(IEntity entity, double range);
|
|
|
|
IPlayer getClosestPlayer(double x, double y, double z, double range);
|
|
|
|
IPlayer getClosestVulnerablePlayerToEntity(IEntity entity, double range);
|
|
|
|
IPlayer getClosestVulnerablePlayer(double x, double y, double z, double range);
|
|
|
|
/**
|
|
*
|
|
* @param entity The entity whose type will be used as a parameter
|
|
* @return The amount of entities of the given type in the world.
|
|
*/
|
|
int countEntities(IEntity entity);
|
|
|
|
/**
|
|
* Sets the block's tile entity at the given position.
|
|
*/
|
|
void setTileEntity(int x, int y, int z, ITileEntity tileEntity);
|
|
|
|
/**
|
|
* Removes the block's tile entity at the given position.
|
|
*/
|
|
void removeTileEntity(int x, int y, int z);
|
|
|
|
/**
|
|
*
|
|
* @return True if the block at this position is of cubic shape. (Not a stair, slab, etc.)
|
|
*/
|
|
boolean isBlockFullCube(int x, int y, int z);
|
|
|
|
long getSeed();
|
|
|
|
void setSpawnLocation(int x, int y, int z);
|
|
|
|
boolean canLightningStrikeAt(int x, int y, int z);
|
|
|
|
boolean isBlockHighHumidity(int x, int y, int z);
|
|
|
|
/**
|
|
* @param x World position x
|
|
* @param y World position y
|
|
* @param z World position z
|
|
* @return Text from signs
|
|
* @since 1.7.10d
|
|
*/
|
|
String getSignText(int x, int y, int z);
|
|
|
|
/**
|
|
* @param x World position x
|
|
* @param y World position y
|
|
* @param z World position z
|
|
* @param item The block to be set
|
|
*/
|
|
void setBlock(int x, int y, int z, IItemStack item);
|
|
|
|
/**
|
|
* @param x World position x
|
|
* @param y World position y
|
|
* @param z World position z
|
|
*/
|
|
void removeBlock(int x, int y, int z);
|
|
|
|
/**
|
|
* @param name The name of the player to be returned
|
|
* @return The Player with name. Null is returned when the player isnt found
|
|
*/
|
|
IPlayer getPlayer(String name);
|
|
|
|
IPlayer getPlayerByUUID(String uuid);
|
|
|
|
/**
|
|
* @param time The world time to be set
|
|
*/
|
|
void setTime(long time);
|
|
|
|
/**
|
|
* @return Whether or not its daytime
|
|
*/
|
|
boolean isDay();
|
|
|
|
/**
|
|
* @return Whether or not its currently raining
|
|
*/
|
|
boolean isRaining();
|
|
|
|
/**
|
|
* @param bo Set if it's raining
|
|
*/
|
|
void setRaining(boolean bo);
|
|
|
|
/**
|
|
* @param x The x position
|
|
* @param y The y position
|
|
* @param z The z position
|
|
*/
|
|
void thunderStrike(double x, double y, double z);
|
|
|
|
/**
|
|
* Sends a packet from the server to the client everytime its called. Probably should not use this too much.
|
|
* @param particle Particle name. Particle name list: http://minecraft.gamepedia.com/Particles
|
|
* @param x The x position
|
|
* @param y The y position
|
|
* @param z The z position
|
|
* @param dx Usually used for the x motion
|
|
* @param dy Usually used for the y motion
|
|
* @param dz Usually used for the z motion
|
|
* @param speed Speed of the particles, usually between 0 and 1
|
|
* @param count Particle count
|
|
*/
|
|
void spawnParticle(String particle, double x, double y, double z, double dx, double dy, double dz, double speed, int count);
|
|
|
|
/**
|
|
* @param id The items name
|
|
* @param damage The damage value
|
|
* @param size The number of items in the item
|
|
* @return Returns the item
|
|
*/
|
|
IItemStack createItem(String id, int damage, int size);
|
|
|
|
/**
|
|
* @param directory The particle's texture directory. Use only forward slashes when writing a directory. Example: "customnpcs:textures/particle/tail.png"
|
|
* @return Returns IEntityParticle object
|
|
*/
|
|
@Deprecated
|
|
IParticle createEntityParticle(String directory);
|
|
|
|
/**
|
|
* @param key Get temp data for this key
|
|
* @return Returns the stored temp data
|
|
*/
|
|
Object getTempData(String key);
|
|
|
|
/**
|
|
* Tempdata gets cleared when the server restarts. All worlds share the same temp data.
|
|
* @param key The key for the data stored
|
|
* @param value The data stored
|
|
*/
|
|
void setTempData(String key, Object value);
|
|
|
|
/**
|
|
* @param key The key thats going to be tested against the temp data
|
|
* @return Whether or not temp data containes the key
|
|
*/
|
|
boolean hasTempData(String key);
|
|
|
|
/**
|
|
* @param key The key for the temp data to be removed
|
|
*/
|
|
void removeTempData(String key);
|
|
|
|
/**
|
|
* Removes all tempdata
|
|
*/
|
|
void clearTempData();
|
|
|
|
/**
|
|
* @param key The key of the data to be returned
|
|
* @return Returns the stored data
|
|
*/
|
|
Object getStoredData(String key);
|
|
|
|
/**
|
|
* Stored data persists through world restart. Unlike tempdata only Strings and Numbers can be saved
|
|
* @param key The key for the data stored
|
|
* @param value The data stored. This data can be either a Number or a String. Other data is not stored
|
|
*/
|
|
void setStoredData(String key, Object value);
|
|
|
|
/**
|
|
* @param key The key of the data to be checked
|
|
* @return Returns whether or not the stored data contains the key
|
|
*/
|
|
boolean hasStoredData(String key);
|
|
|
|
/**
|
|
* @param key The key of the data to be removed
|
|
*/
|
|
void removeStoredData(String key);
|
|
|
|
/**
|
|
* Remove all stored data
|
|
*/
|
|
void clearStoredData();
|
|
|
|
/**
|
|
* @param x Position x
|
|
* @param y Position y
|
|
* @param z Position z
|
|
* @param range Range of the explosion
|
|
* @param fire Whether or not the explosion does fire damage
|
|
* @param grief Whether or not the explosion does damage to blocks
|
|
*/
|
|
void explode(double x, double y, double z, float range, boolean fire, boolean grief);
|
|
|
|
IPlayer[] getAllServerPlayers();
|
|
|
|
/**
|
|
* @since 1.7.10c
|
|
* @param x Position x
|
|
* @param z Position z
|
|
* @return Returns the name of the biome
|
|
*/
|
|
String getBiomeName(int x, int z);
|
|
|
|
/**
|
|
* Lets you spawn a server side cloned entity
|
|
* @param x The x position the clone will be spawned at
|
|
* @param y The y position the clone will be spawned at
|
|
* @param z The z position the clone will be spawned at
|
|
* @param tab The tab in which the clone is
|
|
* @param name Name of the cloned entity
|
|
* @return Returns the entity which was spawned
|
|
*/
|
|
IEntity spawnClone(int x, int y, int z, int tab, String name);
|
|
|
|
ScriptScoreboard getScoreboard();
|
|
|
|
/**
|
|
*
|
|
* @return An obfuscated MC BlockPos object.
|
|
*/
|
|
BlockPos getMCBlockPos(int x, int y, int z);
|
|
|
|
/**
|
|
* @since 1.7.10c
|
|
* Expert use only
|
|
* @return Returns minecraft world object
|
|
*/
|
|
WorldServer getMCWorld();
|
|
|
|
/**
|
|
*
|
|
* @return The ID of this world's dimension. 0 for overworld, 1 for End, -1 for Nether, etc.
|
|
*/
|
|
int getDimensionID();
|
|
}
|