Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Сказать легко, а сделать новечку сложно.В чём сложность? Даёшь книгу, проверяешь активацию и каждые 5 сек шедулером давай в радиусе 5 блоков по 4 сердца
Кого скачать? Ты о чём? Ты не можешь найти в инете обработку события клика? Ты не можешь найти создание шедулера?Скачать легко, а сделать новечку сложно.
Тебе для анни?Всем привет, как сделать класс медик, суть класса, Тебе даётся книга, и ты должен ее активировать, после активации, каждый 5 сек будет даваться 4 сердца, в радиусе 5 блоков, люди что стоят этом радиусе вылечится.
Заранее спасибо.
Да))Тебе для анни?
Для какого?
public class Cleric extends ConfigurableKit{
private String in1 = "Кинга " + ChatColor.RED + "Выключено";
private String in2 = "Кинга " + ChatColor.GREEN + "Включено";
private HashMap<String, Long> TimeCoolDown = new HashMap<String, Long>();
private HashMap<UUID, Integer> SID = new HashMap<UUID, Integer>();
private HashMap<UUID, Long> lastuse = new HashMap<UUID, Long>();
public Cleric() {
this.Initialize();
}
@Override
protected List<String> getDefaultDescription() {
final List<String> l = new ArrayList<String>();
this.addToList(l, this.aqua + "С включенной книгой, вы");
this.addToList(l, this.aqua + "Раз в 10 секунд");
this.addToList(l, this.aqua + "Восстанавливаете 2 сердца");
this.addToList(l, this.aqua + "Себе и союзникам неподалеку");
return l;
}
@Override
protected ItemStack getDefaultIcon() {
return new ItemStack(Material.ENCHANTED_BOOK);
}
@Override
protected Loadout getFinalLoadout() {
ItemStack cs = new ItemStack(Material.ENCHANTED_BOOK);
ItemMeta csMeta = cs.getItemMeta();
csMeta.setDisplayName(in1);
cs.setItemMeta(csMeta);
return new Loadout().addGoldSword().addWoodPick().addWoodAxe().addClassUndropabbleSoulboundItem(cs);
}
@Override
protected String getInternalName() {
return ChatColor.GREEN + "Cleric";
}
@Override
protected void loadFromConfig(ConfigurationSection arg0) {
// TODO Автоматически созданная заглушка метода
}
@Override
protected void onPlayerRespawn(Player p, AnniPlayer ap) {
if (SID.containsKey(p.getUniqueId())) {
Bukkit.getScheduler().cancelTask(SID.get(p.getUniqueId()));
}
}
@Override
protected int setDefaults(ConfigurationSection arg0) {
// TODO Автоматически созданная заглушка метода
return 0;
}
@Override
protected void setUp() {
// TODO Автоматически созданная заглушка метода
}
@Override
public void cleanup(Player p) {
if (SID.containsKey(p.getUniqueId())) {
Bukkit.getScheduler().cancelTask(SID.get(p.getUniqueId()));
}
}
@Override
public boolean onItemClick(Inventory inv, AnniPlayer arg1) {
this.addLoadoutToInventory(inv);
return true;
}
protected boolean isSpecialItem1(final ItemStack stack) {
if (stack != null && stack.hasItemMeta() && stack.getItemMeta().hasDisplayName()) {
final String name = stack.getItemMeta().getDisplayName();
if (name.contains(in1) && KitUtils.isClassUndropabbleSoulbound(stack)) {
return true;
}
}
return false;
}
protected boolean isSpecialItem2(final ItemStack stack) {
if (stack != null && stack.hasItemMeta() && stack.getItemMeta().hasDisplayName()) {
final String name = stack.getItemMeta().getDisplayName();
if (name.contains(in2) && KitUtils.isClassUndropabbleSoulbound(stack)) {
return true;
}
}
return false;
}
protected void Cler(Player p, int L) {
Runnable cler = new Runnable() {
@Override
public void run() {
for (Entity ent : p.getWorld().getNearbyEntities(p.getLocation(), 5, 5, 5)) {
if (ent.getType() != EntityType.PLAYER)continue;
Player ep = (Player) ent;
if (!AnniPlayer.getPlayer(p).getTeam().equals(AnniPlayer.getPlayer(ep).getTeam()))continue;
if (ep.getHealth() > 16) {
ep.setHealth(20);
}else {
ep.setHealth(ep.getHealth() + 4);
}
ep.getWorld().spigot().playEffect(p.getLocation(), Effect.HEART, 0, 0, 0f, 1.0f, 0f, 0f, 5, 30);
}
p.getWorld().playSound(p.getLocation(), Sound.LEVEL_UP, 1F, 1F);
Long time = Long.valueOf(System.currentTimeMillis());
lastuse.put(p.getUniqueId(), time);
}
};int id = Bukkit.getScheduler().scheduleSyncRepeatingTask(AnnihilationMain.INSTANCE, cler, L, 200);
SID.put(p.getUniqueId(), id);
}
@EventHandler
public void pie(PlayerInteractEvent e) {
if (e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK)return;
if (AnniPlayer.getPlayer(e.getPlayer()).getKit().equals((Object)this) && (isSpecialItem1(e.getPlayer().getItemInHand()) || isSpecialItem2(e.getPlayer().getItemInHand()))) {
Player p = e.getPlayer();
Long time = Long.valueOf(System.currentTimeMillis());
if(this.TimeCoolDown.containsKey(p.getName())) {
Long LastUse = this.TimeCoolDown.get(p.getName());
if(LastUse.longValue() + 2000L > time.longValue()) {
return;
}
}
this.TimeCoolDown.put(p.getName(), time);
if (isSpecialItem1(p.getItemInHand())) {
ItemMeta m = p.getItemInHand().getItemMeta();
m.setDisplayName(in2);
p.getItemInHand().setItemMeta(m);
if (lastuse.containsKey(p.getUniqueId())) {
Long LastU = this.lastuse.get(p.getUniqueId());
if (time - LastU < 10000L) {
Cler(p, (int) (200-((time - LastU)/50)));
}else {
Cler(p, 20);
}
}else {
Cler(p, 20);
}
}else {
if (isSpecialItem2(p.getItemInHand())) {
ItemMeta m = p.getItemInHand().getItemMeta();
m.setDisplayName(in1);
p.getItemInHand().setItemMeta(m);
if (SID.containsKey(p.getUniqueId())) {
Bukkit.getScheduler().cancelTask(SID.get(p.getUniqueId()));
SID.remove(p.getUniqueId());
}
}
}
}
}
}
Можешь дать ещеКод:public class Cleric extends ConfigurableKit{ private String in1 = "Кинга " + ChatColor.RED + "Выключено"; private String in2 = "Кинга " + ChatColor.GREEN + "Включено"; private HashMap<String, Long> TimeCoolDown = new HashMap<String, Long>(); private HashMap<UUID, Integer> SID = new HashMap<UUID, Integer>(); private HashMap<UUID, Long> lastuse = new HashMap<UUID, Long>(); public Cleric() { this.Initialize(); } @Override protected List<String> getDefaultDescription() { final List<String> l = new ArrayList<String>(); this.addToList(l, this.aqua + "С включенной книгой, вы"); this.addToList(l, this.aqua + "Раз в 10 секунд"); this.addToList(l, this.aqua + "Восстанавливаете 2 сердца"); this.addToList(l, this.aqua + "Себе и союзникам неподалеку"); return l; } @Override protected ItemStack getDefaultIcon() { return new ItemStack(Material.ENCHANTED_BOOK); } @Override protected Loadout getFinalLoadout() { ItemStack cs = new ItemStack(Material.ENCHANTED_BOOK); ItemMeta csMeta = cs.getItemMeta(); csMeta.setDisplayName(in1); cs.setItemMeta(csMeta); return new Loadout().addGoldSword().addWoodPick().addWoodAxe().addClassUndropabbleSoulboundItem(cs); } @Override protected String getInternalName() { return ChatColor.GREEN + "Cleric"; } @Override protected void loadFromConfig(ConfigurationSection arg0) { // TODO Автоматически созданная заглушка метода } @Override protected void onPlayerRespawn(Player p, AnniPlayer ap) { if (SID.containsKey(p.getUniqueId())) { Bukkit.getScheduler().cancelTask(SID.get(p.getUniqueId())); } } @Override protected int setDefaults(ConfigurationSection arg0) { // TODO Автоматически созданная заглушка метода return 0; } @Override protected void setUp() { // TODO Автоматически созданная заглушка метода } @Override public void cleanup(Player p) { if (SID.containsKey(p.getUniqueId())) { Bukkit.getScheduler().cancelTask(SID.get(p.getUniqueId())); } } @Override public boolean onItemClick(Inventory inv, AnniPlayer arg1) { this.addLoadoutToInventory(inv); return true; } protected boolean isSpecialItem1(final ItemStack stack) { if (stack != null && stack.hasItemMeta() && stack.getItemMeta().hasDisplayName()) { final String name = stack.getItemMeta().getDisplayName(); if (name.contains(in1) && KitUtils.isClassUndropabbleSoulbound(stack)) { return true; } } return false; } protected boolean isSpecialItem2(final ItemStack stack) { if (stack != null && stack.hasItemMeta() && stack.getItemMeta().hasDisplayName()) { final String name = stack.getItemMeta().getDisplayName(); if (name.contains(in2) && KitUtils.isClassUndropabbleSoulbound(stack)) { return true; } } return false; } protected void Cler(Player p, int L) { Runnable cler = new Runnable() { @Override public void run() { for (Entity ent : p.getWorld().getNearbyEntities(p.getLocation(), 5, 5, 5)) { if (ent.getType() != EntityType.PLAYER)continue; Player ep = (Player) ent; if (!AnniPlayer.getPlayer(p).getTeam().equals(AnniPlayer.getPlayer(ep).getTeam()))continue; if (ep.getHealth() > 16) { ep.setHealth(20); }else { ep.setHealth(ep.getHealth() + 4); } ep.getWorld().spigot().playEffect(p.getLocation(), Effect.HEART, 0, 0, 0f, 1.0f, 0f, 0f, 5, 30); } p.getWorld().playSound(p.getLocation(), Sound.LEVEL_UP, 1F, 1F); Long time = Long.valueOf(System.currentTimeMillis()); lastuse.put(p.getUniqueId(), time); } };int id = Bukkit.getScheduler().scheduleSyncRepeatingTask(AnnihilationMain.INSTANCE, cler, L, 200); SID.put(p.getUniqueId(), id); } @EventHandler public void pie(PlayerInteractEvent e) { if (e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK)return; if (AnniPlayer.getPlayer(e.getPlayer()).getKit().equals((Object)this) && (isSpecialItem1(e.getPlayer().getItemInHand()) || isSpecialItem2(e.getPlayer().getItemInHand()))) { Player p = e.getPlayer(); Long time = Long.valueOf(System.currentTimeMillis()); if(this.TimeCoolDown.containsKey(p.getName())) { Long LastUse = this.TimeCoolDown.get(p.getName()); if(LastUse.longValue() + 2000L > time.longValue()) { return; } } this.TimeCoolDown.put(p.getName(), time); if (isSpecialItem1(p.getItemInHand())) { ItemMeta m = p.getItemInHand().getItemMeta(); m.setDisplayName(in2); p.getItemInHand().setItemMeta(m); if (lastuse.containsKey(p.getUniqueId())) { Long LastU = this.lastuse.get(p.getUniqueId()); if (time - LastU < 10000L) { Cler(p, (int) (200-((time - LastU)/50))); }else { Cler(p, 20); } }else { Cler(p, 20); } }else { if (isSpecialItem2(p.getItemInHand())) { ItemMeta m = p.getItemInHand().getItemMeta(); m.setDisplayName(in1); p.getItemInHand().setItemMeta(m); if (SID.containsKey(p.getUniqueId())) { Bukkit.getScheduler().cancelTask(SID.get(p.getUniqueId())); SID.remove(p.getUniqueId()); } } } } } }
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Effect;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;
import com.hotmail.AdrianSRJose.AnniPro.anniGame.AnniPlayer;
import com.hotmail.AdrianSRJose.AnniPro.kits.KitUtils;
import com.hotmail.AdrianSRJose.AnniPro.kits.Loadout;
import com.hotmail.AdrianSRJose.AnniPro.main.AnnihilationMain;
import com.hotmail.AdrianSRJose.base.ConfigurableKit;
А какое ядро использовали?Код:import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Effect; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.*********ventory.Inventory; import org.*********ventory.ItemStack; import org.*********ventory.meta.ItemMeta; import com.hotmail.AdrianSRJose.AnniPro.anniGame.AnniPlayer; import com.hotmail.AdrianSRJose.AnniPro.kits.KitUtils; import com.hotmail.AdrianSRJose.AnniPro.kits.Loadout; import com.hotmail.AdrianSRJose.AnniPro.main.AnnihilationMain; import com.hotmail.AdrianSRJose.base.ConfigurableKit;
1.8.9, сделай под свою версию или удали строкуА какое ядро использовали?
Просто в этой строке ошибка пишет
ep.getWorld().spigot().playEffect(p.getLocation(), Effect.HEART, 0, 0, 0f, 1.0f, 0f, 0f, 5, 30);
Ошика: playEffect, Effect.HEART