Merge pull request #117 from SaberLLC/beta

Beta
This commit is contained in:
Driftay 2020-05-18 04:31:06 -04:00 committed by GitHub
commit cf71603eeb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 67 additions and 96 deletions

View File

@ -4,7 +4,7 @@
<groupId>com.massivecraft</groupId> <groupId>com.massivecraft</groupId>
<artifactId>Factions</artifactId> <artifactId>Factions</artifactId>
<version>1.6.9.5-2.3.6-RC</version> <version>1.6.9.5-2.3.7-RC</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>SaberFactions</name> <name>SaberFactions</name>

View File

@ -8,11 +8,9 @@ import com.massivecraft.factions.zcore.util.TL;
import com.massivecraft.factions.zcore.util.TagReplacer; import com.massivecraft.factions.zcore.util.TagReplacer;
import com.massivecraft.factions.zcore.util.TagUtil; import com.massivecraft.factions.zcore.util.TagUtil;
import mkremins.fanciful.FancyMessage; import mkremins.fanciful.FancyMessage;
import org.bukkit.scheduler.BukkitScheduler;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
public class CmdShow extends FCommand { public class CmdShow extends FCommand {
@ -85,12 +83,9 @@ public class CmdShow extends FCommand {
return; // we only show header for non-normal factions return; // we only show header for non-normal factions
} }
List<String> finalShow = show;
Faction finalFaction = faction;
List<FancyMessage> fancy = new ArrayList<>(); List<FancyMessage> fancy = new ArrayList<>();
instance.getServer().getScheduler().runTaskAsynchronously(instance, () -> { for (String raw : show) {
for (String raw : finalShow) { String parsed = TagUtil.parsePlain(faction, context.fPlayer, raw); // use relations
String parsed = TagUtil.parsePlain(finalFaction, context.fPlayer, raw); // use relations
if (parsed == null) { if (parsed == null) {
continue; // Due to minimal f show. continue; // Due to minimal f show.
} }
@ -100,7 +95,7 @@ public class CmdShow extends FCommand {
} }
if (TagUtil.hasFancy(parsed)) { if (TagUtil.hasFancy(parsed)) {
List<FancyMessage> localFancy = TagUtil.parseFancy(finalFaction, context.fPlayer, parsed); List<FancyMessage> localFancy = TagUtil.parseFancy(faction, context.fPlayer, parsed);
if (localFancy != null) if (localFancy != null)
fancy.addAll(localFancy); fancy.addAll(localFancy);
@ -120,7 +115,6 @@ public class CmdShow extends FCommand {
} }
} }
instance.getServer().getScheduler().runTask(instance, () -> context.sendFancyMessage(fancy)); instance.getServer().getScheduler().runTask(instance, () -> context.sendFancyMessage(fancy));
});
} }
@Override @Override

View File

@ -1,6 +1,5 @@
package com.massivecraft.factions.event; package com.massivecraft.factions.event;
import com.massivecraft.factions.Conf;
import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.Faction; import com.massivecraft.factions.Faction;
import org.bukkit.event.Cancellable; import org.bukkit.event.Cancellable;
@ -10,51 +9,20 @@ import org.bukkit.event.Cancellable;
*/ */
public class PowerRegenEvent extends FactionPlayerEvent implements Cancellable { public class PowerRegenEvent extends FactionPlayerEvent implements Cancellable {
/**
* @author Illyria Team
*/
private boolean cancelled = false; 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); super(f, p);
this.delta = delta;
} }
/** public double getDelta() {
* Get the amount of power this player will regen by default return delta;
*
* @return power amount gained as a Double.
*/
public double getDefaultPowerGained() {
return fPlayer.getMillisPassed() * Conf.powerPerMinute / 60000;
} }
/** public void setDelta(double delta) {
* Get the amount of custom power this player will gain. Ignored if less than or equal to 0. this.delta = delta;
*
* @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;
} }
@Override @Override

View File

@ -259,8 +259,6 @@ public class FactionsEntityListener implements Listener {
private boolean checkExplosionForBlock(Entity boomer, Block block) { private boolean checkExplosionForBlock(Entity boomer, Block block) {
Faction faction = Board.getInstance().getFactionAt(new FLocation(block.getLocation())); 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)) if (faction.noExplosionsInTerritory() || (faction.isPeaceful() && Conf.peacefulTerritoryDisableBoom))
return false; return false;
// faction is peaceful and has explosions set to disabled // faction is peaceful and has explosions set to disabled

View File

@ -176,15 +176,13 @@ public abstract class MPlugin extends JavaPlugin {
this.getServer().getScheduler().cancelTask(saveTask); this.getServer().getScheduler().cancelTask(saveTask);
saveTask = null; saveTask = null;
} }
this.getServer().getScheduler().cancelTasks(this);
// only save data if plugin actually loaded successfully // only save data if plugin actually loaded successfully
if (loadSuccessful) { if (loadSuccessful) {
Factions.getInstance().forceSave(); Factions.getInstance().forceSave();
FPlayers.getInstance().forceSave(); FPlayers.getInstance().forceSave();
Board.getInstance().forceSave(); Board.getInstance().forceSave();
} }
log("Disabled"); log("Disabled");
} }

View File

@ -663,25 +663,34 @@ public abstract class MemoryFPlayer implements FPlayer {
public void updatePower() { public void updatePower() {
if (this.isOffline()) { if (this.isOffline()) {
losePowerFromBeingOffline(); losePowerFromBeingOffline();
if (!Conf.powerRegenOffline) return; if (!Conf.powerRegenOffline) {
return;
}
} else if (hasFaction() && getFaction().isPowerFrozen()) { } else if (hasFaction() && getFaction().isPowerFrozen()) {
return; // Don't let power regen if faction power is frozen. return; // Don't let power regen if faction power is frozen.
} }
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
this.millisPassed = now - this.lastPowerUpdateTime; long millisPassed = now - this.lastPowerUpdateTime;
this.lastPowerUpdateTime = now; this.lastPowerUpdateTime = now;
Player thisPlayer = this.getPlayer(); 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 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()) double delta = millisPassed * Conf.powerPerMinute / 60000; // millisPerMinute : 60 * 1000
if (!powerRegenEvent.usingCustomPower()) if (Bukkit.getPluginManager().getPlugin("FactionsPlugin") != null) {
this.alterPower(millisPassed * Conf.powerPerMinute / 60000); // millisPerMinute : 60 * 1000 Bukkit.getScheduler().runTask(FactionsPlugin.getInstance(), () -> {
else this.alterPower(+powerRegenEvent.getCustomPower()); 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() { public void losePowerFromBeingOffline() {

View File

@ -65,11 +65,15 @@ public class TextUtil {
text = ""; text = "";
} }
ChatColor tempColor = ChatColor.getByChar(chars[i + 1]); ChatColor tempColor = ChatColor.getByChar(chars[i + 1]);
if (tempColor.isColor()) { if (tempColor != null) {
if (tempColor == ChatColor.RESET) {
color = ChatColor.WHITE;
} else if (tempColor.isColor()) {
color = tempColor; color = tempColor;
} else { } else {
style = tempColor; style = tempColor;
} }
}
i++; // skip color char i++; // skip color char
} else { } else {
text += chars[i]; text += chars[i];