Thread: Double Experience Event Has Ended spamming in Global

Page 2 of 2 FirstFirst 12
Results 11 to 19 of 19
  1. #11  
    Donator


    Join Date
    Jul 2011
    Posts
    570
    Thanks given
    135
    Thanks received
    142
    Rep Power
    291
    Quote Originally Posted by BACKPAiiN View Post
    That didn't work and also gave this error in eclipse

    Attached image
    Do what I said above. It's an abstact method which is why super.stop isnt working.
    Reply With Quote  
     

  2. Thankful user:


  3. #12  
    Registered Member
    Join Date
    May 2016
    Posts
    16
    Thanks given
    10
    Thanks received
    0
    Rep Power
    11
    Quote Originally Posted by Empathy View Post
    I can't tell based off that but i'll take a guess. Even though you called the stop method, its still looping through process so there has to be a way to stop it. Try returning -1.

    Code:
    @Override
    	public int process() {	
    		ticks++;
    		if (ticks >= 500) {
    			stop();
                            return -1;
                    }
    		return 1;
    	}
    Also post your whole eventmanager class. I wanna see how the process method is called.
    No luck with that either.. it's quite strange..
    Reply With Quote  
     

  4. #13  
    Donator


    Join Date
    Jul 2011
    Posts
    570
    Thanks given
    135
    Thanks received
    142
    Rep Power
    291
    Quote Originally Posted by BACKPAiiN View Post
    No luck with that either.. it's quite strange..
    Post your eventmanager class in its entirety.
    Reply With Quote  
     

  5. Thankful user:


  6. #14  
    Registered Member
    Join Date
    May 2016
    Posts
    16
    Thanks given
    10
    Thanks received
    0
    Rep Power
    11
    Quote Originally Posted by Empathy View Post
    Post your eventmanager class in its entirety.
    This is EventManager.class

    Code:
    // Compiled from EventManager.java (version 1.8 : 52.0, super bit)
    public class com.mayhem.rs2.content.event.EventManager {
      
      // Field descriptor #6 Lcom/mayhem/rs2/content/event/Event;
      private com.mayhem.rs2.content.event.Event event;
      
      // Field descriptor #8 I
      private int delay;
      
      // Field descriptor #10 [I
      private int[] eventAmount;
      
      // Field descriptor #12 Ljava/util/Timer;
      java.util.Timer timer;
      
      // Method descriptor #14 ()V
      // Stack: 3, Locals: 1
      public EventManager();
         0  aload_0 [this]
         1  invokespecial java.lang.Object() [16]
         4  aload_0 [this]
         5  iconst_3
         6  newarray int [10]
         8  putfield com.mayhem.rs2.content.event.EventManager.eventAmount : int[] [18]
        11  aload_0 [this]
        12  new java.util.Timer [20]
        15  dup
        16  invokespecial java.util.Timer() [22]
        19  putfield com.mayhem.rs2.content.event.EventManager.timer : java.util.Timer [23]
        22  return
          Line numbers:
            [pc: 0, line: 26]
            [pc: 4, line: 19]
            [pc: 11, line: 20]
            [pc: 22, line: 28]
          Local variable table:
            [pc: 0, pc: 23] local: this index: 0 type: com.mayhem.rs2.content.event.EventManager
      
      // Method descriptor #14 ()V
      // Stack: 3, Locals: 2
      public void process();
         0  aload_0 [this]
         1  getfield com.mayhem.rs2.content.event.EventManager.event : com.mayhem.rs2.content.event.Event [30]
         4  ifnull 21
         7  aload_0 [this]
         8  getfield com.mayhem.rs2.content.event.EventManager.event : com.mayhem.rs2.content.event.Event [30]
        11  invokevirtual com.mayhem.rs2.content.event.Event.preStartupCheck() : boolean [32]
        14  ifne 21
        17  aload_0 [this]
        18  invokevirtual com.mayhem.rs2.content.event.EventManager.forceStop() : void [38]
        21  aload_0 [this]
        22  getfield com.mayhem.rs2.content.event.EventManager.delay : int [41]
        25  ifle 39
        28  aload_0 [this]
        29  dup
        30  getfield com.mayhem.rs2.content.event.EventManager.delay : int [41]
        33  iconst_1
        34  isub
        35  putfield com.mayhem.rs2.content.event.EventManager.delay : int [41]
        38  return
        39  aload_0 [this]
        40  getfield com.mayhem.rs2.content.event.EventManager.event : com.mayhem.rs2.content.event.Event [30]
        43  ifnonnull 47
        46  return
        47  aload_0 [this]
        48  getfield com.mayhem.rs2.content.event.EventManager.event : com.mayhem.rs2.content.event.Event [30]
        51  invokevirtual com.mayhem.rs2.content.event.Event.process() : int [43]
        54  istore_1 [delay]
        55  iload_1 [delay]
        56  iconst_m1
        57  if_icmpne 65
        60  aload_0 [this]
        61  invokevirtual com.mayhem.rs2.content.event.EventManager.forceStop() : void [38]
        64  return
        65  aload_0 [this]
        66  dup
        67  getfield com.mayhem.rs2.content.event.EventManager.delay : int [41]
        70  iload_1 [delay]
        71  iadd
        72  putfield com.mayhem.rs2.content.event.EventManager.delay : int [41]
        75  return
          Line numbers:
            [pc: 0, line: 36]
            [pc: 7, line: 37]
            [pc: 17, line: 38]
            [pc: 21, line: 41]
            [pc: 28, line: 42]
            [pc: 38, line: 43]
            [pc: 39, line: 45]
            [pc: 46, line: 46]
            [pc: 47, line: 47]
            [pc: 55, line: 48]
            [pc: 60, line: 49]
            [pc: 64, line: 50]
            [pc: 65, line: 52]
            [pc: 75, line: 53]
          Local variable table:
            [pc: 0, pc: 76] local: this index: 0 type: com.mayhem.rs2.content.event.EventManager
            [pc: 55, pc: 76] local: delay index: 1 type: int
          Stack map table: number of frames 4
            [pc: 21, same]
            [pc: 39, same]
            [pc: 47, same]
            [pc: 65, append: {int}]
      
      // Method descriptor #14 ()V
      // Stack: 2, Locals: 1
      public void forceStop();
         0  aload_0 [this]
         1  getfield com.mayhem.rs2.content.event.EventManager.event : com.mayhem.rs2.content.event.Event [30]
         4  ifnonnull 8
         7  return
         8  aload_0 [this]
         9  getfield com.mayhem.rs2.content.event.EventManager.event : com.mayhem.rs2.content.event.Event [30]
        12  invokevirtual com.mayhem.rs2.content.event.Event.stop() : void [47]
        15  aload_0 [this]
        16  aconst_null
        17  putfield com.mayhem.rs2.content.event.EventManager.event : com.mayhem.rs2.content.event.Event [30]
        20  return
          Line numbers:
            [pc: 0, line: 59]
            [pc: 7, line: 60]
            [pc: 8, line: 61]
            [pc: 15, line: 62]
            [pc: 20, line: 63]
          Local variable table:
            [pc: 0, pc: 21] local: this index: 0 type: com.mayhem.rs2.content.event.EventManager
          Stack map table: number of frames 1
            [pc: 8, same]
      
      // Method descriptor #45 ()I
      // Stack: 1, Locals: 1
      public int getEventDelay();
        0  aload_0 [this]
        1  getfield com.mayhem.rs2.content.event.EventManager.delay : int [41]
        4  ireturn
          Line numbers:
            [pc: 0, line: 72]
          Local variable table:
            [pc: 0, pc: 5] local: this index: 0 type: com.mayhem.rs2.content.event.EventManager
      
      // Method descriptor #52 (I)V
      // Stack: 3, Locals: 2
      public void addEventDelay(int delay);
         0  aload_0 [this]
         1  dup
         2  getfield com.mayhem.rs2.content.event.EventManager.delay : int [41]
         5  iload_1 [delay]
         6  iadd
         7  putfield com.mayhem.rs2.content.event.EventManager.delay : int [41]
        10  return
          Line numbers:
            [pc: 0, line: 80]
            [pc: 10, line: 81]
          Local variable table:
            [pc: 0, pc: 11] local: this index: 0 type: com.mayhem.rs2.content.event.EventManager
            [pc: 0, pc: 11] local: delay index: 1 type: int
      
      // Method descriptor #52 (I)V
      // Stack: 2, Locals: 2
      public void setEventDelay(int delay);
        0  aload_0 [this]
        1  iload_1 [delay]
        2  putfield com.mayhem.rs2.content.event.EventManager.delay : int [41]
        5  return
          Line numbers:
            [pc: 0, line: 88]
            [pc: 5, line: 89]
          Local variable table:
            [pc: 0, pc: 6] local: this index: 0 type: com.mayhem.rs2.content.event.EventManager
            [pc: 0, pc: 6] local: delay index: 1 type: int
      
      // Method descriptor #55 (Lcom/mayhem/rs2/content/event/Event;)Z
      // Stack: 2, Locals: 2
      public boolean setEvent(com.mayhem.rs2.content.event.Event event);
         0  aload_0 [this]
         1  invokevirtual com.mayhem.rs2.content.event.EventManager.forceStop() : void [38]
         4  aload_1 [event]
         5  invokevirtual com.mayhem.rs2.content.event.Event.start() : boolean [56]
         8  ifne 13
        11  iconst_0
        12  ireturn
        13  aload_0 [this]
        14  aload_1 [event]
        15  putfield com.mayhem.rs2.content.event.EventManager.event : com.mayhem.rs2.content.event.Event [30]
        18  iconst_1
        19  ireturn
          Line numbers:
            [pc: 0, line: 97]
            [pc: 4, line: 98]
            [pc: 11, line: 99]
            [pc: 13, line: 100]
            [pc: 18, line: 101]
          Local variable table:
            [pc: 0, pc: 20] local: this index: 0 type: com.mayhem.rs2.content.event.EventManager
            [pc: 0, pc: 20] local: event index: 1 type: com.mayhem.rs2.content.event.Event
          Stack map table: number of frames 1
            [pc: 13, same]
      
      // Method descriptor #60 ()Lcom/mayhem/rs2/content/event/Event;
      // Stack: 1, Locals: 1
      public com.mayhem.rs2.content.event.Event getEvent();
        0  aload_0 [this]
        1  getfield com.mayhem.rs2.content.event.EventManager.event : com.mayhem.rs2.content.event.Event [30]
        4  areturn
          Line numbers:
            [pc: 0, line: 109]
          Local variable table:
            [pc: 0, pc: 5] local: this index: 0 type: com.mayhem.rs2.content.event.EventManager
      
      // Method descriptor #14 ()V
      // Stack: 6, Locals: 1
      public void appendTimer();
         0  aload_0 [this]
         1  getfield com.mayhem.rs2.content.event.EventManager.timer : java.util.Timer [23]
         4  new com.mayhem.rs2.content.event.EventManager$1 [62]
         7  dup
         8  aload_0 [this]
         9  invokespecial com.mayhem.rs2.content.event.EventManager$1(com.mayhem.rs2.content.event.EventManager) [64]
        12  ldc2_w <Long 7200000> [67]
        15  ldc2_w <Long 7200000> [67]
        18  invokevirtual java.util.Timer.scheduleAtFixedRate(java.util.TimerTask, long, long) : void [69]
        21  return
          Line numbers:
            [pc: 0, line: 116]
            [pc: 12, line: 141]
            [pc: 18, line: 116]
            [pc: 21, line: 142]
          Local variable table:
            [pc: 0, pc: 22] local: this index: 0 type: com.mayhem.rs2.content.event.EventManager
      
      // Method descriptor #74 (Lcom/mayhem/rs2/content/event/EventManager;)[I
      // Stack: 1, Locals: 1
      static synthetic int[] access$0(com.mayhem.rs2.content.event.EventManager arg0);
        0  aload_0 [arg0]
        1  getfield com.mayhem.rs2.content.event.EventManager.eventAmount : int[] [18]
        4  areturn
          Line numbers:
            [pc: 0, line: 19]
    
      Inner classes:
        [inner class info: #62 com/mayhem/rs2/content/event/EventManager$1, outer class info: #0
         inner name: #0, accessflags: 0 default]
    }
    there's also an EventManager$1.class which is as follows

    Code:
    // Compiled from EventManager.java (version 1.8 : 52.0, super bit)
    class com.mayhem.rs2.content.event.EventManager$1 extends java.util.TimerTask {
      
      // Field descriptor #6 Lcom/mayhem/rs2/content/event/EventManager;
      final synthetic com.mayhem.rs2.content.event.EventManager this$0;
      
      // Method descriptor #8 (Lcom/mayhem/rs2/content/event/EventManager;)V
      // Stack: 2, Locals: 2
      EventManager$1(com.mayhem.rs2.content.event.EventManager arg0);
         0  aload_0 [this]
         1  aload_1 [arg0]
         2  putfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
         5  aload_0 [this]
         6  invokespecial java.util.TimerTask() [12]
         9  return
          Line numbers:
            [pc: 0, line: 1]
            [pc: 5, line: 116]
          Local variable table:
            [pc: 0, pc: 10] local: this index: 0 type: new com.mayhem.rs2.content.event.EventManager(){}
      
      // Method descriptor #14 ()V
      // Stack: 4, Locals: 1
      public void run();
          0  iconst_2
          1  invokestatic com.mayhem.core.util.Utility.random(int) : int [20]
          4  tableswitch default: 215
              case 0: 32
              case 1: 93
              case 2: 154
         32  aload_0 [this]
         33  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
         36  new com.mayhem.rs2.content.event.impl.BossEvent [26]
         39  dup
         40  invokespecial com.mayhem.rs2.content.event.impl.BossEvent() [28]
         43  invokevirtual com.mayhem.rs2.content.event.EventManager.setEvent(com.mayhem.rs2.content.event.Event) : boolean [29]
         46  pop
         47  aload_0 [this]
         48  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
         51  invokestatic com.mayhem.rs2.content.event.EventManager.access$0(com.mayhem.rs2.content.event.EventManager) : int[] [35]
         54  iconst_1
         55  dup2
         56  iaload
         57  iconst_1
         58  iadd
         59  iastore
         60  getstatic java.lang.System.out : java.io.PrintStream [39]
         63  new java.lang.StringBuilder [45]
         66  dup
         67  ldc <String "Exectuing Event: BossEvent: #"> [47]
         69  invokespecial java.lang.StringBuilder(java.lang.String) [49]
         72  aload_0 [this]
         73  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
         76  invokestatic com.mayhem.rs2.content.event.EventManager.access$0(com.mayhem.rs2.content.event.EventManager) : int[] [35]
         79  iconst_0
         80  iaload
         81  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [52]
         84  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [56]
         87  invokevirtual java.io.PrintStream.println(java.lang.String) : void [60]
         90  goto 273
         93  aload_0 [this]
         94  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
         97  new com.mayhem.rs2.content.event.impl.DoubleGold [65]
        100  dup
        101  invokespecial com.mayhem.rs2.content.event.impl.DoubleGold() [67]
        104  invokevirtual com.mayhem.rs2.content.event.EventManager.setEvent(com.mayhem.rs2.content.event.Event) : boolean [29]
        107  pop
        108  aload_0 [this]
        109  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
        112  invokestatic com.mayhem.rs2.content.event.EventManager.access$0(com.mayhem.rs2.content.event.EventManager) : int[] [35]
        115  iconst_2
        116  dup2
        117  iaload
        118  iconst_1
        119  iadd
        120  iastore
        121  getstatic java.lang.System.out : java.io.PrintStream [39]
        124  new java.lang.StringBuilder [45]
        127  dup
        128  ldc <String "Exectuing Event: DoubleGold: #"> [68]
        130  invokespecial java.lang.StringBuilder(java.lang.String) [49]
        133  aload_0 [this]
        134  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
        137  invokestatic com.mayhem.rs2.content.event.EventManager.access$0(com.mayhem.rs2.content.event.EventManager) : int[] [35]
        140  iconst_1
        141  iaload
        142  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [52]
        145  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [56]
        148  invokevirtual java.io.PrintStream.println(java.lang.String) : void [60]
        151  goto 273
        154  aload_0 [this]
        155  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
        158  new com.mayhem.rs2.content.event.impl.DoubleExperience [70]
        161  dup
        162  invokespecial com.mayhem.rs2.content.event.impl.DoubleExperience() [72]
        165  invokevirtual com.mayhem.rs2.content.event.EventManager.setEvent(com.mayhem.rs2.content.event.Event) : boolean [29]
        168  pop
        169  aload_0 [this]
        170  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
        173  invokestatic com.mayhem.rs2.content.event.EventManager.access$0(com.mayhem.rs2.content.event.EventManager) : int[] [35]
        176  iconst_3
        177  dup2
        178  iaload
        179  iconst_1
        180  iadd
        181  iastore
        182  getstatic java.lang.System.out : java.io.PrintStream [39]
        185  new java.lang.StringBuilder [45]
        188  dup
        189  ldc <String "Exectuing Event: DoubleExperience: #"> [73]
        191  invokespecial java.lang.StringBuilder(java.lang.String) [49]
        194  aload_0 [this]
        195  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
        198  invokestatic com.mayhem.rs2.content.event.EventManager.access$0(com.mayhem.rs2.content.event.EventManager) : int[] [35]
        201  iconst_2
        202  iaload
        203  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [52]
        206  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [56]
        209  invokevirtual java.io.PrintStream.println(java.lang.String) : void [60]
        212  goto 273
        215  aload_0 [this]
        216  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
        219  new com.mayhem.rs2.content.event.impl.BossEvent [26]
        222  dup
        223  invokespecial com.mayhem.rs2.content.event.impl.BossEvent() [28]
        226  invokevirtual com.mayhem.rs2.content.event.EventManager.setEvent(com.mayhem.rs2.content.event.Event) : boolean [29]
        229  pop
        230  aload_0 [this]
        231  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
        234  invokestatic com.mayhem.rs2.content.event.EventManager.access$0(com.mayhem.rs2.content.event.EventManager) : int[] [35]
        237  iconst_1
        238  dup2
        239  iaload
        240  iconst_1
        241  iadd
        242  iastore
        243  getstatic java.lang.System.out : java.io.PrintStream [39]
        246  new java.lang.StringBuilder [45]
        249  dup
        250  ldc <String "Exectuing Event: BossEvent: #"> [47]
        252  invokespecial java.lang.StringBuilder(java.lang.String) [49]
        255  aload_0 [this]
        256  getfield com.mayhem.rs2.content.event.EventManager$1.this$0 : com.mayhem.rs2.content.event.EventManager [10]
        259  invokestatic com.mayhem.rs2.content.event.EventManager.access$0(com.mayhem.rs2.content.event.EventManager) : int[] [35]
        262  iconst_0
        263  iaload
        264  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [52]
        267  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [56]
        270  invokevirtual java.io.PrintStream.println(java.lang.String) : void [60]
        273  return
          Line numbers:
            [pc: 0, line: 119]
            [pc: 32, line: 121]
            [pc: 47, line: 122]
            [pc: 60, line: 123]
            [pc: 90, line: 124]
            [pc: 93, line: 126]
            [pc: 108, line: 127]
            [pc: 121, line: 128]
            [pc: 151, line: 129]
            [pc: 154, line: 131]
            [pc: 169, line: 132]
            [pc: 182, line: 133]
            [pc: 212, line: 134]
            [pc: 215, line: 136]
            [pc: 230, line: 137]
            [pc: 243, line: 138]
            [pc: 273, line: 140]
          Local variable table:
            [pc: 0, pc: 274] local: this index: 0 type: new com.mayhem.rs2.content.event.EventManager(){}
          Stack map table: number of frames 5
            [pc: 32, same]
            [pc: 93, same]
            [pc: 154, same]
            [pc: 215, same]
            [pc: 273, same]
    
      Inner classes:
        [inner class info: #1 com/mayhem/rs2/content/event/EventManager$1, outer class info: #0
         inner name: #0, accessflags: 0 default]
      Enclosing Method: #30  #79 com/mayhem/rs2/content/event/EventManager.appendTimer()V
    }
    Reply With Quote  
     

  7. #15  
    Donator


    Join Date
    Jul 2011
    Posts
    570
    Thanks given
    135
    Thanks received
    142
    Rep Power
    291
    Quote Originally Posted by BACKPAiiN View Post
    This is EventManager.class

    Code:
    }
    Post eventmanager.java in its entirety.

    Class means java file. If we say class we're referring to .java. .class files are pretty much impossible to interpret and is meant just for the compiler aka your pc to understand.
    Reply With Quote  
     

  8. Thankful user:


  9. #16  
    Registered Member
    Join Date
    May 2016
    Posts
    16
    Thanks given
    10
    Thanks received
    0
    Rep Power
    11
    Quote Originally Posted by Empathy View Post
    Post eventmanager.java in its entirety.

    Class means java file. If we say class we're referring to .java. Class files are pretty much impossible to interpret and is meant just for the compiler aka your pc to understand.
    Oh thanks for clearing that up! Here's eventmanager.java

    Code:
    package com.mayhem.rs2.content.event;
    
    import java.io.File;
    import java.util.Timer;
    import java.util.TimerTask;
    
    import com.mayhem.core.util.Utility;
    import com.mayhem.rs2.content.event.impl.*;
    import com.mayhem.rs2.entity.World;
    
    /**
     * @author Andy || ReverendDread Mar 29, 2017
     */
    public class EventManager {
    
    	//Fields
    	private Event event;
    	private int delay;
    	private int[] eventAmount = new int[3];
    	Timer timer = new Timer();
    	
    	/**
    	 * Constructs a new EventManager object.
    	 * @param player 
    	 */
    	public EventManager() {
    
    	}
    	
    	//Methods	
    	
    	/**
    	 * Processes task on {@link World} thread every game tick.
    	 */
    	public void process() {
    		if (event != null) {
    			if (!event.preStartupCheck()) {
    				forceStop();
    			}
    		}
    		if (delay > 0) {
    			delay--;
    			return;
    		}
    		if (event == null)
    			return;
    		int delay = event.process();
    		if (delay == -1) {
    			forceStop();
    			return;
    		}
    		this.delay += delay;
    	}
    	
    	/**
    	 * Force stops an event safely.
    	 */
    	public void forceStop() {
    		if (event == null)
    			return;
    		event.stop();
    		event = null;
    	}
    	
    	//Getters and setters
    	
    	/**
    	 * Gets the delay.
    	 * @return The delay.
    	 */
    	public int getEventDelay() {
    		return delay;
    	}
    	 
    	/**
    	 * Adds delay the the event processing. 
    	 * @param delay The event.
    	 */
    	public void addEventDelay(int delay) {
    		this.delay += delay;
    	}
    
    	/**
    	 * Sets the delay.
    	 * @param delay The delay.
    	 */
    	public void setEventDelay(int delay) {
    		this.delay = delay;
    	}
    	
    	/**
    	 * Sets the current event and stops the previous one.
    	 * @param event {@link Event} The event.
    	 * @return
    	 */
    	public boolean setEvent(Event event) {
    		forceStop();
    		if (!event.start())
    			return false;
    		this.event = event;
    		return true;
    	}
    	
    	/**
    	 * Gets the {@link Event} event.
    	 * @return the event.
    	 */
    	public Event getEvent() {
    		return event;
    	}
    	
    	/**
    	 * Starts event boss timer.
    	 */
    	public void appendTimer() {
    		timer.scheduleAtFixedRate(new TimerTask() {
    			@Override
    			public void run() {	
    				switch (Utility.random(2)) {
    					case 0:
    						setEvent(new BossEvent());
    					    eventAmount[1]++;
    					    System.out.println("Exectuing Event: " + "BossEvent: #" + eventAmount[0]);
    					    break;
    					case 1:
    						setEvent(new DoubleGold());
    					    eventAmount[2]++;
    					    System.out.println("Exectuing Event: " + "DoubleGold: #" + eventAmount[1]);
    						break;
    					case 2:
    						setEvent(new DoubleExperience());
    					    eventAmount[3]++;
    					    System.out.println("Exectuing Event: " + "DoubleExperience: #" + eventAmount[2]);
    						break;
    					default:
    						setEvent(new BossEvent());
    					    eventAmount[1]++;
    					    System.out.println("Exectuing Event: " + "BossEvent: #" + eventAmount[0]);
    				  }
    			  }
    		}, 120 * 60 * 1000, 120 * 60 * 1000); //Execute every 2 hours.
    	}
    	
    }
    Reply With Quote  
     

  10. #17  
    Donator


    Join Date
    Jul 2011
    Posts
    570
    Thanks given
    135
    Thanks received
    142
    Rep Power
    291
    Quote Originally Posted by BACKPAiiN View Post
    Oh thanks for clearing that up! Here's eventmanager.java

    Code:
    package com.mayhem.rs2.content.event;
    
    import java.io.File;
    import java.util.Timer;
    import java.util.TimerTask;
    
    import com.mayhem.core.util.Utility;
    import com.mayhem.rs2.content.event.impl.*;
    import com.mayhem.rs2.entity.World;
    
    /**
     * @author Andy || ReverendDread Mar 29, 2017
     */
    public class EventManager {
    
    	//Fields
    	private Event event;
    	private int delay;
    	private int[] eventAmount = new int[3];
    	Timer timer = new Timer();
    	
    	/**
    	 * Constructs a new EventManager object.
    	 * @param player 
    	 */
    	public EventManager() {
    
    	}
    	
    	//Methods	
    	
    	/**
    	 * Processes task on {@link World} thread every game tick.
    	 */
    	public void process() {
    		if (event != null) {
    			if (!event.preStartupCheck()) {
    				forceStop();
    			}
    		}
    		if (delay > 0) {
    			delay--;
    			return;
    		}
    		if (event == null)
    			return;
    		int delay = event.process();
    		if (delay == -1) {
    			forceStop();
    			return;
    		}
    		this.delay += delay;
    	}
    	
    	/**
    	 * Force stops an event safely.
    	 */
    	public void forceStop() {
    		if (event == null)
    			return;
    		event.stop();
    		event = null;
    	}
    	
    	//Getters and setters
    	
    	/**
    	 * Gets the delay.
    	 * @return The delay.
    	 */
    	public int getEventDelay() {
    		return delay;
    	}
    	 
    	/**
    	 * Adds delay the the event processing. 
    	 * @param delay The event.
    	 */
    	public void addEventDelay(int delay) {
    		this.delay += delay;
    	}
    
    	/**
    	 * Sets the delay.
    	 * @param delay The delay.
    	 */
    	public void setEventDelay(int delay) {
    		this.delay = delay;
    	}
    	
    	/**
    	 * Sets the current event and stops the previous one.
    	 * @param event {@link Event} The event.
    	 * @return
    	 */
    	public boolean setEvent(Event event) {
    		forceStop();
    		if (!event.start())
    			return false;
    		this.event = event;
    		return true;
    	}
    	
    	/**
    	 * Gets the {@link Event} event.
    	 * @return the event.
    	 */
    	public Event getEvent() {
    		return event;
    	}
    	
    	/**
    	 * Starts event boss timer.
    	 */
    	public void appendTimer() {
    		timer.scheduleAtFixedRate(new TimerTask() {
    			@Override
    			public void run() {	
    				switch (Utility.random(2)) {
    					case 0:
    						setEvent(new BossEvent());
    					    eventAmount[1]++;
    					    System.out.println("Exectuing Event: " + "BossEvent: #" + eventAmount[0]);
    					    break;
    					case 1:
    						setEvent(new DoubleGold());
    					    eventAmount[2]++;
    					    System.out.println("Exectuing Event: " + "DoubleGold: #" + eventAmount[1]);
    						break;
    					case 2:
    						setEvent(new DoubleExperience());
    					    eventAmount[3]++;
    					    System.out.println("Exectuing Event: " + "DoubleExperience: #" + eventAmount[2]);
    						break;
    					default:
    						setEvent(new BossEvent());
    					    eventAmount[1]++;
    					    System.out.println("Exectuing Event: " + "BossEvent: #" + eventAmount[0]);
    				  }
    			  }
    		}, 120 * 60 * 1000, 120 * 60 * 1000); //Execute every 2 hours.
    	}
    	
    }
    Code:
    if (delay == -1) {
    			forceStop();
    			return;
    		}
    Doing return -1; should work. Also you don't need to call stop() it does it on its own.
    Reply With Quote  
     

  11. Thankful user:


  12. #18  
    Registered Member
    Join Date
    May 2016
    Posts
    16
    Thanks given
    10
    Thanks received
    0
    Rep Power
    11
    Quote Originally Posted by Empathy View Post
    Code:
    if (delay == -1) {
    			forceStop();
    			return;
    		}
    Doing return -1; should work. Also you don't need to call stop() it does it on its own.
    I'll double check.

    Quote Originally Posted by Empathy View Post
    Code:
    if (delay == -1) {
    			forceStop();
    			return;
    		}
    Doing return -1; should work. Also you don't need to call stop() it does it on its own.
    Thanks a lot it worked! I hope that wasn't too frustrating for you as i'm aware my java knowledge is minimal, much appreciated!

    Also to clarify, should that fix still post the message once on double exp ending and also when it begins?
    Reply With Quote  
     

  13. #19  
    Respected Member


    Join Date
    Jan 2009
    Posts
    5,743
    Thanks given
    1,162
    Thanks received
    3,603
    Rep Power
    5000
    Quote Originally Posted by BACKPAiiN View Post
    I'll double check.



    Thanks a lot it worked! I hope that wasn't too frustrating for you as i'm aware my java knowledge is minimal, much appreciated!

    Also to clarify, should that fix still post the message once on double exp ending and also when it begins?
    it will fix any of the repeated messages you had
    Reply With Quote  
     

  14. Thankful user:


Page 2 of 2 FirstFirst 12

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Replies: 4
    Last Post: 07-29-2009, 05:51 AM
  2. spamming in the spam section
    By Simon in forum Complaints
    Replies: 4
    Last Post: 06-16-2009, 02:14 AM
  3. PLAYER has just logged in || Text on-screen
    By Hyperventilate in forum Help
    Replies: 12
    Last Post: 04-10-2009, 09:12 PM
  4. Replies: 2
    Last Post: 03-31-2009, 09:47 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •