Когда приравниваю переменную к false она все равно true (мб тупо, но у меня уже голова кругом от этого)

12
1
3
Короче ребят выручайте х100000 раз вас прошу) Суть вот в чем:
Есть переменная hasTaskStarted которая изначально false
Потом в идет проверка на состояние этой переменной, если она false то все ок и запускается таймер попутно приравнивая эту переменную к true(чтобы второй раз не вызвать таймер ибо он крашится тогда) но когда проходит таймер, в run() переменная снова должна стать false, но она ей не становится)) При чем весь код из run() выполняется, но переменная не изменяет свое состояние на false... Я хоть и новичек в джаве и модинге в целом, но с переменными точно накасячить не мог(я так думаю по крайней мере) Код прикладываю ниже. Ребят обьяните мою ошибку пожалуйста, только поспокойней и не нужно агрессии) (Хотя вопрос по любому тупой и я тоже тупой и сдержаться будет трудно, но вы хотябы посторайтесь)))
P.S. гуглинг ничего не дал.

Main:
package ru.elitecute.ea;

import java.io.File;

import com.typesafe.config.Config;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraftforge.common.config.Configuration;
import ru.elitecute.ea.items.berserk_aura;

@Mod(modid = Main.modid, name = Main.modname, version = Main.version)

public class Main {
    
public static final String modid = "effectaura";
public static final String modname = "EffectAura";
public static final String version = "1.0";


public static Configuration config;
public static boolean enable_cooldown_for_all;
public static int cooldown;
public static int berserk_cooldown;
public static int lastpush_cooldown;
public static int rushoflife_cooldown;
public static int indestructiblefortress_cooldown;
public static int fastpush_cooldown;
public static int eagleeye_cooldown;
public static int liveforce_cooldown;
public static int natureresistance_cooldown;
public static int leapoffaith_cooldown;
public static int cooldown_timer = 0;
public static int berserk_cooldown_timer = 0;
public static int lastpush_cooldown_timer = 0;
public static int rushoflife_cooldown_timer = 0;
public static int indestructiblefortress_cooldown_timer = 0;
public static int fastpush_cooldown_timer = 0;
public static int eagleeye_cooldown_timer = 0;
public static int liveforce_cooldown_timer = 0;
public static int natureresistance_cooldown_timer = 0;
public static int leapoffaith_cooldown_timer = 0;

public static Item berserk_aura;

public static CreativeTabs tabEa = new CreativeTabs ("Effect Aura") {
       @SideOnly(Side.CLIENT)
       public Item getTabIconItem() {
            return Item.getItemFromBlock(Blocks.grass);
       }
};




@EventHandler
public void preInit(FMLPreInitializationEvent preEvent) {
    berserk_aura = new berserk_aura();
    GameRegistry.registerItem(berserk_aura, "berserk_aura");
    
    
    config = new Configuration(preEvent.getSuggestedConfigurationFile());
    syncConfig();

    
}
public static void syncConfig() {
    enable_cooldown_for_all = config.getBoolean("enable_cooldown_for_all", "options", true, "this option enable mode of one cooldown for all auras(in mili-seconds)");
    cooldown = config.getInt("cooldown", "cooldown_settings", 60000, 1, 999999, "cooldown for all auras(in mili-seconds)");
    berserk_cooldown = config.getInt("berserk_cooldown", "cooldown_settings", 60000, 1, 999999, "cooldown for berserk aura(in mili-seconds)");
    lastpush_cooldown = config.getInt("lastpush_cooldown", "cooldown_settings", 60000, 1, 999999, "cooldown for lust push aura(in mili-seconds)");
    rushoflife_cooldown = config.getInt("rushoflife_cooldown", "cooldown_settings", 60000, 1, 999999, "cooldown for rush of life aura(in mili-seconds)");
    indestructiblefortress_cooldown = config.getInt("indestructiblefortress_cooldown", "cooldown_settings", 60000, 1, 999999, "cooldown for indestructible fortress aura(in mili-seconds)");
    fastpush_cooldown = config.getInt("fastpush_cooldown", "cooldown_settings", 60000, 1, 999999, "cooldown for fast push aura(in mili-seconds)");
    eagleeye_cooldown = config.getInt("eagleeye_cooldown", "cooldown_settings", 60000, 1, 999999, "cooldown for eagle eye aura(in mili-seconds)");
    liveforce_cooldown = config.getInt("liveforce_cooldown", "cooldown_settings", 60000, 1, 999999, "cooldown for live force aura(in mili-seconds)");
    natureresistance_cooldown = config.getInt("natureresistance_cooldown", "cooldown_settings", 1, 60000, 999999, "cooldown for nature resistance aura(in mili-seconds)");
    leapoffaith_cooldown = config.getInt("leapoffaith_cooldown", "cooldown_settings", 60000, 1, 999999, "cooldown for leap of faith aura(in mili-seconds)");
    if(config.hasChanged()) {
        config.save();
       }
    }




@EventHandler
public void Init(FMLInitializationEvent Event) {
}

@EventHandler
public void postInit(FMLPostInitializationEvent postEvent) {
}

}


