Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
даМожно ли сделать плагин,чтобы если упали в низ где ты начинаешь умирать,не убивало.а телепортировало на определнную точку?
Можете написать код ?
public class pluginplugin
extends JavaPlugin
implements Listener
{
public void onEnable()
{
saveDefaultConfig();
Bukkit.getPluginManager().registerEvents(this, this);
load();
save();
_log.info("Plugin enable!");
}
public void onDisable()
{
_log.info("Plugin Disable!");
}
public void save()
{
getConfig().set("Text", this.upal);
saveConfig();
}
public void load()
{
reloadConfig();
this.upal = getConfig().getString("Text");
}
@EventHandler
public void onPlayerMoveEvent(PlayerMoveEvent e)
{
Player p = e.getPlayer();
int y = p.getLocation().getBlockY();
Location spawn = p.getWorld().getSpawnLocation();
if (y < -1)
{
p.teleport(spawn);
p.sendMessage(this.upal);
}
}
private boolean ReloadCFG(CommandSender sender)
{
if (sender != null) {
sender.sendMessage(ChatColor.DARK_GREEN + "config reload!");
}
load();
return true;
}
public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args)
{
if (args.length == 0) {
return false;
}
Player player = (sender instanceof Player) ? (Player)sender : null;
if (args[0].equalsIgnoreCase("reload"))
{
if ((player == null) || (player.hasPermission("plugin.reload"))) {
return ReloadCFG(sender);
}
return false;
}
return true;
}
public static final Logger _log = Logger.getLogger("Minecraft");
String upal;
}
p.getWorld().getName().equalsIgnoreCase("Нужный мир").Как теперь реализовать,чтобы это работало в определенном мире?
@EventHandler (priority=EventPriority.LOWEST,ignoreCancelled=true) //игнорируем отмену ивента (иначе игроки в режиме /god будут лететь до скончания веков), приоритет такой по тем же причинам
public void onEntityDamage(EntityDamageEvent e){
if (e.getEntityType()==EntityType.PLAYER){//проверям, кто получает дамаг
if (e.getCause()==DamageCause.VOID){//проверяем причину получения дамага. VOID - пропасть
//здесь то что нам нужно
if (!e.getEntity().getWorld().getName().equalsIgnoreCase("world name")) return; //если это не тот мир, то не выполняем код дальше
e.getEntity().teleport(e.getEntity().getWorld().getSpawnLocation());
e.getEntity().setFallDistance(0); //что бы не разбился
e.setDamage(0);//убираем дамаг.
}
}
}
ну это уже пусть сам думает как.А еще лучше сделать не один мир, а список миров в конфиге.
С одной ифкой это вообще ниочем.Вообще, слушать ивент движения не целесообразно.
он вызывается постоянно, и при онлайне в 100 человек и слабом хосте, сервер может уже лагать, от такого количества лишних обработок.
Куда как правильнее слушать ивент получения дамага.
Java:@EventHandler (priority=EventPriority.LOWEST,ignoreCancelled=true) //игнорируем отмену ивента (иначе игроки в режиме /god будут лететь до скончания веков), приоритет такой по тем же причинам public void onEntityDamage(EntityDamageEvent e){ if (e.getEntityType()==EntityType.PLAYER){//проверям, кто получает дамаг if (e.getCause()==DamageCause.VOID){//проверяем причину получения дамага. VOID - пропасть //здесь то что нам нужно if (!e.getEntity().getWorld().getName().equalsIgnoreCase("world name")) return; //если это не тот мир, то не выполняем код дальше e.getEntity().teleport(e.getEntity().getWorld().getSpawnLocation()); e.getEntity().setFallDistance(0); //что бы не разбился e.setDamage(0);//убираем дамаг. } } }
ну это уже пусть сам думает как.
агаа, а ты до ифа взгляниС одной ифкой это вообще ниочем.
И? Лузверь и его локация. Это все уже и так присвоено игроку.агаа, а ты до ифа взгляни
он же переменные до ифа объявляет
как показывает практика, это все будет лежать не ссылкой, а объектом, что покушает ОЗУИ? Лузверь и его локация. Это все уже и так присвоено игроку.
Что в этом такого,что переменные до ифа объявляю?агаа, а ты до ифа взгляни
он же переменные до ифа объявляет
Да нормально там все, чувак глючит.Что в этом такого,что переменные до ифа объявляю?
объясните мне, я чего то не понимаю.Да нормально там все, чувак глючит.
Во-первых, где тут огромное количество?Во-вторых, если они нужны, то почему нет?Странная логика.объясните мне, я чего то не понимаю.
Создание и хранение переменных в огромном количестве это нормально?
Зачем каждый раз инициализировать переменные, инициализируй их, только тогда, когда y <= -1
- public void onPlayerMoveEvent(PlayerMoveEvent e)
- {
- Player p = e.getPlayer();
- int y = p.getLocation().getBlockY();
- Location spawn = p.getWorld().getSpawnLocation();
- if (y < -1)
- {
- p.teleport(spawn);
- p.sendMessage(this.upal);
- }
- }
Для проверки по y нужна ссылка player, какой смысл инициализировать после?Зачем каждый раз инициализировать переменные, инициализируй их, только тогда, когда y <= -1