- Баллы
- 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
это название кита, который будет выдаваться нубикам(только что зареганным пользователям)
Книги хочешь сделать? Типо правила сервера?которые он не может выкидывать и перемещать
А если написать айди не существующего предмета? Допустим 19866Ну хорошо. Мне необходимо ,чтобы итем 130 был в 9 иконке. По 3-8 иконку предметов не должно быть ,однако если в конфиг ничего не написать ,то выдача итема 130 не будет произведена. Нулевой айди и не существующий не помогает.
- 399 1
- 388 1
-
-
-
-
-
-
- 130 1
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 пробывал не получилось.