Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Помощь' started by ChevChelos, Dec 18, 2014.

  1. Автор темы
    ChevChelos

    ChevChelos Активный участник Пользователь

    Trophy Points:
    76
    Имя в Minecraft:
    ChevChelos
    Вобщем нужен плагин ,чтобы человек зашёл впервые на сервер и у него в инвентаре в определённых местах были предметы ,которые он не может выкидывать и перемещать. С essentials kit пробывал не получилось.
     
  2. Хостинг MineCraft
    <
  3. MrSwipe

    MrSwipe Активный участник Пользователь

    Trophy Points:
    88
    Skype:
    forgos111
    Имя в Minecraft:
    MrSwipe
    как это не получилось?
     
  4. Автор темы
    ChevChelos

    ChevChelos Активный участник Пользователь

    Trophy Points:
    76
    Имя в Minecraft:
    ChevChelos
    Нельзя сделать ,чтобы предметы были расположены в разных местах.
     
  5. MrSwipe

    MrSwipe Активный участник Пользователь

    Trophy Points:
    88
    Skype:
    forgos111
    Имя в Minecraft:
    MrSwipe
    Code:
      # 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
    это название кита, который будет выдаваться нубикам(только что зареганным пользователям)
    Книги хочешь сделать? Типо правила сервера?
     
    Last edited: Dec 18, 2014
  6. Автор темы
    ChevChelos

    ChevChelos Активный участник Пользователь

    Trophy Points:
    76
    Имя в Minecraft:
    ChevChelos
    Ну хорошо. Мне необходимо ,чтобы итем 130 был в 9 иконке. По 3-8 иконку предметов не должно быть ,однако если в конфиг ничего не написать ,то выдача итема 130 не будет произведена. Нулевой айди и не существующий не помогает.

    - 399 1
    - 388 1
    -
    -
    -
    -
    -
    -
    - 130 1
     
  7. MrSwipe

    MrSwipe Активный участник Пользователь

    Trophy Points:
    88
    Skype:
    forgos111
    Имя в Minecraft:
    MrSwipe
    А если написать айди не существующего предмета? Допустим 19866
     
  8. Автор темы
    ChevChelos

    ChevChelos Активный участник Пользователь

    Trophy Points:
    76
    Имя в Minecraft:
    ChevChelos
    В чат напишется сообщение об ошибке и не все предметы кита будут выданы. Об этом говорит и essentials kit class
    Code:
    
    package com.earth2me.essentials;
    
    import com.earth2me.essentials.api.IItemDb;
    import com.earth2me.essentials.commands.NoChargeException;
    import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
    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.bukkit.inventory.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);
            }
        }
    }
    
     
  9. maxim17341

    maxim17341 Активный участник Пользователь

    Trophy Points:
    61
    Имя в Minecraft:
    Chochome
    Держи плагин) и не мучайся CustomJoinItems
     
  10. tacos912

    tacos912 Активный участник Пользователь

    Trophy Points:
    78
    Имя в Minecraft:
    tacos912
    Там сортировка по ид!
     

Share This Page