Помогите Создание плагина. Армор стенды

  • Автор темы Автор темы KoreeeZ
  • Дата начала Дата начала

KoreeeZ

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
KoreeeZ
Здравствуйте! Хочу создать плагин и подумал, что будет лучше если я проконсультирую это с вами.

Задумка и идея такая... Хочу спавнить невидимый арморстенд с именем внутри игрока(чуть выше). Нужно, чтобы при передвидении игрока, он не дергался. Как мне лучшето сделать?
 
Здравствуйте! Хочу создать плагин и подумал, что будет лучше если я проконсультирую это с вами.

Задумка и идея такая... Хочу спавнить невидимый арморстенд с именем внутри игрока(чуть выше). Нужно, чтобы при передвидении игрока, он не дергался. Как мне лучшето сделать?
Запустить шедулер с промежутком в 1 тик, в котором стенд будет телепортироваться к игроку
 
Или посадить его на игрока.
 
Разве ник не будет слишком высоко?
Ник плеера вообще не будет отображаться, только ник арморстенда.
И будет он очень высоко.
Тестил на версии 1.10.2

Для таких целей проще использовать ProtocolLib.
 
Ник плеера вообще не будет отображаться, только ник арморстенда.
И будет он очень высоко.
Тестил на версии 1.10.2

Для таких целей проще использовать ProtocolLib.
А если взять не просто стойку, а маленькую стойку? А если стойка без boundbox'а, там он будет даже немного ниже.
 
Если стойка сидит на плеере - ник скрывается. Какой бы стойка не была.
 
Если стойка сидит на плеере - ник скрывается. Какой бы стойка не была.
там наверное хотят сделать тупо префикс длиннее 16 символов + nick . Только это будет слишком высоко, и не красиво.
 
там наверное хотят сделать тупо префикс длиннее 16 символов + nick . Только это будет слишком высоко, и не красиво.
Я хочу сделать так, чтобы над ником игрока было название его фракции из Factions
Я больше не вижу просто альтернативы... (Видел моды от к773, но без его плагина ничего не выходит; также видел и замену диспленейма игрока, но это выглядит очень криво)
 
Не знаешь -- не пиши. Конкретно показываю на скринщотах.




Второй более менее но всеравно высоковато. Я не про ник игрока, а про кастом нейм стойки имел в виду.
 
Не знаешь -- не пиши. Конкретно показываю на скринщотах.




А вот еще, может, чтобы кастомнейм был ниже использовать другое существо или это никак не влияет? (Например маленького слайма)
 
А вот еще, может, чтобы кастомнейм был ниже использовать другое существо или это никак не влияет? (Например маленького слайма)
4dcef74b463a.png

Так?
 
Да, получилось неплохо, а можно код?
Java:
Slime nameSlime = (Slime) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.SLIME);
nameSlime.setSize(-2);
nameSlime.setAI(false);
nameSlime.setInvulnerable(true);
nameSlime.setCollidable(false);
((CraftSlime)nameSlime).getHandle().setInvisible(true);

ArmorStand as = (ArmorStand) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.ARMOR_STAND);
as.setCustomNameVisible(true);
as.setCustomName(name);
as.setVisible(false);
as.setMarker(true);

nameSlime.setPassenger(as);
e.getPlayer().setPassenger(nameSlime);
 
Java:
Slime nameSlime = (Slime) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.SLIME);
nameSlime.setSize(-2);
nameSlime.setAI(false);
nameSlime.setInvulnerable(true);
nameSlime.setCollidable(false);
((CraftSlime)nameSlime).getHandle().setInvisible(true);

ArmorStand as = (ArmorStand) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.ARMOR_STAND);
as.setCustomNameVisible(true);
as.setCustomName(name);
as.setVisible(false);
as.setMarker(true);

nameSlime.setPassenger(as);
e.getPlayer().setPassenger(nameSlime);
Спасибо
Java:
Slime nameSlime = (Slime) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.SLIME);
nameSlime.setSize(-2);
nameSlime.setAI(false);
nameSlime.setInvulnerable(true);
nameSlime.setCollidable(false);
((CraftSlime)nameSlime).getHandle().setInvisible(true);

ArmorStand as = (ArmorStand) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.ARMOR_STAND);
as.setCustomNameVisible(true);
as.setCustomName(name);
as.setVisible(false);
as.setMarker(true);

nameSlime.setPassenger(as);
e.getPlayer().setPassenger(nameSlime);
А подойдет ли это под версию 1.8 ( в Эклипсе просто не состыковки, простите за глупые вопросы)

upload_2017-3-15_23-34-42.png

Java:
Slime nameSlime = (Slime) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.SLIME);
nameSlime.setSize(-2);
nameSlime.setAI(false);
nameSlime.setInvulnerable(true);
nameSlime.setCollidable(false);
((CraftSlime)nameSlime).getHandle().setInvisible(true);

ArmorStand as = (ArmorStand) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.ARMOR_STAND);
as.setCustomNameVisible(true);
as.setCustomName(name);
as.setVisible(false);
as.setMarker(true);

nameSlime.setPassenger(as);
e.getPlayer().setPassenger(nameSlime);
А подойдет ли это под версию 1.8 ( в Эклипсе просто не состыковки, простите за глупые вопросы)

upload_2017-3-15_23-34-42.png

А подойдет ли это под версию 1.8 ( в Эклипсе просто не состыковки, простите за глупые вопросы)

upload_2017-3-15_23-34-42.png
 
Спасибо

А подойдет ли это под версию 1.8 ( в Эклипсе просто не состыковки, простите за глупые вопросы)



А подойдет ли это под версию 1.8 ( в Эклипсе просто не состыковки, простите за глупые вопросы)



А подойдет ли это под версию 1.8 ( в Эклипсе просто не состыковки, простите за глупые вопросы)

Импорты проставь.
 
Импорты проставь.
Я, наверное, очень глупо выгляжу... Но какие импорты?
Код:
package clantag;

import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSlime;
import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.Slime;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

import com.avaje.ebeaninternal.server.deploy.BeanDescriptor.EntityType;

public class clantag extends JavaPlugin implements Listener {



public void onEnable()
{
    Bukkit.getPluginManager().registerEvents(this, this);
    getLogger().info("Enabling CLANStags");
}

@EventHandler
public void onJoin(PlayerJoinEvent e)
{
    Slime ns = (Slime) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.SLIME);
    ns.setSize(-2);
    ns.setOp(false);
    ns.setInvulnerable(true);
    ns.setCollidable(false);
    ns.getHandle().setInvisible(true);
    
    ArmorStand as = (ArmorStand) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.ARMOR_STAND);
    as.setCustomNameVisible(true);
    as.setCustomName(name);
    as.setVisible(false);
    as.setMarker(true);
    
    ns.setPassenger(as);
    e.getPlayer().setPassenger(ns);

}
}

Update: ошибки на 27, 30 - 32, 34, 36 строке
 
Последнее редактирование:
Java:
Slime nameSlime = (Slime) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.SLIME);
nameSlime.setSize(-2);
nameSlime.setAI(false);
nameSlime.setInvulnerable(true);
nameSlime.setCollidable(false);
((CraftSlime)nameSlime).getHandle().setInvisible(true);

ArmorStand as = (ArmorStand) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getEyeLocation(), EntityType.ARMOR_STAND);
as.setCustomNameVisible(true);
as.setCustomName(name);
as.setVisible(false);
as.setMarker(true);

nameSlime.setPassenger(as);
e.getPlayer().setPassenger(nameSlime);
На последних версиях вроде не спаунятся слизни с отрицательным размером
 
Назад
Верх