Ищу плагин Выдача предметов зайдя на сервер.

ChevChelos

Активный участник
Пользователь
Баллы
76
Ник в Minecraft
ChevChelos
Вобщем нужен плагин ,чтобы человек зашёл впервые на сервер и у него в инвентаре в определённых местах были предметы ,которые он не может выкидывать и перемещать. С essentials kit пробывал не получилось.
 
Вобщем нужен плагин ,чтобы человек зашёл впервые на сервер и у него в инвентаре в определённых местах были предметы ,которые он не может выкидывать и перемещать. С essentials kit пробывал не получилось.
как это не получилось?
 
Код:
  # Do we want to give users anything on first join? Set to '' to disable
  # This kit will be given regardless of cost, and permissions.
  kit: start
это название кита, который будет выдаваться нубикам(только что зареганным пользователям)
которые он не может выкидывать и перемещать
Книги хочешь сделать? Типо правила сервера?
 
Последнее редактирование:
Ну хорошо. Мне необходимо ,чтобы итем 130 был в 9 иконке. По 3-8 иконку предметов не должно быть ,однако если в конфиг ничего не написать ,то выдача итема 130 не будет произведена. Нулевой айди и не существующий не помогает.

- 399 1
- 388 1
-
-
-
-
-
-
- 130 1
 
Ну хорошо. Мне необходимо ,чтобы итем 130 был в 9 иконке. По 3-8 иконку предметов не должно быть ,однако если в конфиг ничего не написать ,то выдача итема 130 не будет произведена. Нулевой айди и не существующий не помогает.

- 399 1
- 388 1
-
-
-
-
-
-
- 130 1
А если написать айди не существующего предмета? Допустим 19866
 
В чат напишется сообщение об ошибке и не все предметы кита будут выданы. Об этом говорит и essentials kit class
Код:
package com.earth2me.essentials;

import com.earth2me.essentials.api.IItemDb;
import com.earth2me.essentials.commands.NoChargeException;
import com.earth2me.essentials.craft*********ventoryWorkaround;
import com.earth2me.essentials.textreader.IText;
import com.earth2me.essentials.textreader.KeywordReplacer;
import com.earth2me.essentials.textreader.SimpleTextInput;
import com.earth2me.essentials.utils.DateUtil;
import com.earth2me.essentials.utils.NumberUtil;
import java.math.BigDecimal;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.ess3.api.IEssentials;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.*********ventory.ItemStack;

// Referenced classes of package com.earth2me.essentials:
//            Trade, MetaItemStack, User, ISettings, 
//            I18n

public class Kit
{

    final IEssentials ess;
    final String kitName;
    final Map kit;
    final Trade charge;

    public Kit(String kitName, IEssentials ess)
        throws Exception
    {
        this.kitName = kitName;
        this.ess = ess;
        kit = ess.getSettings().getKit(kitName);
        charge = new Trade((new StringBuilder()).append("kit-").append(kitName).toString(), new Trade("kit-kit", ess), ess);
        if(kit == null)
        {
            throw new Exception(I18n.tl("kitNotFound", new Object[0]));
        } else
        {
            return;
        }
    }

    public static String listKits(IEssentials ess, User user)
        throws Exception
    {
        StringBuilder list;
        ConfigurationSection kits = ess.getSettings().getKits();
        list = new StringBuilder();
        Iterator i$ = kits.getKeys(false).iterator();
        do
        {
            if(!i$.hasNext())
            {
                break;
            }
            String kitItem = (String)i$.next();
            if(user == null)
            {
                list.append(" ").append(I18n.capitalCase(kitItem));
            } else
            if(user.isAuthorized((new StringBuilder()).append("essentials.kits.").append(kitItem.toLowerCase(Locale.ENGLISH)).toString()))
            {
                String cost = "";
                String name = I18n.capitalCase(kitItem);
                BigDecimal costPrice = (new Trade((new StringBuilder()).append("kit-").append(kitItem.toLowerCase(Locale.ENGLISH)).toString(), ess)).getCommandCost(user);
                if(costPrice.signum() > 0)
                {
                    cost = I18n.tl("kitCost", new Object[] {
                        NumberUtil.displayCurrency(costPrice, ess)
                    });
                }
                Kit kit = new Kit(kitItem, ess);
                if(kit.getNextUse(user) != 0L)
                {
                    name = I18n.tl("kitDelay", new Object[] {
                        name
                    });
                }
                list.append(" ").append(name).append(cost);
            }
        } while(true);
        return list.toString().trim();
        Exception ex;
        ex;
        throw new Exception(I18n.tl("kitError", new Object[0]), ex);
    }

    public String getName()
    {
        return kitName;
    }

    public void checkPerms(User user)
        throws Exception
    {
        if(!user.isAuthorized((new StringBuilder()).append("essentials.kits.").append(kitName).toString()))
        {
            throw new Exception(I18n.tl("noKitPermission", new Object[] {
                (new StringBuilder()).append("essentials.kits.").append(kitName).toString()
            }));
        } else
        {
            return;
        }
    }

    public void checkDelay(User user)
        throws Exception
    {
        long nextUse = getNextUse(user);
        if(nextUse == 0L)
        {
            return;
        }
        if(nextUse < 0L)
        {
            user.sendMessage(I18n.tl("kitOnce", new Object[0]));
            throw new NoChargeException();
        } else
        {
            user.sendMessage(I18n.tl("kitTimed", new Object[] {
                DateUtil.formatDateDiff(nextUse)
            }));
            throw new NoChargeException();
        }
    }

    public void checkAffordable(User user)
        throws Exception
    {
        charge.isAffordableFor(user);
    }

