- Баллы
- 66
- Имя в Minecraft
- _TheKrealisYT_
Всем привет. Я хочу доработать AntiRelog от leymoo. Хотел бы сделать предмет, который удаляет режим pvp и вы можете спокойно выходить с сервера и писать команды. Я в самом низу кода создал предмет, но как мне теперь сделать так, чтобы при нажатии ЛКМ или ПКМ он выполнял действие?(Удалял режим пвп)? Напишите хотя бы, как сделать просто выполнение при нажатии на предмет. Если есть возможность, то как после этого удалить режим pvp( this.playerStorage.removePlayerPvP(p); не работает)
Вот код:
private final PlayerStorage playerStorage;
private Material EYE_OF_ENDER;
public PvPTask(final PlayerStorage playerStorage) {
this.playerStorage = playerStorage;
}
@Override
public void run() {
Set<Player> playerInPvP = this.playerStorage.getPlayersInPvp();
try {
for (final Player p : playerInPvP) {
final int time = this.playerStorage.getPlayerPvPTime(p);
BossBarUtils.setNewBossBar(p, time);
if (time <= 0) {
this.playerStorage.removePlayerPvP(p);
Utils.sendMessage(Settings.IMP.MESSAGES.PVP_STOPPED, p);
ActionBarUtils.sendAction(p, Settings.IMP.MESSAGES.PVP_STOPPED_ACTIONBAR);
TitlesUtils.sendTitles(p, true);
}
else {
this.playerStorage.updatePlayerPvP(p);
ActionBarUtils.sendAction(p, Settings.IMP.MESSAGES.PVP_ACTIONBAR.replace("%time%", Integer.toString(time)));
}
}
}
finally {
playerInPvP.clear();
playerInPvP = null;
}
playerInPvP = null;
}
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.getName().equalsIgnoreCase("livalka")) {
Player p = (Player) sender;
ItemStack pearl = new ItemStack(Material.EYE_OF_ENDER);
@SuppressWarnings("unused")
ItemMeta meta = pearl.getItemMeta();
p.getInventory().addItem(new ItemStack (pearl));
p.updateInventory();
return false;
}
return false;
}
}
Вот код:
private final PlayerStorage playerStorage;
private Material EYE_OF_ENDER;
public PvPTask(final PlayerStorage playerStorage) {
this.playerStorage = playerStorage;
}
@Override
public void run() {
Set<Player> playerInPvP = this.playerStorage.getPlayersInPvp();
try {
for (final Player p : playerInPvP) {
final int time = this.playerStorage.getPlayerPvPTime(p);
BossBarUtils.setNewBossBar(p, time);
if (time <= 0) {
this.playerStorage.removePlayerPvP(p);
Utils.sendMessage(Settings.IMP.MESSAGES.PVP_STOPPED, p);
ActionBarUtils.sendAction(p, Settings.IMP.MESSAGES.PVP_STOPPED_ACTIONBAR);
TitlesUtils.sendTitles(p, true);
}
else {
this.playerStorage.updatePlayerPvP(p);
ActionBarUtils.sendAction(p, Settings.IMP.MESSAGES.PVP_ACTIONBAR.replace("%time%", Integer.toString(time)));
}
}
}
finally {
playerInPvP.clear();
playerInPvP = null;
}
playerInPvP = null;
}
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.getName().equalsIgnoreCase("livalka")) {
Player p = (Player) sender;
ItemStack pearl = new ItemStack(Material.EYE_OF_ENDER);
@SuppressWarnings("unused")
ItemMeta meta = pearl.getItemMeta();
p.getInventory().addItem(new ItemStack (pearl));
p.updateInventory();
return false;
}
return false;
}
}