- Баллы
- 6
- Имя в Minecraft
- reker2050
PHP:
package SCP;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
public final class SCP extends JavaPlugin implements Listener {
Logger log = getLogger();
// Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "command");
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
log.info("Started");
getServer().broadcastMessage("[SCP] Start");
}
// Игрок вошёл на сервен
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerJoin(PlayerJoinEvent event) {
Player p = event.getPlayer();
String n = p.getName();
p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, 1, 9999999));
Bukkit.broadcastMessage("Игрок "+n+" зашёл на сервер!");
}
// Игрок кикнулся
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerKick(PlayerKickEvent event) {
Player p = event.getPlayer();
String n = p.getName();
Bukkit.broadcastMessage(n+" кикнулся. Земля ему пухом!");
}
// Игрок вышел с сервера
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerQuit(PlayerQuitEvent event) {
Player p = event.getPlayer();
String n = p.getName();
Bukkit.broadcastMessage("До скорых встреч, "+n+"!");
}
@EventHandler
public void onButton(PlayerInteractEvent event) {
Action action = event.getAction();
if (action == Action.RIGHT_CLICK_BLOCK) {
Player p = event.getPlayer();
p.sendMessage("event");
Material item1 = event.getItem().getType();
Material item2 = event.getClickedBlock().getType();
p.sendMessage(item1.name());
p.sendMessage(item2.name());
// Если кликнули
if (item2 == Material.DARK_OAK_BUTTON) {
if (item1 != Material.DARK_OAK_BUTTON) {
event.setCancelled(true);
p.sendMessage("Отсутствует необходимый уровень доступа!!!");
}
}
}
}
}
Проблема в следующем: при попытке нажать кнопку с предметом в руке - всё отлично. Но если в руке пусто - эвент проходит, а item1 и item2 не определяются.
С item1 всё понятно - в руке пусто, а вот item2 пуст, хотя мы кликаем на блок.
Что нужно сделать, чтобы код работал и с пустыми руками?