Вопрос Плагин на не разбрасывание поедметов

Kluffy

Пользователь
Сообщения
818
Решения
28
Я создаю гриферский сервер, и я не хочу что бы когда игрок убивал другого игрока, ему не приходилось искать вещи убитого по всей карте, нужен плагин который будет все вещи выпавшие из игрока при смерти собирать в одно место, не прям в одно, но близко друг к другу, есть такой плагин?
 
Решение
Я создаю гриферский сервер, и я не хочу что бы когда игрок убивал другого игрока, ему не приходилось искать вещи убитого по всей карте, нужен плагин который будет все вещи выпавшие из игрока при смерти собирать в одно место, не прям в одно, но близко друг к другу, есть такой плагин?
Основной класс
Java:
package org.cmurfik.emdeathdrop;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class EmDeathDrop...
Я создаю гриферский сервер, и я не хочу что бы когда игрок убивал другого игрока, ему не приходилось искать вещи убитого по всей карте, нужен плагин который будет все вещи выпавшие из игрока при смерти собирать в одно место, не прям в одно, но близко друг к другу, есть такой плагин?
Основной класс
Java:
package org.cmurfik.emdeathdrop;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class EmDeathDrop extends JavaPlugin implements Listener {

    private double dropRadius;

    @Override
    public void onEnable() {
        saveDefaultConfig();
        loadConfig();

        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("EmDeathDrop вкключаитебся!");
    }

    @Override
    public void onDisable() {
        getLogger().info("EmDeathDrop Ввыврубаветмяся!");
    }

    private void loadConfig() {
        FileConfiguration config = getConfig();
        dropRadius = config.getDouble("drop-radius", 2.0);
    }

    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent event) {
        Player player = event.getEntity();
        Location deathLocation = player.getLocation();

        for (ItemStack item : event.getDrops()) {
            if (item != null && item.getType() != Material.AIR) {
                double offsetX = (Math.random() * dropRadius * 2) - dropRadius;
                double offsetZ = (Math.random() * dropRadius * 2) - dropRadius;
                Location dropLocation = deathLocation.clone().add(offsetX, 0, offsetZ);
                deathLocation.getWorld().dropItemNaturally(dropLocation, item);
            }
        }
        event.getDrops().clear();
    }
}
config.yml

YAML:
# Настройка радиуса для разброса предметов при смерти игрока
drop-radius: 2.0
 

Вложения

  • EmDeathDrop.jar
    2.6 KB · Просмотры: 5
Основной класс
Java:
package org.cmurfik.emdeathdrop;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class EmDeathDrop extends JavaPlugin implements Listener {

    private double dropRadius;

    @Override
    public void onEnable() {
        saveDefaultConfig();
        loadConfig();

        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("EmDeathDrop вкключаитебся!");
    }

    @Override
    public void onDisable() {
        getLogger().info("EmDeathDrop Ввыврубаветмяся!");
    }

    private void loadConfig() {
        FileConfiguration config = getConfig();
        dropRadius = config.getDouble("drop-radius", 2.0);
    }

    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent event) {
        Player player = event.getEntity();
        Location deathLocation = player.getLocation();

        for (ItemStack item : event.getDrops()) {
            if (item != null && item.getType() != Material.AIR) {
                double offsetX = (Math.random() * dropRadius * 2) - dropRadius;
                double offsetZ = (Math.random() * dropRadius * 2) - dropRadius;
                Location dropLocation = deathLocation.clone().add(offsetX, 0, offsetZ);
                deathLocation.getWorld().dropItemNaturally(dropLocation, item);
            }
        }
        event.getDrops().clear();
    }
}
config.yml

YAML:
# Настройка радиуса для разброса предметов при смерти игрока
drop-radius: 2.0
offtop Мне кажется для тебя проще написать плагин чем найти
 
Основной класс
Java:
package org.cmurfik.emdeathdrop;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class EmDeathDrop extends JavaPlugin implements Listener {

    private double dropRadius;

    @Override
    public void onEnable() {
        saveDefaultConfig();
        loadConfig();

        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("EmDeathDrop вкключаитебся!");
    }

    @Override
    public void onDisable() {
        getLogger().info("EmDeathDrop Ввыврубаветмяся!");
    }

    private void loadConfig() {
        FileConfiguration config = getConfig();
        dropRadius = config.getDouble("drop-radius", 2.0);
    }

    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent event) {
        Player player = event.getEntity();
        Location deathLocation = player.getLocation();

        for (ItemStack item : event.getDrops()) {
            if (item != null && item.getType() != Material.AIR) {
                double offsetX = (Math.random() * dropRadius * 2) - dropRadius;
                double offsetZ = (Math.random() * dropRadius * 2) - dropRadius;
                Location dropLocation = deathLocation.clone().add(offsetX, 0, offsetZ);
                deathLocation.getWorld().dropItemNaturally(dropLocation, item);
            }
        }
        event.getDrops().clear();
    }
}
config.yml

YAML:
# Настройка радиуса для разброса предметов при смерти игрока
drop-radius: 2.0
Работает хоть?
 
Назад
Сверху Снизу