mirror of
https://github.com/OvercastNetwork/ProjectAres.git
synced 2025-04-11 22:56:08 +02:00
Fix tokens not being removed from the player when a poll succeeds if the player leaves
This commit is contained in:
parent
46d335bf0e
commit
ae8a175eaa
27
PGM/src/main/java/tc/oc/pgm/kits/GravityKit.java
Normal file
27
PGM/src/main/java/tc/oc/pgm/kits/GravityKit.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package tc.oc.pgm.kits;
|
||||||
|
|
||||||
|
import tc.oc.pgm.match.MatchPlayer;
|
||||||
|
|
||||||
|
public class GravityKit extends Kit.Impl {
|
||||||
|
|
||||||
|
boolean gravity;
|
||||||
|
|
||||||
|
public GravityKit(boolean gravity) {
|
||||||
|
this.gravity = gravity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(MatchPlayer player, boolean force, ItemKitApplicator items) {
|
||||||
|
player.getBukkit().setGravity(gravity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isRemovable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove(MatchPlayer player) {
|
||||||
|
player.getBukkit().setGravity(true);
|
||||||
|
}
|
||||||
|
}
|
@ -150,6 +150,11 @@ public class KitDefinitionParser extends MagicMethodFeatureParser<Kit> implement
|
|||||||
return new FlyKit(canFly, flying, flySpeedMultiplier);
|
return new FlyKit(canFly, flying, flySpeedMultiplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@MethodParser
|
||||||
|
public Kit gravity(Element el) throws InvalidXMLException {
|
||||||
|
return new GravityKit(XMLUtils.parseBoolean(el, true));
|
||||||
|
}
|
||||||
|
|
||||||
@MethodParser({"effect", "potion"})
|
@MethodParser({"effect", "potion"})
|
||||||
public Kit effect(Element el) throws InvalidXMLException {
|
public Kit effect(Element el) throws InvalidXMLException {
|
||||||
return new PotionKit(itemParser.parsePotionEffect(el));
|
return new PotionKit(itemParser.parsePotionEffect(el));
|
||||||
|
@ -4,7 +4,9 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import tc.oc.api.docs.User;
|
||||||
import tc.oc.commons.bukkit.tokens.TokenUtil;
|
import tc.oc.commons.bukkit.tokens.TokenUtil;
|
||||||
|
import tc.oc.pgm.Config;
|
||||||
import tc.oc.pgm.mutation.Mutation;
|
import tc.oc.pgm.mutation.Mutation;
|
||||||
import tc.oc.pgm.mutation.MutationMatchModule;
|
import tc.oc.pgm.mutation.MutationMatchModule;
|
||||||
|
|
||||||
@ -14,6 +16,7 @@ public class PollMutation extends Poll {
|
|||||||
private CommandSender sender;
|
private CommandSender sender;
|
||||||
private MutationMatchModule module;
|
private MutationMatchModule module;
|
||||||
private String mutationName;
|
private String mutationName;
|
||||||
|
private User user;
|
||||||
|
|
||||||
public PollMutation(PollManager pollManager, Server server, CommandSender sender, Mutation mutation,
|
public PollMutation(PollManager pollManager, Server server, CommandSender sender, Mutation mutation,
|
||||||
MutationMatchModule module) {
|
MutationMatchModule module) {
|
||||||
@ -22,6 +25,9 @@ public class PollMutation extends Poll {
|
|||||||
this.sender = sender;
|
this.sender = sender;
|
||||||
this.module = module;
|
this.module = module;
|
||||||
this.mutationName = mutationName;
|
this.mutationName = mutationName;
|
||||||
|
if (sender instanceof Player) {
|
||||||
|
user = TokenUtil.getUser((Player)sender);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -29,9 +35,8 @@ public class PollMutation extends Poll {
|
|||||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(),
|
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(),
|
||||||
"mutation enable -q " + mutation.name().toLowerCase());
|
"mutation enable -q " + mutation.name().toLowerCase());
|
||||||
|
|
||||||
if (sender instanceof Player) {
|
if (user != null) {
|
||||||
Player player = (Player) sender;
|
TokenUtil.giveMutationTokens(user, -1);
|
||||||
TokenUtil.giveMutationTokens(TokenUtil.getUser(player), -1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package tc.oc.pgm.polls;
|
|||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import tc.oc.api.docs.User;
|
||||||
import tc.oc.commons.bukkit.tokens.TokenUtil;
|
import tc.oc.commons.bukkit.tokens.TokenUtil;
|
||||||
import tc.oc.pgm.map.PGMMap;
|
import tc.oc.pgm.map.PGMMap;
|
||||||
import tc.oc.pgm.match.MatchManager;
|
import tc.oc.pgm.match.MatchManager;
|
||||||
@ -11,20 +12,23 @@ public class PollNextMap extends Poll {
|
|||||||
private final MatchManager mm;
|
private final MatchManager mm;
|
||||||
private final PGMMap nextMap;
|
private final PGMMap nextMap;
|
||||||
private CommandSender sender;
|
private CommandSender sender;
|
||||||
|
private User user;
|
||||||
|
|
||||||
public PollNextMap(PollManager pollManager, Server server, CommandSender sender, String initiator, MatchManager mm, PGMMap nextMap) {
|
public PollNextMap(PollManager pollManager, Server server, CommandSender sender, String initiator, MatchManager mm, PGMMap nextMap) {
|
||||||
super(pollManager, server, initiator);
|
super(pollManager, server, initiator);
|
||||||
this.mm = mm;
|
this.mm = mm;
|
||||||
this.nextMap = nextMap;
|
this.nextMap = nextMap;
|
||||||
this.sender = sender;
|
this.sender = sender;
|
||||||
|
if (sender instanceof Player) {
|
||||||
|
user = TokenUtil.getUser((Player)sender);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executeAction() {
|
public void executeAction() {
|
||||||
this.mm.setNextMap(this.nextMap);
|
this.mm.setNextMap(this.nextMap);
|
||||||
if (sender instanceof Player) {
|
if (user != null) {
|
||||||
Player player = (Player) sender;
|
TokenUtil.giveMapTokens(user, -1);
|
||||||
TokenUtil.giveMapTokens(TokenUtil.getUser(player), -1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ public class Dead extends Spawning {
|
|||||||
super.enterState();
|
super.enterState();
|
||||||
|
|
||||||
player.clearInventory();
|
player.clearInventory();
|
||||||
|
bukkit.setGravity(true);
|
||||||
|
|
||||||
if(player.isVisible()) NMSHacks.playDeathAnimation(player.getBukkit());
|
if(player.isVisible()) NMSHacks.playDeathAnimation(player.getBukkit());
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ public class Joining extends Spawning {
|
|||||||
@Override
|
@Override
|
||||||
public void enterState() {
|
public void enterState() {
|
||||||
player.setVisible(false);
|
player.setVisible(false);
|
||||||
|
bukkit.setGravity(true);
|
||||||
|
|
||||||
super.enterState();
|
super.enterState();
|
||||||
trySpawn();
|
trySpawn();
|
||||||
|
@ -16,6 +16,7 @@ public class Participating extends State {
|
|||||||
@Override
|
@Override
|
||||||
public void enterState() {
|
public void enterState() {
|
||||||
super.enterState();
|
super.enterState();
|
||||||
|
bukkit.setGravity(true);
|
||||||
permissionAttachment = bukkit.addAttachment(smm.getMatch().getPlugin(), Permissions.PARTICIPANT, true);
|
permissionAttachment = bukkit.addAttachment(smm.getMatch().getPlugin(), Permissions.PARTICIPANT, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@ public abstract class Spawning extends Participating {
|
|||||||
public void enterState() {
|
public void enterState() {
|
||||||
super.enterState();
|
super.enterState();
|
||||||
|
|
||||||
|
bukkit.setGravity(true);
|
||||||
player.setDead(true);
|
player.setDead(true);
|
||||||
player.refreshInteraction();
|
player.refreshInteraction();
|
||||||
player.refreshVisibility();
|
player.refreshVisibility();
|
||||||
|
@ -44,6 +44,7 @@ public abstract class State {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void enterState() {
|
public void enterState() {
|
||||||
|
bukkit.setGravity(true);
|
||||||
if(exited) {
|
if(exited) {
|
||||||
throw new IllegalStateException("Tried to enter already exited state " + this);
|
throw new IllegalStateException("Tried to enter already exited state " + this);
|
||||||
} else if(entered) {
|
} else if(entered) {
|
||||||
@ -55,6 +56,7 @@ public abstract class State {
|
|||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public void leaveState() {
|
public void leaveState() {
|
||||||
|
bukkit.setGravity(true);
|
||||||
if(!entered) {
|
if(!entered) {
|
||||||
throw new IllegalStateException("Tried to leave state before entering " + this);
|
throw new IllegalStateException("Tried to leave state before entering " + this);
|
||||||
} else if(exited) {
|
} else if(exited) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user