- Баллы
- 103
Разобрался
Разобрался
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Этот код удаляет все жезлы, которые лежат по-одиночке в инвентаре, нихарашо.Код:PlayerInventory inventory = ((Player)sender).getInventory(); ItemStack trainerkit = new ItemStack(Material.BLAZE_ROD, 1); inventory.remove(trainerkit);
Срабатывает даже если у меня больше 1 жезла в инвентаре.Код:if (!inventory.contains(trainerkit)) { sender.sendMessage(ChatColor.RED + "Вам необходим 1 жезл ифрита"); }else{
Мне нужно, чтобы Player мог красть только раз в 30 секунд.
Это-то я и не знаю как сделатьЗафиксируйте время окончания cooldown

Способов множество. Можно запустить шедулер, можно записать время с последнего взаимодействия..Это-то я и не знаю как сделать![]()
Я новичок, я не знаю как это сделать...можно записать время с последнего взаимодействия..
public class AxmeDRP extends JavaPlugin implements Listener {
public static final Logger _log = Logger.getLogger("Minecraft");
private EconomyResponse depositPlayer;
@Override
public void onEnable() {
this.getServer().getPluginManager().registerEvents(new AxmeDRP(), this);
_log.info("[AxmeD RP] enabled");
File fileConf = new File(getDataFolder(), "config.yml");
if(!fileConf.exists()){
InputStream resourceAsStream = AxmeDRP.class.getResourceAsStream("/config.yml");
getDataFolder().mkdirs();
try {
FileOutputStream fos = new FileOutputStream(fileConf);
byte[] buff = new byte[65536];
int n;
while((n = resourceAsStream.read(buff)) > 0){
fos.write(buff, 0, n);
fos.flush();
}
fos.close();
buff = null;
} catch (Exception e) {
e.printStackTrace();
}
}
FileConfiguration conf = YamlConfiguration.loadConfiguration(fileConf);
}
@EventHandler
public void onJoin(PlayerJoinEvent e){
Player player = e.getPlayer();
if(!this.getConfig().contains(player.getName() + ".cuffed")){
this.getConfig().set(player.getName() + ".cuffed", false);
this.saveConfig();
}else{
this.getConfig().set(player.getName() + ".cuffed", false);
this.saveConfig();
}
}
и так далее...
19:13:50 [INFO] Axmedus[/127.0.0.1:61831] logged in with entity id 14 at ([world
] 66.28608488217907, 64.0, 350.2838541977503)
19:13:50 [SEVERE] Could not pass event PlayerJoinEvent to AxmeDRP v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:363)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:479)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:464)
at net.minecraft.server.management.ServerConfigurationManager.func_72377
_c(ServerConfigurationManager.java:308)
at net.minecraft.server.management.ServerConfigurationManager.func_72355
_a(ServerConfigurationManager.java:169)
at net.minecraft.network.NetLoginHandler.completeConnection(NetLoginHand
ler.java:237)
at cpw.mods.fml.common.network.FMLNetworkHandler.handleClientConnection(
FMLNetworkHandler.java:169)
at cpw.mods.fml.common.network.FMLNetworkHandler.onConnectionReceivedFro
mClient(FMLNetworkHandler.java:123)
at net.minecraft.network.NetLoginHandler.func_72529_d(NetLoginHandler.ja
va:213)
at net.minecraft.network.NetLoginHandler.func_72532_c(NetLoginHandler.ja
va:101)
at org.spigotmc.netty.NettyServerConnection.func_71747_b(NettyServerConn
ection.java:73)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.jav
a:926)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(Dedicated
Server.java:324)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.jav
a:794)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:678)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
Caused by: java.lang.IllegalArgumentException: File cannot be null
at org.apache.commons.lang.Validate.notNull(Validate.java:203)
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(Yam
lConfiguration.java:170)
at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
at ru.axmed.rp.AxmeDRP.onJoin(AxmeDRP.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:361)
... 16 more

public class PlayerListener implements Listener
{
private AxmeDRP plugin;
public PlayerListener(AxmeDRP plugin)
{
this.plugin = plugin;
}
@EventHandler(priority = EventPriority.LOW)
public void onPlayerJoinEvent(PlayerJoinEvent event)
{
Player player = e.getPlayer();
String Section = new StringBuilder().append(player.getName()).append(".cuffed").toString();
if (!plugin.getConfig().contains(Section))
{
plugin.getConfig().set(Section, false);
plugin.SaveConfig();
}
else
{
plugin.getConfig().set(Section, false);
plugin.SaveConfig();
}
}
}
Мне нужен этот boolean, чтобы использовать в дальнейшем, то есть, когда я буду "одевать наручники" на игрока.Зачем фиксировать и проверять "cuffed", если в любой ситуации оно примет значение false?![]()
Все равно ошибка именно из-за this.getConfig(), что бы я ни написал дальше. Странно то, что если использовать подобное не в ивенте, а в команде, то всё нормФиксируйте обратное значение (true), так будет гораздо разумнее.

Ошибка кроется в другом месте, внимательнее приглядитесь к его коду...Ты создал переменную conf. Используй ее для работы с конфигом
public class AxmeDRP extends JavaPlugin implements Listener
this.getServer().getPluginManager().registerEvents(new AxmeDRP(), this);
А ну да, не увиделОшибка кроется в другом месте, внимательнее приглядитесь к его коду...
Код:public class AxmeDRP extends JavaPlugin implements ListenerКод:this.getServer().getPluginManager().registerEvents(new AxmeDRP(), this);
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e){
final Player player = e.getPlayer();
final String playername = player.getName();
final File fileConf = new File(getDataFolder(), "config.yml");
final FileConfiguration conf = YamlConfiguration.loadConfiguration(fileConf);
if(this.getConfig().getInt("Guards.wanted." + player.getName()) == 1){
player.sendMessage(ChatColor.RED + "Вы находитесь в розыске!");
this.saveConfig();
Bukkit.getServer().getScheduler().scheduleAsyncDelayedTask(this, new Runnable(){
@Override
public void run(){
this.getConfig().set("Guards.wanted." + playername, 0);
player.sendMessage(ChatColor.YELLOW + "Lol");
try {
conf.save(fileConf);
} catch (IOException e) {
e.printStackTrace();
}
}
private MemorySection getConfig() {
conf.get("fileConf");
return conf;
}
}, 50 * 10);
}
Зачем добавляться ко всем девелоперам в скайп а потом продолжать насиловать форум?)
