Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Идея Воровство для Roleplay сервера

abobys

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
maks2101
Категория плагина: Ограбление

Предлагаемое название: RobPlugin

Версия сервера: 1.16.5

Что я хочу: Когда игрок пишет, пример /rob maks2101
У игрока который вписан в примере забераеться примерно 100$-800$ зависит от его баланса 100$ минимум 800$ максимум а у грабителя наоборот даёться деньги которые он украл



Идеи для команд: /
rob (игрок)

Идеи пермишенов: robplugin.rob

Когда мне это нужно? Через неделю
 
Последнее редактирование:
Категория плагина: Ограбление

Предлагаемое название: RobPlugin

Версия сервера: 1.16.5

Что я хочу: Когда игрок пишет, пример /rob maks2101
У игрока который вписан в примере забераеться примерно 100$-800$ зависит от его баланса 100$ минимум 800$ максимум а у грабителя наоборот даёться деньги которые он украл



Идеи для команд: /
rob (игрок)

Идеи пермишенов: robplugin.rob

Когда мне это нужно? Через неделю
Это легко сделать через mycommand
 
Категория плагина: Ограбление

Предлагаемое название: RobPlugin

Версия сервера: 1.16.5

Что я хочу: Когда игрок пишет, пример /rob maks2101
У игрока который вписан в примере забераеться примерно 100$-800$ зависит от его баланса 100$ минимум 800$ максимум а у грабителя наоборот даёться деньги которые он украл



Идеи для команд: /
rob (игрок)

Идеи пермишенов: robplugin.rob

Когда мне это нужно? Через неделю

Начнётся анархия - а не РП)
Украли у тебя - ты сразу украл у другого, он у третьего, тот у четвертого и т.д.
 
Начнётся анархия - а не РП)
Украли у тебя - ты сразу украл у другого, он у третьего, тот у четвертого и т.д.
так у обычных игроков такой возможности не будет это у мафий или банд
 
Код:
package com.example.robplugin;

import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin;

import java.util.Random;

public class RobPlugin extends JavaPlugin { private static Economy economy;

@Override
public void onEnable() {
    if (!setupEconomy()) {
        getLogger().severe("Vault не найден! Отключение плагина...");
        getServer().getPluginManager().disablePlugin(this);
        return;
    }
    this.getCommand("rob").setExecutor(new RobCommand());
}

private boolean setupEconomy() {
    RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(Economy.class);
    if (economyProvider != null) {
        economy = economyProvider.getProvider();
    }
    return (economy != null);
}

public static Economy getEconomy() {
    return economy;
}

}

class RobCommand implements CommandExecutor { private final Random random = new Random();

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (!(sender instanceof Player)) {
        sender.sendMessage(ChatColor.RED + "Только игроки могут использовать эту команду.");
        return true;
    }
    Player robber = (Player) sender;
    if (!robber.hasPermission("robplugin.rob")) {
        robber.sendMessage(ChatColor.RED + "У вас нет разрешения на ограбление!");
        return true;
    }
    if (args.length != 1) {
        robber.sendMessage(ChatColor.RED + "Использование: /rob <игрок>");
        return true;
    }
    Player victim = Bukkit.getPlayer(args[0]);
    if (victim == null || !victim.isOnline()) {
        robber.sendMessage(ChatColor.RED + "Игрок не найден или не в сети.");
        return true;
    }
    if (victim == robber) {
        robber.sendMessage(ChatColor.RED + "Вы не можете ограбить себя!");
        return true;
    }
    double victimBalance = RobPlugin.getEconomy().getBalance(victim);
    if (victimBalance < 100) {
        robber.sendMessage(ChatColor.RED + "У этого игрока слишком мало денег для ограбления.");
        return true;
    }
    double amountToRob = Math.min(800, Math.max(100, random.nextDouble() * victimBalance));
    RobPlugin.getEconomy().withdrawPlayer(victim, amountToRob);
    RobPlugin.getEconomy().depositPlayer(robber, amountToRob);
    robber.sendMessage(ChatColor.GREEN + "Вы ограбили " + victim.getName() + " на " + amountToRob + "$!");
    victim.sendMessage(ChatColor.RED + "Вас ограбили на " + amountToRob + "$ игроком " + robber.getName() + "!");
    return true;
}

}
 
Код:
package com.example.robplugin;

import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin;

import java.util.Random;

public class RobPlugin extends JavaPlugin { private static Economy economy;

@Override
public void onEnable() {
    if (!setupEconomy()) {
        getLogger().severe("Vault не найден! Отключение плагина...");
        getServer().getPluginManager().disablePlugin(this);
        return;
    }
    this.getCommand("rob").setExecutor(new RobCommand());
}

private boolean setupEconomy() {
    RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(Economy.class);
    if (economyProvider != null) {
        economy = economyProvider.getProvider();
    }
    return (economy != null);
}

public static Economy getEconomy() {
    return economy;
}

}

class RobCommand implements CommandExecutor { private final Random random = new Random();

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (!(sender instanceof Player)) {
        sender.sendMessage(ChatColor.RED + "Только игроки могут использовать эту команду.");
        return true;
    }
    Player robber = (Player) sender;
    if (!robber.hasPermission("robplugin.rob")) {
        robber.sendMessage(ChatColor.RED + "У вас нет разрешения на ограбление!");
        return true;
    }
    if (args.length != 1) {
        robber.sendMessage(ChatColor.RED + "Использование: /rob <игрок>");
        return true;
    }
    Player victim = Bukkit.getPlayer(args[0]);
    if (victim == null || !victim.isOnline()) {
        robber.sendMessage(ChatColor.RED + "Игрок не найден или не в сети.");
        return true;
    }
    if (victim == robber) {
        robber.sendMessage(ChatColor.RED + "Вы не можете ограбить себя!");
        return true;
    }
    double victimBalance = RobPlugin.getEconomy().getBalance(victim);
    if (victimBalance < 100) {
        robber.sendMessage(ChatColor.RED + "У этого игрока слишком мало денег для ограбления.");
        return true;
    }
    double amountToRob = Math.min(800, Math.max(100, random.nextDouble() * victimBalance));
    RobPlugin.getEconomy().withdrawPlayer(victim, amountToRob);
    RobPlugin.getEconomy().depositPlayer(robber, amountToRob);
    robber.sendMessage(ChatColor.GREEN + "Вы ограбили " + victim.getName() + " на " + amountToRob + "$!");
    victim.sendMessage(ChatColor.RED + "Вас ограбили на " + amountToRob + "$ игроком " + robber.getName() + "!");
    return true;
}

}
Осталось сделать задержку на команду, иначе начнется на сервере тотальный пи... :D
 

Поделиться этой страницей

Назад
Верх