-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Java:
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.player.PlayerVelocityEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.CommandExecutor;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import org.bukkit.plugin.java.JavaPlugin;
public class AdvancedVelocityAntiKnockback extends JavaPlugin implements Listener, CommandExecutor {
private final Map<Player, Boolean> antiKnockbackEnabled = new HashMap<>();
private final Map<Player, Long> disableTime = new HashMap<>();
private final Map<Player, Integer> knockbackLevel = new HashMap<>();
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
this.getCommand("toggleKnockback").setExecutor(this);
}
@EventHandler
public void onPlayerVelocity(PlayerVelocityEvent event) {
Player player = event.getPlayer();
if (antiKnockbackEnabled.getOrDefault(player, false)) {
event.setVelocity(event.getVelocity().multiply(0)); // Полное отключение
}
}
@EventHandler
public void onPlayerDamage(EntityDamageEvent event) {
if (event.getEntity() instanceof Player) {
Player player = (Player) event.getEntity();
if (antiKnockbackEnabled.getOrDefault(player, false)) {
event.setDamage(0); // Отключение урона с отталкиванием
player.sendMessage(ChatColor.GREEN + "Антиотталкиватель активирован!");
}
}
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage("Эта команда может быть использована только игроками.");
return true;
}
Player player = (Player) sender;
if (args.length > 0 && args[0].equalsIgnoreCase("on")) {
antiKnockbackEnabled.put(player, true);
player.sendMessage(ChatColor.GREEN + "Антиотталкиватель включен!");
} else if (args.length > 0 && args[0].equalsIgnoreCase("off")) {
antiKnockbackEnabled.put(player, false);
player.sendMessage(ChatColor.RED + "Антиотталкиватель отключен!");
} else {
player.sendMessage(ChatColor.YELLOW + "Используйте /toggleKnockback on/off для управления антиотталкивателем.");
}
return true;
}
// Дополнительные команды для настройки уровня и временных рамок можно добавить ниже.
}