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

Плагин На /dupe [Russian]

Помню, как у меня хотели его купить за 500 рублей, но у меня его не было.. Теперь он у меня есть :D
Дл саморазвия, покопаюсь в коде, мб впишу туда краш сервера
 
Помню, как у меня хотели его купить за 500 рублей, но у меня его не было.. Теперь он у меня есть :D
Дл саморазвия, покопаюсь в коде, мб впишу туда краш сервера
Чел если надо я помагу написать для краша через время дело та святое :D
Только сама идея душу греет вот прикинь ставит школо плагин на сервер а у него сервер без причины через время в крашь идет и идет :D
 
Помню, как у меня хотели его купить за 500 рублей, но у меня его не было.. Теперь он у меня есть :D
Дл саморазвия, покопаюсь в коде, мб впишу туда краш сервера

Еще удаление карты, инвентарей, приватов, расстройка конфигураций... Думаю после этого он сам покрашится :)
 
В моей версии он пока что только вайпает игроков и банит операторов.
 
Тема, в основном своем - сборище школоты и неадекватов, которые предлагают и ничего не сделают. Писать такой плагин - дело 5 минут и вообще, у этой темы нет смысла. Эх, в былые времена не было такой нагнетающей атмосферы, не было таких серверов, так как плагинов было мало, но по делу, а сейчас что? Предлагаю заблокировать документацию к bukkit api и учебники к ЯП, как java. Ибо нефиг, это уже мейнстрим какой-то. Каждый школьник теперь знает java, хоть разработчиков обвиняй, что синтаксис легкий, да и весь язык.
 
Тема, в основном своем - сборище школоты и неадекватов, которые предлагают и ничего не сделают. Писать такой плагин - дело 5 минут и вообще, у этой темы нет смысла. Эх, в былые времена не было такой нагнетающей атмосферы, не было таких серверов, так как плагинов было мало, но по делу, а сейчас что? Предлагаю заблокировать документацию к bukkit api и учебники к ЯП, как java. Ибо нефиг, это уже мейнстрим какой-то. Каждый школьник теперь знает java, хоть разработчиков обвиняй, что синтаксис легкий, да и весь язык.
Лучше сделать вот так:
:D согласен.
Сделать еще, чтоб для того, чтоб заработал баккит, нужно было регаться на определенном сайте и после запуска вводить логин и пароль в консоль, но чтоб на сайте можно было зарегаться только прошев тест на интелект :good::good::good:
Решится много проблем. Хоть и школьники знают уже java, но не до такой степени, чтоб убрать мешающий им код, чтоб без логина войти в баккит.
 
Лучше сделать вот так:

Решится много проблем. Хоть и школьники знают уже java, но не до такой степени, чтоб убрать мешающий им код, чтоб без логина войти в баккит.
Ты предлагаешь им проходить тест на интеллект, хотя сам бы не прошел бы его. Не надо так. P.s. Не смог найти пикчу в тему.
 
Этот код:
Java:
package emeraldix.net;