    public void setTime(User user)
        throws Exception
    {
        Calendar time = new GregorianCalendar();
        user.setKitTimestamp(kitName, time.getTimeInMillis());
    }

    public void chargeUser(User user)
        throws Exception
    {
        charge.charge(user);
    }

    public long getNextUse(User user)
        throws Exception
    {
        if(user.isAuthorized("essentials.kit.exemptdelay"))
        {
            return 0L;
        }
        Calendar time = new GregorianCalendar();
        double delay = 0.0D;
        try
        {
            delay = kit.containsKey("delay") ? ((Number)kit.get("delay")).doubleValue() : 0.0D;
        }
        catch(Exception e)
        {
            throw new Exception(I18n.tl("kitError2", new Object[0]));
        }
        long lastTime = user.getKitTimestamp(kitName);
        Calendar delayTime = new GregorianCalendar();
        delayTime.setTimeInMillis(lastTime);
        delayTime.add(13, (int)delay);
        delayTime.add(14, (int)((delay * 1000D) % 1000D));
        if(lastTime == 0L || lastTime > time.getTimeInMillis())
        {
            return 0L;
        }
        if(delay < 0.0D)
        {
            return -1L;
        }
        if(delayTime.before(time))
        {
            return 0L;
        } else
        {
            return delayTime.getTimeInMillis();
        }
    }

    public List getItems(User user)
        throws Exception
    {
        if(kit == null)
        {
            throw new Exception(I18n.tl("kitNotFound", new Object[0]));
        }
        List itemList;
        itemList = new ArrayList();
        Object kitItems = kit.get("items");
        if(!(kitItems instanceof List))
        {
            break MISSING_BLOCK_LABEL_137;
        }
        for(Iterator i$ = ((List)kitItems).iterator(); i$.hasNext();)
        {
            Object item = i$.next();
            if(item instanceof String)
            {
                itemList.add(item.toString());
            } else
            {
                throw new Exception((new StringBuilder()).append("Invalid kit item: ").append(item.toString()).toString());
            }
        }

        return itemList;
        try
        {
            throw new Exception("Invalid item list");
        }
        catch(Exception e)
        {
            ess.getLogger().log(Level.WARNING, (new StringBuilder()).append("Error parsing kit ").append(kitName).append(": ").append(e.getMessage()).toString());
            throw new Exception(I18n.tl("kitError2", new Object[0]), e);
        }
    }

    public void expandItems(User user)
        throws Exception
    {
        expandItems(user, getItems(user));
    }

    public void expandItems(User user, List items)
        throws Exception
    {
        try
        {
            IText input = new SimpleTextInput(items);
            IText output = new KeywordReplacer(input, user.getSource(), ess);
            boolean spew = false;
            boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments();
            Iterator i$ = output.getLines().iterator();
            do
            {
                if(!i$.hasNext())
                {
                    break;
                }
                String kitItem = (String)i$.next();
                if(kitItem.startsWith(ess.getSettings().getCurrencySymbol()))
                {
                    BigDecimal value = new BigDecimal(kitItem.substring(ess.getSettings().getCurrencySymbol().length()).trim());
                    Trade t = new Trade(value, ess);
                    t.pay(user, Trade.OverflowType.DROP);
                } else
                {
                    String parts[] = kitItem.split(" +");
                    ItemStack parseStack = ess.getItemDb().get(parts[0], parts.length <= 1 ? 1 : Integer.parseInt(parts[1]));
                    if(parseStack.getType() != Material.AIR)
                    {
                        MetaItemStack metaStack = new MetaItemStack(parseStack);
                        if(parts.length > 2)
                        {
                            metaStack.parseStringMeta(null, allowUnsafe, parts, 2, ess);
                        }
                        boolean allowOversizedStacks = user.isAuthorized("essentials.oversizedstacks");
                        Map overfilled;
                        if(allowOversizedStacks)
                        {
                            overfilled = InventoryWorkaround.addOversizedItems(user.getBase().getInventory(), ess.getSettings().getOversizedStackSize(), new ItemStack[] {
                                metaStack.getItemStack()
                            });
                        } else
                        {
                            overfilled = InventoryWorkaround.addItems(user.getBase().getInventory(), new ItemStack[] {
                                metaStack.getItemStack()
                            });
                        }
                        Iterator i$ = overfilled.values().iterator();
                        while(i$.hasNext()) 
                        {
                            ItemStack itemStack = (ItemStack)i$.next();
                            int spillAmount = itemStack.getAmount();
                            if(!allowOversizedStacks)
                            {
                                itemStack.setAmount(spillAmount >= itemStack.getMaxStackSize() ? itemStack.getMaxStackSize() : spillAmount);
                            }
                            for(; spillAmount > 0; spillAmount -= itemStack.getAmount())
                            {
                                user.getWorld().dropItemNaturally(user.getLocation(), itemStack);
                            }

                            spew = true;
                        }
                    }
                }
            } while(true);
            user.getBase().updateInventory();
            if(spew)
            {
                user.sendMessage(I18n.tl("kitInvFull", new Object[0]));
            }
        }
        catch(Exception e)
        {
            user.getBase().updateInventory();
            ess.getLogger().log(Level.WARNING, e.getMessage());
            throw new Exception(I18n.tl("kitError2", new Object[0]), e);
        }
    }
}
 
Вобщем нужен плагин ,чтобы человек зашёл впервые на сервер и у него в инвентаре в определённых местах были предметы ,которые он не может выкидывать и перемещать. С essentials kit пробывал не получилось.
Там сортировка по ид!
 
Назад
Верх Низ