Важно Помощь новичкам и тем, кто мало писал плагины. (+ LifeHack'и)

Hidens

Администратор
Команда форума
Список ивентов:
Блоки:

BlockBreakEvent - вызывается, когда игрок ломает блок.
BlockBurnEvent - вызывается, когда блок сгорает.
BlockCanBuildEvent - вызывается, когда мы пытаемся поставить блок, что бы увидеть, можем ли мы это сделать.
BlockDamageEvent - вызывается, когда блок повредился от игрока
BlockDispenseEvent - вызывается, когда любая вещь выкидывается из блока (Пример: раздатчик)
BlockEvent - общий евент.
BlockExpEvent - вызывается, когда блок дропает опыт.
BlockFadeEvent - вызывается, когда блок подвергается мировым условиям. (Пример: таяние)
BlockFormEvent - вызывается, когда блок формируется из-за мировых условий (Пример: замерзание воды)
BlockFromToEvent - вызывается при растекании лавы/воды и телепортирования яйца ендера.
BlockGrowEvent - вызывается, когда какой-то блок вырастает. (Например трава, гриб, пшеница)
BlockIgniteEvent - вызывается, когда блок горит
BlockPhysicsEvent - вызывается, когда блок подвергается физике (Пример: падение песка)
BlockPistonEvent - вызывается, когда блок сдвигается поршнем. (Даже сдвиг воздуха)
BlockPistonExtendEvent, BlockPistonRetractEvent - доп. события поршня
BlockPlaceEvent - вызывается, когда игрок ставит блок.
BlockRedstoneEvent - вызывается, когда передается редстоун сигнал.
BlockSpreadEvent - вызывается, когда блок распространяется по мировым условиям. (Например: распространение огня)
EntityBlockFormEvent - вызывается, когда Entity формирует какой-то блок
LeavesDecayEvent - вызывается, когда лианы исчезают самостоятельно
NotePlayEvent - когда игрок проигрывает звуки на нотном блоке.
SignChangeEvent - вызывается, когда игрок пишет что-то на табличке.

Зачарование
EnchantItemEvent - вызывается, когда игрок зачаровал вещь.
PrepareItemEnchantEvent - вызывается, когда игрок кладет вещь в стол зачарования.

Евенты, которые относятся к Entity
Внимание! Entity - это падающий блок, игрок, монстр, животное, фаербол и т.д.
CreatureSpawnEvent - спавн моба в мире
CreeperPowerEvent - вызывается, когда крипера ударяет молния
EntityBreakDoorEvent - вызывается, когда Entity ломает дверь
EntityChangeBlockEvent - вызывается, когда блок меняется в следствии воздействия Entity (Пример: падающий блок превращается в нормальный)
EntityCombustByBlockEvent - вызывается, когда блок загорается в следствии воздействия Entity
EntityCombustByEntityEvent - вызывается, когда Entity загорается в следствии воздействия другого Entity
EntityCombustEvent - вызывается, когда Entity загорается
EntityCreatePortalEvent - вызывается, когда LivingEntity создает портал в мир. (LivingEntity - моб)
EntityDamageByBlockEvent - вызывается, когда блок нанес урон какому-то Entity
EntityDamageByEntityEvent - вызывается, когда Entity наносит урон другому Entity
EntityDamageEvent - вызывается, когда Entity наносится урон
EntityDeathEvent - вызывается, когда Entity умирает
EntityEvent - общий Entity-Event
EntityExplodeEvent - вызывается, когда Entity взрывается.
EntityInteractEvent - вызывается, когда Entity взаимодействует с чем-то
EntityPortalEnterEvent - вызывается, когда Entity входит в портал
EntityPortalEvent - вызывается, когда любой Entity телепортируется в другой мир через портал (ВСЕ, КРОМЕ ИГРОКА)
EntityPortalExitEvent - вызывается, когда Entity выходит из портала
EntityRegainHealthEvent - я точно не понял, для чего это точно, но вроде-бы этот евент хранилище данных для других евентов, который "перевыдают" жизни Entity
EntityShootBowEvent - вызывается, когда Entity стреляет стрелой
EntityTameEvent - вызывается, когда Entity приручили
EntityTargetEvent - вызывается, когда Entity..эмм... как бы это объяснить.. агрится на другой Entity
EntityTargetLivingEntityEvent - вызывается, когда Entity агрится на LivingEntity
EntityTeleportEvent - вызывается, когда какой-то Entity телепортируется. (Все Entity, кроме игрока)
EntityUnleashEvent - кажется, вызывается, когда Entity отвязывают от чего-то. (скорее всего от поводка из новой версии, или как там его
:D
)
ExpBottleEvent - вызывается, когда бутыль опыта падает, разбивается, и выплескивает опыт.
ExplosionPrimeEvent - вызывается, когда Entity решает взорваться
FoodLevelChangeEvent - вызывается, когда у игрока меняется уровень голода
HorseJumpEvent - вызывается, когда лошадь прыгает
ItemDespawnEvent - вызывается, когда выкинутая вещь исчезает через 5 минут
ItemSpawnEvent - вызывается, когда вещь спавнится в мире
PigZapEvent - вызывается, когда свинья превращяется в свинозомби из-за удара молнии
PlayerDeathEvent - вызывается, когда игрок умирает
PlayerLeashEntityEvent - вызывается, когда игрок привязывает Entity к чему-то(см. выше)
PotionSplashEvent - вызывается, когда выкинутое зелье падает и взрывается
ProjectileHitEvent - вызывается, когда Projectile сталкивается с каким-то объектом. (Projectile.. например: стрелы, снежки, фаерболы)
ProjectileLaunchEvent - вызывается, когда Projectile кидается/запускается
SheepDyeWoolEvent - вызывается, когда красят шерсть овцы
SheepRegrowWoolEvent - вызывается, когда у овцы вырастает шерсть.
SlimeSplitEvent - вызывается, когда слизень распадается на более маленькие части

Лайф-Хаки:
Первый:

Многие знают, что плагины умеют обрабатывать команды при помощи события onCommand()
Так вот, в onCommand() передается sender, но не передается Player, а это часто так необходимо!
Мы можем получить Player'a вот так:
Код:
if ((sender instanceof Player )){
Player p = (Player) sender;
}
else {
log.info("Эту команду может использовать только игрок");
}
Тут происходит отделение консоли от игрока. Если команду запустить с консоли, нам выведет ошибку, что это сделать нельзя.
PS. Если ваша среда разработки ругается на "info.log()", то перед onEnable напишите это:
Код:
public static final Logger log = Logger.getLogger("Minecraft");
Второй:
Мы спавним моба в мире так:
Код:
...getWorld().spawnEntity(Location l, EntityType type);
Но возвращаемый Entity этой функции не дает полного управление мобом, которого мы заспаунили.
Как это исправить? Просто! Мы заставим его вернуть LivingEntity, вместо Entity
Код:
LivingEntity spawnedmob = (LivingEntity) ...spawnEntity()..;
После такого мы можем например установить ему кол-во жизней
Код:
spawnedmob.setHealth(10);
 
Сверху