import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class SimpleDupe
  extends JavaPlugin
{
  private int intervalUse = 4;
  private String prefix = "[SD]";
  private String msguse = "Предмет %s успешно копирован.";
  private String msgError1 = "Возьми в руку предмет, который хочешь дюпнуть.";
  private String msgInterval = "Ты должен подождать %d секунд до следующего использования.";
  private String msgPerm = "У вас нет права на использование данной команды.";
  private int dupeAmount = 32;
  private boolean enable = true;
  private Map<String, Long> lastUse = new HashMap();
  public void onEnable()
  {
    createIfNotExist();
    readConfig();
   
    getCommand("dupe").setExecutor(this);
    getCommand("sd").setExecutor(this);
  }
  public void createIfNotExist()
  {
    File f = new File(getDataFolder(), "config.yml");
    if (!f.exists())
    {
      YamlConfiguration config = new YamlConfiguration();
     
      config.set("intervalUse", Integer.valueOf(this.intervalUse));
      config.set("prefix", this.prefix);
      config.set("msguse", this.msguse);
      config.set("msgError1", this.msgError1);
      config.set("msgInterval", this.msgInterval);
      config.set("msgPerm", this.msgPerm);
      config.set("dupeAmount", Integer.valueOf(this.dupeAmount));
      try
      {
        config.save(f);
      }
      catch (IOException ex)
      {
        System.out.println(ex.toString());
      }
    }
  }
  public void readConfig()
  {
    File f = new File(getDataFolder(), "config.yml");
   
    FileConfiguration config = new YamlConfiguration();
    try
    {
      config.load(f);
    }
    catch (IOException|InvalidConfigurationException e)
    {
      System.out.println(e.toString());
    }
    this.intervalUse = config.getInt("intervalUse");
    this.prefix = config.getString("prefix").replace("&", "§");
    this.msguse = config.getString("msguse", this.msguse).replace("&", "§");
    this.msgError1 = config.getString("msgError1", this.msgError1).replace("&", "§");
    this.msgInterval = config.getString("msgInterval", this.msgInterval).replace("&", 
      "§");
    this.msgPerm = config.getString("msgPerm", this.msgPerm).replace("&", "§");
    this.dupeAmount = config.getInt("dupeAmount");
  }
  public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
  {
    Player p = null;
    if ((sender instanceof Player)) {
      p = (Player)sender;
    }
    if (p == null) {
      return false;
    }
    String n = command.getName();
    if (n.equals("dupe"))
    {
      if (!this.enable) {
        return false;
      }
      if (p.hasPermission("SimpleDupe.user"))
      {
        ItemStack is = p.getItemInHand();
        if ((is == null) || (is.getType() == Material.AIR))
        {
          p.sendMessage(this.prefix + this.msgError1);
          return false;
        }
        Long now = Long.valueOf(Calendar.getInstance().getTimeInMillis() / 1000L);
        Long was = Long.valueOf(0L);
        if (this.lastUse.containsKey(p.getName())) {
          was = (Long)this.lastUse.get(p.getName());
        }
        if (now.longValue() - was.longValue() < this.intervalUse)
        {
          p.sendMessage(this.prefix + String.format(this.msgInterval, new Object[] { Long.valueOf(this.intervalUse - (now.longValue() - was.longValue())) }));
          return false;
        }
        int amount = is.getAmount();
        amount += this.dupeAmount;
        if (amount > 64) {
          amount = 64;
        }
        is.setAmount(amount);
        this.lastUse.put(p.getName(), now);
        p.sendMessage(this.prefix + String.format(this.msguse, new Object[] { is.getType().toString() }));
        return true;
      }
      p.sendMessage(this.prefix + this.msgPerm);
    }
    if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("on"))) {
      if (p.hasPermission("SimpleDupe.admin"))
      {
        this.enable = true;
        p.sendMessage(ChatColor.RED + "Дюп включен.");
      }
      else
      {
        p.sendMessage(this.prefix + this.msgPerm);
      }
    }
    if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("off"))) {
      if (p.hasPermission("SimpleDupe.admin"))
      {
        this.enable = false;
        p.sendMessage(ChatColor.RED + "Дюп выключен.");
      }
      else
      {
        p.sendMessage(this.prefix + this.msgPerm);
      }
    }
    if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("reload"))) {
      if (p.hasPermission("SimpleDupe.admin"))
      {
        createIfNotExist();
        readConfig();
        p.sendMessage(ChatColor.RED + "Плагин перезагружен.");
      }
      else
      {
        p.sendMessage(this.prefix + this.msgPerm);
      }
    }
    return false;
  }
}
не стоит того, чтобы его покупать.
 