berserk_aura:
package ru.elitecute.ea.items;

import java.util.Timer;
import java.util.TimerTask;
import java.util.List;

import com.google.common.eventbus.Subscribe;

import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
import net.minecraftforge.common.config.Configuration;
import ru.elitecute.ea.BerserkTask;
import ru.elitecute.ea.Main;

public class berserk_aura extends Item {
    BerserkTask berst = new BerserkTask();
    Main main = new Main();
    Timer timer = new Timer();
    TimerTask berserkTask = new BerserkTask();
    public berserk_aura() {

        super();
        this.setMaxStackSize(1);
        this.setCreativeTab(Main.tabEa);
        this.setUnlocalizedName("berserk_aura");
        this.setTextureName("effectaura:berserk_aura");
    }
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent preEvent) {

        
    }
    @SideOnly(Side.CLIENT)
    public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
        par3List.add("После активации вы получите силу I и скорость I на 75 секунд. (Одноразовое использование)");
        
    }
    
    @Subscribe
    public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) {
           if(world.isRemote) {
               System.out.println("isremote test");
            if(main.enable_cooldown_for_all) {
                System.out.println("for all test");
                if(main.cooldown_timer == 0) {
                    System.out.println("cooldown test");
                   if(!berst.taskHasStarted) {
                       System.out.println("has started test");
                    main.cooldown_timer = main.cooldown;
                    berst.taskHasStarted = true;
                       timer.schedule(berserkTask, main.cooldown_timer);
                    PotionEffect potionEffect1 = new PotionEffect(5, 1500, 0);
                        player.addPotionEffect(potionEffect1);
                    PotionEffect potionEffect2 = new PotionEffect(1, 1500, 0);
                        player.addPotionEffect(potionEffect2);
                        
                    player.inventory.consumeInventoryItem(main.berserk_aura);
                        
                      
                player.addChatMessage(new ChatComponentText("В вас пробуждается сила берсерка!"));

            }
            }else{
                player.addChatMessage(new ChatComponentText("Аура на перезарядке!"));
             }
            }else{
                if(main.berserk_cooldown_timer == 0) {
                  if(!berst.taskHasStarted) {
                   main.berserk_cooldown_timer = main.berserk_cooldown;
                   berst.taskHasStarted = true;
                   timer.schedule(berserkTask, main.berserk_cooldown_timer);
                    PotionEffect potionEffect1 = new PotionEffect(5, 1500, 0);
                        player.addPotionEffect(potionEffect1);
                    PotionEffect potionEffect2 = new PotionEffect(1, 1500, 0);
                        player.addPotionEffect(potionEffect2);
                        player.inventory.consumeInventoryItem(main.berserk_aura);
                                
                                
                player.addChatMessage(new ChatComponentText("В вас пробуждается сила берсерка!"));
                }
                }else{
                    player.addChatMessage(new ChatComponentText("Аура на перезарядке!"));
                     }
            }
            
        }
           return itemStack;
        }
        }
BerserkTask:
package ru.elitecute.ea;

import java.util.TimerTask;

import net.minecraft.util.ChatComponentText;
import ru.elitecute.ea.Main;
import ru.elitecute.ea.items.berserk_aura;

public class BerserkTask extends TimerTask{
    public boolean taskHasStarted = false;
    Main main = new Main();



    @Override
    public void run() {
        System.out.println(main.cooldown_timer + " - first test");
        System.out.println(main.enable_cooldown_for_all + " - first test");
        
        
        if(main.enable_cooldown_for_all) {
            System.out.println("enabled for all complete");
            taskHasStarted = false;
            main.cooldown_timer = 0;
        }else{
            System.out.println("complete");
            taskHasStarted = false;
            main.berserk_cooldown_timer = 0;
            
        }
        System.out.println(main.cooldown_timer + " - second test");
        System.out.println(main.enable_cooldown_for_all + " - second test");
        
        
    }

}
А также не работает удаление предмета(он как бы забирается но потом возрващается в инвентарь) если вы поможете еще и с этим вам не будет цены вообще))
 
Сверху