Changes

148 bytes added ,  21:09, 2 August 2021
Update to 1.17
Line 1: Line 1: −
An <code>Effect</code> is what handles the specific logic on the entity it is on. For example, <code>Effects#SPEED</code> adds an attribute modifier that affects the movement speed while <code>Effects#WITHER</code> attacks the entity from a <code>DamageSource</code> whenever the potion effect is ready to be applied.
+
A <code>MobEffect</code> is what handles the specific logic on the entity it is on. For example, <code>MobEffects#MOVEMENT_SPEED</code> adds an attribute modifier that affects the movement speed while <code>MobEffects#WITHER</code> attacks the entity from a <code>DamageSource</code> whenever the mob effect is ready to be applied.
   −
== Creating an <code>Effect</code> ==
+
== Creating a <code>MobEffect</code> ==
   −
You can create an <code>Effect</code> using two methods. The first creates a regular <code>Effect</code> and applies the logic in some event method. The other method involves extending the <code>Effect</code> class and overriding specific methods when needed. This documentation will focus on the second method.
+
You can create a <code>MobEffect</code> using two methods. The first creates a regular <code>MobEffect</code> and applies the logic in some event method. The other method involves extending the <code>MobEffect</code> class and overriding specific methods when needed. This documentation will focus on the second method.
   −
There are four methods that are important depending on the type of effect you are creating. In each scenario, you should take into account whether you should extend <code>Effect</code> or <code>InstantEffect</code>.
+
There are four methods that are important depending on the type of mob effect you are creating. In each scenario, you should take into account whether you should extend <code>MobEffect</code> or <code>InstantenousMobEffect</code>.
    
Here are the classes and methods to review:
 
Here are the classes and methods to review:
Line 12: Line 12:  
!Class !!Usage  
 
!Class !!Usage  
 
|-
 
|-
|  <code>Effect</code>  ||  The basic effect class. Should be used if the effect happens over time.  
+
|  <code>MobEffect</code>  ||  The basic mob effect class. Should be used if the mob effect happens over time.  
 
|-
 
|-
|  <code>InstantEffect</code>  ||  An extended version of the effect class. Should be used if the effect happens only once and instantly.  
+
|  <code>InstantenousMobEffect</code>  ||  An extended version of the mob effect class. Should be used if the mob effect happens only once and instantly.  
 
|-
 
|-
 
|}
 
|}
Line 21: Line 21:  
!Method !!Description  
 
!Method !!Description  
 
|-
 
|-
|  <code>isReady</code>  ||  Determines how fast an effect should call <code>performEffect</code> while applied. This is overridden by <code>InstantEffect</code> to occur after one tick. If too fast, the server will not have enough time to execute the damage on the entity.  
+
|  <code>isDurationEffectTick</code>  ||  Determines how fast a mob effect should call <code>applyEffectTick</code> while applied. This is overridden by <code>InstantenousMobEffect</code> to occur after one tick. If too fast, the server will not have enough time to execute the damage on the entity.  
 
|-
 
|-
|  <code>performEffect</code>  ||  Executes the logic on the entity when called.  
+
|  <code>applyEffectTick</code>  ||  Executes the logic on the entity when called.  
 
|-
 
|-
|  <code>isInstant</code>  ||  Determines if the effect is instant. Returns true in <code>InstantEffect</code>.  
+
|  <code>isInstantenous</code>  ||  Determines if the mob effect is instant. Returns true in <code>InstantenousMobEffect</code>.  
 
|-
 
|-
|  <code>affectEntity</code>  ||  Executes the logic on the entity when called. <code>isInstant</code> must return true for this to be called.  
+
|  <code>applyInstantenousEffect</code>  ||  Executes the logic on the entity when called. <code>isInstantenous</code> must return true for this to be called.  
 
|-
 
|-
 
|}
 
|}
   −
If you are only modifying an entity <code>Attribute</code>, then there is no need to extend the class. When constructing the effect instance, chain <code>addAttributeModifier</code> and select the specific attribute, it's unique id, the amount to affect by, and the operation to apply the amount with.
+
If you are only modifying an entity <code>Attribute</code>, then there is no need to extend the class. When constructing the mob effect instance, chain <code>addAttributeModifier</code> and select the specific attribute, it's unique id, the amount to affect by, and the operation to apply the amount with.
   −
Effects need to be [[Registration|registered]].
+
Mob Effects need to be [[Registration|registered]].
   −
== <code>EffectInstance</code> ==
+
== <code>MobEffectInstance</code> ==
   −
To allow greater customization, each effect is passed in as an <code>EffectInstance</code> which allows the user to specify additional information for what the effect should do.
+
To allow greater customization, each mob effect is passed in as a <code>MobEffectInstance</code> which allows the user to specify additional information for what the mob effect should do.
       
[[Category:Game Effects]]
 
[[Category:Game Effects]]