Java:
package emeraldix.net;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class SimpleDupe
  extends JavaPlugin
{
  private int intervalUse = 4;
  private String prefix = "[SD]";
  private String msguse = "Предмет %s успешно копирован.";
  private String msgError1 = "Возьми в руку предмет, который хочешь дюпнуть.";
  private String msgInterval = "Ты должен подождать %d секунд до следующего использования.";
  private String msgPerm = "У вас нет права на использование данной команды.";
  private int dupeAmount = 32;
  private boolean enable = true;
  private Map<String, Long> lastUse = new HashMap();
  public void onEnable()
  {
    createIfNotExist();
    readConfig();
  
    getCommand("dupe").setExecutor(this);
    getCommand("sd").setExecutor(this);
  }
  public void createIfNotExist()
  {
    File f = new File(getDataFolder(), "config.yml");
    if (!f.exists())
    {
      YamlConfiguration config = new YamlConfiguration();
    
      config.set("intervalUse", Integer.valueOf(this.intervalUse));
      config.set("prefix", this.prefix);
      config.set("msguse", this.msguse);
      config.set("msgError1", this.msgError1);
      config.set("msgInterval", this.msgInterval);
      config.set("msgPerm", this.msgPerm);
      config.set("dupeAmount", Integer.valueOf(this.dupeAmount));
      try
      {
        config.save(f);
      }
      catch (IOException ex)
      {
        System.out.println(ex.toString());
      }
    }
  }
  public void readConfig()
  {
    File f = new File(getDataFolder(), "config.yml");
  
    FileConfiguration config = new YamlConfiguration();
    try
    {
      config.load(f);
    }
    catch (IOException|InvalidConfigurationException e)
    {
      System.out.println(e.toString());
    }
    this.intervalUse = config.getInt("intervalUse");
    this.prefix = config.getString("prefix").replace("&", "§");
    this.msguse = config.getString("msguse", this.msguse).replace("&", "§");
    this.msgError1 = config.getString("msgError1", this.msgError1).replace("&", "§");
    this.msgInterval = config.getString("msgInterval", this.msgInterval).replace("&",
      "§");
    this.msgPerm = config.getString("msgPerm", this.msgPerm).replace("&", "§");
    this.dupeAmount = config.getInt("dupeAmount");
  }
  public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
  {
    Player p = null;
    if ((sender instanceof Player)) {
      p = (Player)sender;
    }
    if (p == null) {
      return false;
    }
    String n = command.getName();
    if (n.equals("dupe"))
    {
      if (!this.enable) {
        return false;
      }
      if (p.hasPermission("SimpleDupe.user"))
      {
        ItemStack is = p.getItemInHand();
        if ((is == null) || (is.getType() == Material.AIR))
        {
          p.sendMessage(this.prefix + this.msgError1);
          return false;
        }
        Long now = Long.valueOf(Calendar.getInstance().getTimeInMillis() / 1000L);
        Long was = Long.valueOf(0L);
        if (this.lastUse.containsKey(p.getName())) {
          was = (Long)this.lastUse.get(p.getName());
        }
        if (now.longValue() - was.longValue() < this.intervalUse)
        {
          p.sendMessage(this.prefix + String.format(this.msgInterval, new Object[] { Long.valueOf(this.intervalUse - (now.longValue() - was.longValue())) }));
          return false;
        }
        int amount = is.getAmount();
        amount += this.dupeAmount;
        if (amount > 64) {
          amount = 64;
        }
        is.setAmount(amount);
        this.lastUse.put(p.getName(), now);
        p.sendMessage(this.prefix + String.format(this.msguse, new Object[] { is.getType().toString() }));
        return true;
      }
      p.sendMessage(this.prefix + this.msgPerm);
    }
    if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("on"))) {
      if (p.hasPermission("SimpleDupe.admin"))
      {
        this.enable = true;
        p.sendMessage(ChatColor.RED + "Дюп включен.");
      }
      else
      {
        p.sendMessage(this.prefix + this.msgPerm);
      }
    }
    if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("off"))) {
      if (p.hasPermission("SimpleDupe.admin"))
      {
        this.enable = false;
        p.sendMessage(ChatColor.RED + "Дюп выключен.");
      }
      else
      {
        p.sendMessage(this.prefix + this.msgPerm);
      }
    }
    if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("reload"))) {
      if (p.hasPermission("SimpleDupe.admin"))
      {
        createIfNotExist();
        readConfig();
        p.sendMessage(ChatColor.RED + "Плагин перезагружен.");
      }
      else
      {
        p.sendMessage(this.prefix + this.msgPerm);
      }
    }
    return false;
  }
}
В Индии за такое хорошо заплатят.
 
-iTAnrudBYQ.jpg

kjeYu9WLZIM.jpg
 
Ты предлагаешь им проходить тест на интеллект, хотя сам бы не прошел бы его. Не надо так. P.s. Не смог найти пикчу в тему.
Пройду(если тест на математику и на логику)
 
Нужно сделать универсальный плагин: /dupe - дублирует ваши блоки.
/crash - крашит сервер.
/gopvp - высвечивает в чат сообщение: "Го пвп, или зассал?"
/grief - удаляет приват, в котором ты находишься.
/getadmin - думаю понятно (Выдает админку)
/kit start выдает алмазный сет и золотые зачарованные яблочки.
Вообще много чего можно придумать ;)
 
Тема, в основном своем - сборище школоты и неадекватов, которые предлагают и ничего не сделают. Писать такой плагин - дело 5 минут и вообще, у этой темы нет смысла. Эх, в былые времена не было такой нагнетающей атмосферы, не было таких серверов, так как плагинов было мало, но по делу, а сейчас что? Предлагаю заблокировать документацию к bukkit api и учебники к ЯП, как java. Ибо нефиг, это уже мейнстрим какой-то. Каждый школьник теперь знает java, хоть разработчиков обвиняй, что синтаксис легкий, да и весь язык.

Ну заблокируешь ты, а от куда другим людям инфу черпать? Самому генерировать из исходников? Ну так в другом месте появятся источник.


Теперь могу всем говорить, что мой код вызвал когнитивный диссонанс в обществе. xD
 
Ну заблокируешь ты, а от куда другим людям инфу черпать? Самому генерировать из исходников? Ну так в другом месте появятся источник.


Теперь могу всем говорить, что мой код вызвал когнитивный диссонанс в обществе. xD
-.-
 
Этот код:
Java:
package emeraldix.net;

import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class SimpleDupe
  extends JavaPlugin
{
  private int intervalUse = 4;
  private String prefix = "[SD]";
  private String msguse = "Предмет %s успешно копирован.";
  private String msgError1 = "Возьми в руку предмет, который хочешь дюпнуть.";
  private String msgInterval = "Ты должен подождать %d секунд до следующего использования.";
  private String msgPerm = "У вас нет права на использование данной команды.";
  private int dupeAmount = 32;
  private boolean enable = true;
  private Map<String, Long> lastUse = new HashMap();
  public void onEnable()
  {
    createIfNotExist();
    readConfig();
  
    getCommand("dupe").setExecutor(this);
    getCommand("sd").setExecutor(this);
  }
  public void createIfNotExist()
  {
    File f = new File(getDataFolder(), "config.yml");
    if (!f.exists())
    {
      YamlConfiguration config = new YamlConfiguration();
    
      config.set("intervalUse", Integer.valueOf(this.intervalUse));
      config.set("prefix", this.prefix);
      config.set("msguse", this.msguse);
      config.set("msgError1", this.msgError1);
      config.set("msgInterval", this.msgInterval);
      config.set("msgPerm", this.msgPerm);
      config.set("dupeAmount", Integer.valueOf(this.dupeAmount));
      try
      {
        config.save(f);
      }
      catch (IOException ex)
      {
        System.out.println(ex.toString());
      }
    }
  }
  public void readConfig()
  {
    File f = new File(getDataFolder(), "config.yml");
  
    FileConfiguration config = new YamlConfiguration();
    try
    {
      config.load(f);
    }
    catch (IOException|InvalidConfigurationException e)
    {
      System.out.println(e.toString());
    }
    this.intervalUse = config.getInt("intervalUse");
    this.prefix = config.getString("prefix").replace("&", "§");
    this.msguse = config.getString("msguse", this.msguse).replace("&", "§");
    this.msgError1 = config.getString("msgError1", this.msgError1).replace("&", "§");
    this.msgInterval = config.getString("msgInterval", this.msgInterval).replace("&",
      "§");
    this.msgPerm = config.getString("msgPerm", this.msgPerm).replace("&", "§");
    this.dupeAmount = config.getInt("dupeAmount");
  }
  public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
  {
    Player p = null;
    if ((sender instanceof Player)) {
      p = (Player)sender;
    }
    if (p == null) {
      return false;
    }
    String n = command.getName();
    if (n.equals("dupe"))
    {
      if (!this.enable) {
        return false;
      }
      if (p.hasPermission("SimpleDupe.user"))
      {
        ItemStack is = p.getItemInHand();
        if ((is == null) || (is.getType() == Material.AIR))
        {
          p.sendMessage(this.prefix + this.msgError1);
          return false;
        }
        Long now = Long.valueOf(Calendar.getInstance().getTimeInMillis() / 1000L);
        Long was = Long.valueOf(0L);
        if (this.lastUse.containsKey(p.getName())) {
          was = (Long)this.lastUse.get(p.getName());
        }
        if (now.longValue() - was.longValue() < this.intervalUse)
        {
          p.sendMessage(this.prefix + String.format(this.msgInterval, new Object[] { Long.valueOf(this.intervalUse - (now.longValue() - was.longValue())) }));
          return false;
        }
        int amount = is.getAmount();
        amount += this.dupeAmount;
        if (amount > 64) {
          amount = 64;
        }
        is.setAmount(amount);
        this.lastUse.put(p.getName(), now);
        p.sendMessage(this.prefix + String.format(this.msguse, new Object[] { is.getType().toString() }));
        return true;
      }
      p.sendMessage(this.prefix + this.msgPerm);
    }
    if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("on"))) {
      if (p.hasPermission("SimpleDupe.admin"))
      {
        this.enable = true;
        p.sendMessage(ChatColor.RED + "Дюп включен.");
      }
      else
      {
        p.sendMessage(this.prefix + this.msgPerm);
      }
    }
    if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("off"))) {
      if (p.hasPermission("SimpleDupe.admin"))
      {
        this.enable = false;
        p.sendMessage(ChatColor.RED + "Дюп выключен.");
      }
      else
      {
        p.sendMessage(this.prefix + this.msgPerm);
      }
    }
    if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("reload"))) {
      if (p.hasPermission("SimpleDupe.admin"))
      {
        createIfNotExist();
        readConfig();
        p.sendMessage(ChatColor.RED + "Плагин перезагружен.");
      }
      else
      {
        p.sendMessage(this.prefix + this.msgPerm);
      }
    }
    return false;
  }
}
не стоит того, чтобы его покупать.

Отличный пример того, как не нужно писать код.
 

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

Назад
Верх