11111111111111111

  • Автор темы Автор темы Inno
  • Дата начала Дата начала

Inno

Пользователь
3 Дек 2022
59
0
8
111111111111111111
 
Последнее редактирование:
Чтобы реализовать отмену задержки при выдаче другого предмета в BukkitAPI, вам необходимо запоминать время последней выдачи предмета. При каждой попытке выдачи нового предмета нужно проверять, прошла ли задержка и была ли выдача предмета выполнена после последней задержки.

Вот пример кода, который реализует такую логику с использованием класса System.currentTimeMillis():

```java
private static final int DELAY_TIME = 5000; // время задержки в миллисекундах
private long lastPickupTime = 0; // последнее время выдачи предмета

public void giveItem(Player player, ItemStack item) {
long currentTime = System.currentTimeMillis();

if (currentTime - lastPickupTime >= DELAY_TIME) {
player.getInventory().addItem(item);
lastPickupTime = currentTime;
}
}
```

В этом примере мы проверяем, прошло ли 5 секунд с последней выдачи предмета. Если да, то мы выдаем новый предмет и обновляем время последней выдачи. Если нет, то мы ничего не делаем и заканчиваем выполнение метода giveItem().
 
Чтобы реализовать отмену задержки при выдаче другого предмета в BukkitAPI, вам необходимо запоминать время последней выдачи предмета. При каждой попытке выдачи нового предмета нужно проверять, прошла ли задержка и была ли выдача предмета выполнена после последней задержки.

Вот пример кода, который реализует такую логику с использованием класса System.currentTimeMillis():

```java
private static final int DELAY_TIME = 5000; // время задержки в миллисекундах
private long lastPickupTime = 0; // последнее время выдачи предмета

public void giveItem(Player player, ItemStack item) {
long currentTime = System.currentTimeMillis();

if (currentTime - lastPickupTime >= DELAY_TIME) {
player.getInventory().addItem(item);
lastPickupTime = currentTime;
}
}
```

В этом примере мы проверяем, прошло ли 5 секунд с последней выдачи предмета. Если да, то мы выдаем новый предмет и обновляем время последней выдачи. Если нет, то мы ничего не делаем и заканчиваем выполнение метода giveItem().
я хочу что бы писало сообщение о том что нельзя использовать
 
я хочу что бы писало сообщение о том что нельзя использовать
Конечно, вам нужно добавить сообщение в случае, если игрок пытается использовать предмет во время задержки. Вот пример кода с сообщением:

```java
private static final int DELAY_TIME = 5000; // время задержки в миллисекундах
private long lastPickupTime = 0; // последнее время выдачи предмета

public void useItem(Player player, ItemStack item) {
long currentTime = System.currentTimeMillis();

if (currentTime - lastPickupTime >= DELAY_TIME) {
// Выполняем действие с предметом
player.sendMessage("Вы использовали " + item.getType().toString() + ".");
lastPickupTime = currentTime;
} else {
// Выводим сообщение об ожидании
int remainingTime = (int) ((DELAY_TIME - (currentTime - lastPickupTime)) / 1000);
player.sendMessage("Сначала подождите " + remainingTime + " секунд перед использованием " + item.getType().toString() + ".");
}
}
```

В этом примере мы также добавили возможность выводить сколько осталось времени до окончания задержки, используя метод sendMessage() для игрока.
 
Конечно, вам нужно добавить сообщение в случае, если игрок пытается использовать предмет во время задержки. Вот пример кода с сообщением:

```java
private static final int DELAY_TIME = 5000; // время задержки в миллисекундах
private long lastPickupTime = 0; // последнее время выдачи предмета

public void useItem(Player player, ItemStack item) {
long currentTime = System.currentTimeMillis();

if (currentTime - lastPickupTime >= DELAY_TIME) {
// Выполняем действие с предметом
player.sendMessage("Вы использовали " + item.getType().toString() + ".");
lastPickupTime = currentTime;
} else {
// Выводим сообщение об ожидании
int remainingTime = (int) ((DELAY_TIME - (currentTime - lastPickupTime)) / 1000);
player.sendMessage("Сначала подождите " + remainingTime + " секунд перед использованием " + item.getType().toString() + ".");
}
}
```

В этом примере мы также добавили возможность выводить сколько осталось времени до окончания задержки, используя метод sendMessage() для игрока.
сделай код задержки в отдельном if
 
сделай код задержки в отдельном if
Конечно, вот пример кода задержки в отдельном `if`:

```java
private static final int DELAY_TIME = 5000; // время задержки в миллисекундах
private long lastPickupTime = 0; // последнее время выдачи предмета

public void useItem(Player player, ItemStack item) {
long currentTime = System.currentTimeMillis();
int remainingTime = (int) ((DELAY_TIME - (currentTime - lastPickupTime)) / 1000);

if (currentTime - lastPickupTime < DELAY_TIME) {
// Выводим сообщение об ожидании
player.sendMessage("Сначала подождите " + remainingTime + " секунд перед использованием " + item.getType().toString() + ".");
return;
}

// Выполняем действие с предметом
player.sendMessage("Вы использовали " + item.getType().toString() + ".");
lastPickupTime = currentTime;
}
```

В этом примере мы сначала проверяем, прошла ли задержка, используя отдельный `if`. Если да, то мы выводим сообщение об ожидании и заканчиваем выполнение метода. Если нет, то мы выполняем действие с предметом и обновляем время последней выдачи. Также мы добавили переменную `remainingTime`, которая хранит оставшееся время до окончания задержки, и вынесли ее за пределы условий `if`, чтобы использовать в обоих блоках (`if` и `else`).
 

Помочь проекту 💕

Собрано
"52,204.60" ₽
Цель
"60,000.00" ₽

Последние ресурсы