diff --git a/pom.xml b/pom.xml
index 52605daa..38855197 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.massivecraft
Factions
- 1.6.9.5-2.3.6-RC
+ 1.6.9.5-2.3.7-RC
jar
SaberFactions
diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdShow.java b/src/main/java/com/massivecraft/factions/cmd/CmdShow.java
index 43204fc8..d1c0b62e 100644
--- a/src/main/java/com/massivecraft/factions/cmd/CmdShow.java
+++ b/src/main/java/com/massivecraft/factions/cmd/CmdShow.java
@@ -8,11 +8,9 @@ import com.massivecraft.factions.zcore.util.TL;
import com.massivecraft.factions.zcore.util.TagReplacer;
import com.massivecraft.factions.zcore.util.TagUtil;
import mkremins.fanciful.FancyMessage;
-import org.bukkit.scheduler.BukkitScheduler;
import java.util.ArrayList;
import java.util.List;
-import java.util.Objects;
public class CmdShow extends FCommand {
@@ -85,42 +83,38 @@ public class CmdShow extends FCommand {
return; // we only show header for non-normal factions
}
- List finalShow = show;
- Faction finalFaction = faction;
List fancy = new ArrayList<>();
- instance.getServer().getScheduler().runTaskAsynchronously(instance, () -> {
- for (String raw : finalShow) {
- String parsed = TagUtil.parsePlain(finalFaction, context.fPlayer, raw); // use relations
- if (parsed == null) {
- continue; // Due to minimal f show.
- }
-
- if (context.fPlayer != null) {
- parsed = TagUtil.parsePlaceholders(context.fPlayer.getPlayer(), parsed);
- }
-
- if (TagUtil.hasFancy(parsed)) {
- List localFancy = TagUtil.parseFancy(finalFaction, context.fPlayer, parsed);
- if (localFancy != null)
- fancy.addAll(localFancy);
-
- continue;
- }
- if (!parsed.contains("{notFrozen}") && !parsed.contains("{notPermanent}")) {
- if (parsed.contains("{ig}")) {
- // replaces all variables with no home TL
- parsed = parsed.substring(0, parsed.indexOf("{ig}")) + TL.COMMAND_SHOW_NOHOME.toString();
- }
- if (parsed.contains("%")) {
- parsed = parsed.replaceAll("%", ""); // Just in case it got in there before we disallowed it.
- }
- parsed = FactionsPlugin.getInstance().txt.parse(parsed);
- FancyMessage localFancy = instance.txt.parseFancy(parsed);
- fancy.add(localFancy);
- }
+ for (String raw : show) {
+ String parsed = TagUtil.parsePlain(faction, context.fPlayer, raw); // use relations
+ if (parsed == null) {
+ continue; // Due to minimal f show.
}
- instance.getServer().getScheduler().runTask(instance, () -> context.sendFancyMessage(fancy));
- });
+
+ if (context.fPlayer != null) {
+ parsed = TagUtil.parsePlaceholders(context.fPlayer.getPlayer(), parsed);
+ }
+
+ if (TagUtil.hasFancy(parsed)) {
+ List localFancy = TagUtil.parseFancy(faction, context.fPlayer, parsed);
+ if (localFancy != null)
+ fancy.addAll(localFancy);
+
+ continue;
+ }
+ if (!parsed.contains("{notFrozen}") && !parsed.contains("{notPermanent}")) {
+ if (parsed.contains("{ig}")) {
+ // replaces all variables with no home TL
+ parsed = parsed.substring(0, parsed.indexOf("{ig}")) + TL.COMMAND_SHOW_NOHOME.toString();
+ }
+ if (parsed.contains("%")) {
+ parsed = parsed.replaceAll("%", ""); // Just in case it got in there before we disallowed it.
+ }
+ parsed = FactionsPlugin.getInstance().txt.parse(parsed);
+ FancyMessage localFancy = instance.txt.parseFancy(parsed);
+ fancy.add(localFancy);
+ }
+ }
+ instance.getServer().getScheduler().runTask(instance, () -> context.sendFancyMessage(fancy));
}
@Override
diff --git a/src/main/java/com/massivecraft/factions/event/PowerRegenEvent.java b/src/main/java/com/massivecraft/factions/event/PowerRegenEvent.java
index eec49cf8..7189415c 100644
--- a/src/main/java/com/massivecraft/factions/event/PowerRegenEvent.java
+++ b/src/main/java/com/massivecraft/factions/event/PowerRegenEvent.java
@@ -1,6 +1,5 @@
package com.massivecraft.factions.event;
-import com.massivecraft.factions.Conf;
import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.Faction;
import org.bukkit.event.Cancellable;
@@ -10,51 +9,20 @@ import org.bukkit.event.Cancellable;
*/
public class PowerRegenEvent extends FactionPlayerEvent implements Cancellable {
- /**
- * @author Illyria Team
- */
-
private boolean cancelled = false;
- private double modified = 0;
+ private double delta;
- public PowerRegenEvent(Faction f, FPlayer p) {
+ public PowerRegenEvent(Faction f, FPlayer p, double delta) {
super(f, p);
+ this.delta = delta;
}
- /**
- * Get the amount of power this player will regen by default
- *
- * @return power amount gained as a Double.
- */
- public double getDefaultPowerGained() {
- return fPlayer.getMillisPassed() * Conf.powerPerMinute / 60000;
+ public double getDelta() {
+ return delta;
}
- /**
- * Get the amount of custom power this player will gain. Ignored if less than or equal to 0.
- *
- * @return Custom power as a double
- */
- public double getCustomPower() {
- return modified;
- }
-
- /**
- * Set the custom power gain for this event.
- *
- * @param gain Amount of power to be added to player.
- */
- public void setCustomPower(Double gain) {
- modified = gain;
- }
-
- /**
- * Get if we will be using the custom power gain instead of default.
- *
- * @return If we will process the event custom returned as a Boolean.
- */
- public boolean usingCustomPower() {
- return modified > 0;
+ public void setDelta(double delta) {
+ this.delta = delta;
}
@Override
@@ -67,4 +35,4 @@ public class PowerRegenEvent extends FactionPlayerEvent implements Cancellable {
this.cancelled = c;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsEntityListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsEntityListener.java
index f9f25d3b..5f055dbf 100644
--- a/src/main/java/com/massivecraft/factions/listeners/FactionsEntityListener.java
+++ b/src/main/java/com/massivecraft/factions/listeners/FactionsEntityListener.java
@@ -259,8 +259,6 @@ public class FactionsEntityListener implements Listener {
private boolean checkExplosionForBlock(Entity boomer, Block block) {
Faction faction = Board.getInstance().getFactionAt(new FLocation(block.getLocation()));
- if(FactionsPlugin.getInstance().getTimerManager().graceTimer.getRemaining() > 0) return false;
-
if (faction.noExplosionsInTerritory() || (faction.isPeaceful() && Conf.peacefulTerritoryDisableBoom))
return false;
// faction is peaceful and has explosions set to disabled
diff --git a/src/main/java/com/massivecraft/factions/zcore/MPlugin.java b/src/main/java/com/massivecraft/factions/zcore/MPlugin.java
index f4237482..cc7c4a9b 100644
--- a/src/main/java/com/massivecraft/factions/zcore/MPlugin.java
+++ b/src/main/java/com/massivecraft/factions/zcore/MPlugin.java
@@ -176,15 +176,13 @@ public abstract class MPlugin extends JavaPlugin {
this.getServer().getScheduler().cancelTask(saveTask);
saveTask = null;
}
-
- this.getServer().getScheduler().cancelTasks(this);
-
// only save data if plugin actually loaded successfully
if (loadSuccessful) {
Factions.getInstance().forceSave();
FPlayers.getInstance().forceSave();
Board.getInstance().forceSave();
}
+
log("Disabled");
}
diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java
index 1b875826..14f4623e 100644
--- a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java
+++ b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java
@@ -663,25 +663,34 @@ public abstract class MemoryFPlayer implements FPlayer {
public void updatePower() {
if (this.isOffline()) {
losePowerFromBeingOffline();
- if (!Conf.powerRegenOffline) return;
+ if (!Conf.powerRegenOffline) {
+ return;
+ }
} else if (hasFaction() && getFaction().isPowerFrozen()) {
return; // Don't let power regen if faction power is frozen.
}
long now = System.currentTimeMillis();
- this.millisPassed = now - this.lastPowerUpdateTime;
+ long millisPassed = now - this.lastPowerUpdateTime;
this.lastPowerUpdateTime = now;
Player thisPlayer = this.getPlayer();
- if (thisPlayer != null && thisPlayer.isDead())
+ if (thisPlayer != null && thisPlayer.isDead()) {
return; // don't let dead players regain power until they respawn
- PowerRegenEvent powerRegenEvent = new PowerRegenEvent(getFaction(), this);
- Bukkit.getScheduler().runTask(FactionsPlugin.getInstance(), () -> Bukkit.getServer().getPluginManager().callEvent(powerRegenEvent));
+ }
- if (!powerRegenEvent.isCancelled())
- if (!powerRegenEvent.usingCustomPower())
- this.alterPower(millisPassed * Conf.powerPerMinute / 60000); // millisPerMinute : 60 * 1000
- else this.alterPower(+powerRegenEvent.getCustomPower());
+ double delta = millisPassed * Conf.powerPerMinute / 60000; // millisPerMinute : 60 * 1000
+ if (Bukkit.getPluginManager().getPlugin("FactionsPlugin") != null) {
+ Bukkit.getScheduler().runTask(FactionsPlugin.getInstance(), () -> {
+ PowerRegenEvent powerRegenEvent = new PowerRegenEvent(getFaction(), this, delta);
+ Bukkit.getServer().getPluginManager().callEvent(powerRegenEvent);
+ if (!powerRegenEvent.isCancelled()) {
+ this.alterPower(powerRegenEvent.getDelta());
+ }
+ });
+ } else {
+ this.alterPower(delta);
+ }
}
public void losePowerFromBeingOffline() {
diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java b/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java
index 1b271c0d..335d8f92 100644
--- a/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java
+++ b/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java
@@ -65,10 +65,14 @@ public class TextUtil {
text = "";
}
ChatColor tempColor = ChatColor.getByChar(chars[i + 1]);
- if (tempColor.isColor()) {
- color = tempColor;
- } else {
- style = tempColor;
+ if (tempColor != null) {
+ if (tempColor == ChatColor.RESET) {
+ color = ChatColor.WHITE;
+ } else if (tempColor.isColor()) {
+ color = tempColor;
+ } else {
+ style = tempColor;
+ }
}
i++; // skip color char
} else {
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 5a889bca..3c5e62ba 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -1250,7 +1250,7 @@ fupgrades:
Members:
Max-Level: 3
Members-Limit:
- level-1: 5 #The Number Of Members It Will Increase By
+ level-1: 5 #The Number Of Members It Will Increase By
level-2: 10
level-3: 15
Cost: