Skip to content

Commit

Permalink
Renaming RewardScheme to be in line with other abstract classes
Browse files Browse the repository at this point in the history
 Renaming Tick trigger to be more intuitive
 Save node loactions as Locations
 Fix wrong scoreboard team names
  • Loading branch information
FireInstall committed Mar 13, 2024
1 parent 3bf5546 commit a69e657
Show file tree
Hide file tree
Showing 18 changed files with 94 additions and 87 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,11 @@ public String getName() {
return loadoutName;
}

public void addItem(ItemStack item, int slot) {
public void addItem(@NotNull ItemStack item, int slot) {
itemSlots.put(slot, item);
}

public void addPotionEffect(PotionEffect effect) {
public void addPotionEffect(@NotNull PotionEffect effect) {
for (PotionEffect pot : effects) {
if (effect.getType().getKey().equals(pot.getType().getKey())) {
effects.remove(pot);
Expand All @@ -111,7 +111,7 @@ public void addPotionEffect(PotionEffect effect) {
effects.add(effect);
}

public void removePotionEffect(PotionEffect effect) {
public void removePotionEffect(@NotNull PotionEffect effect) {
if (effects.contains(effect)) {
effects.remove(effect);
} else {
Expand Down Expand Up @@ -427,7 +427,10 @@ public void save(@NotNull Configuration config, @NotNull String path) {
config.set(path + configSeparator + "hunger", hasHunger());
}

config.set(path + configSeparator + "displayName", MiniMessage.miniMessage().serialize(getDisplayName()));
String displayName = MiniMessage.miniMessage().serialize(getDisplayName());
if (!loadoutName.equalsIgnoreCase(displayName)) {
config.set(path + configSeparator + "displayName", displayName);
}

if (isArmourLocked()) {
config.set(path + configSeparator + "armourLocked", isArmourLocked());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Minigame miniga
MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.SUCCESS, MgCommandLangKey.COMMAND_SET_INFECTEDTEAM_SUCCESS,
Placeholder.unparsed(MinigamePlaceHolderKey.MINIGAME.getKey(), minigame.getName()),
Placeholder.component(MinigamePlaceHolderKey.TEAM.getKey(), teamColor.getCompName()));
return true;
} else {
MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAND_ERROR_NOTTEAM,
Placeholder.unparsed(MinigamePlaceHolderKey.TEXT.getKey(), args[0]));
Expand All @@ -86,6 +87,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Minigame miniga
MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.SUCCESS, MgCommandLangKey.COMMAND_SET_INFECTEDTEAM_SUCCESS,
Placeholder.unparsed(MinigamePlaceHolderKey.MINIGAME.getKey(), minigame.getName()),
Placeholder.component(MinigamePlaceHolderKey.TEAM.getKey(), teamColor.getCompName()));
return true;
} else {
MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAND_ERROR_NOTTEAM,
Placeholder.unparsed(MinigamePlaceHolderKey.TEXT.getKey(), args[0]));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ public class Team implements ScriptObject {
*/
public Team(TeamColor color, Minigame minigame) {
this.color = color;
displayName = WordUtils.capitalizeFully(color.toString()) + " Team";
scoreboardName = color.toString().toLowerCase();
displayName = WordUtils.capitalizeFully(color.getUserFriendlyName()) + " Team";
scoreboardName = color.getUserFriendlyName().toLowerCase();
mgm = minigame;
}

Expand All @@ -77,8 +77,8 @@ public Minigame getMinigame() {
*/
public boolean setColor(TeamColor color) {
if (!TeamsModule.getMinigameModule(mgm).hasTeam(color)) {
if (displayName.toLowerCase().equals(this.color.toString().toLowerCase() + " team"))
displayName = WordUtils.capitalizeFully(color.toString()) + " Team";
if (displayName.toLowerCase().equals(this.color.getUserFriendlyName().toLowerCase() + " team"))
displayName = WordUtils.capitalizeFully(color.getUserFriendlyName()) + " Team";
TeamsModule.getMinigameModule(mgm).removeTeam(this.color);
this.color = color;
TeamsModule.getMinigameModule(mgm).addTeam(color, this);
Expand Down Expand Up @@ -344,13 +344,14 @@ public OptionStatus getNameTagVisibility() {
return nametagVisibility.getFlag();
}

public void setNameTagVisibility(OptionStatus vis) {
public void setNameTagVisibility(@NotNull OptionStatus vis) {
nametagVisibility.setFlag(vis);
org.bukkit.scoreboard.Team team = mgm.getScoreboardManager().getTeam(color.toString().toLowerCase());
if (team != null)
org.bukkit.scoreboard.Team team = mgm.getScoreboardManager().getTeam(color.getUserFriendlyName().toLowerCase());
if (team != null) {
team.setOption(Option.NAME_TAG_VISIBILITY, vis);
else
} else {
Minigames.getCmpnntLogger().warn("No team set for visibility call");
}
}

public Callback<VisibilityMapper> getNameTagVisibilityCallback() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import au.com.mineauz.minigames.menu.MenuItemBack;
import au.com.mineauz.minigames.menu.MenuItemCustom;
import au.com.mineauz.minigames.minigame.Minigame;
import au.com.mineauz.minigames.minigame.reward.scheme.ARewardScheme;
import au.com.mineauz.minigames.minigame.reward.scheme.MgRewardSchemes;
import au.com.mineauz.minigames.minigame.reward.scheme.RewardScheme;
import au.com.mineauz.minigames.minigame.reward.scheme.RewardSchemeRegistry;
import au.com.mineauz.minigames.objects.MinigamePlayer;
import au.com.mineauz.minigames.stats.StoredGameStats;
Expand All @@ -17,7 +17,7 @@
import org.jetbrains.annotations.NotNull;

public class RewardsModule extends MinigameModule {
private RewardScheme scheme;
private ARewardScheme scheme;

public RewardsModule(@NotNull Minigame mgm, @NotNull String name) {
super(mgm, name);
Expand All @@ -31,12 +31,12 @@ public static RewardsModule getModule(Minigame minigame) {
}


public RewardScheme getScheme() {
public ARewardScheme getScheme() {
return scheme;
}

@SuppressWarnings("unused")
public void setRewardScheme(RewardScheme scheme) {
public void setRewardScheme(ARewardScheme scheme) {
this.scheme = scheme;
}

Expand All @@ -61,7 +61,7 @@ public void save(@NotNull FileConfiguration config, @NotNull String path) {

@Override
public void load(@NotNull FileConfiguration config, @NotNull String path) {
String name = config.getString(path + config.options().pathSeparator() + "reward-scheme", "standard");
String name = config.getString(path + config.options().pathSeparator() + "reward-scheme", MgRewardSchemes.STANDARD.getSchemeName());

scheme = RewardSchemeRegistry.createScheme(name);
if (scheme == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,8 @@ public void load(@NotNull FileConfiguration config, @NotNull String path) {
public @NotNull Team addTeam(@NotNull TeamColor color, @Nullable String name) {
if (!hasTeam(color)) {
teams.put(color, new TeamFlag(new Team(color, getMinigame()), color.name(), getMinigame()));
String teamNameString = color.toString().toLowerCase();
org.bukkit.scoreboard.@NotNull Team bukkitTeam = getMinigame().getScoreboardManager().registerNewTeam(teamNameString);
String teamNameString = color.getUserFriendlyName().toLowerCase();
@NotNull org.bukkit.scoreboard.Team bukkitTeam = getMinigame().getScoreboardManager().registerNewTeam(teamNameString);
bukkitTeam.setAllowFriendlyFire(false);
bukkitTeam.setCanSeeFriendlyInvisibles(true);
bukkitTeam.color(color.getColor());
Expand All @@ -142,7 +142,7 @@ public void load(@NotNull FileConfiguration config, @NotNull String path) {
*/
public void addTeam(@NotNull TeamColor color, @NotNull Team team) {
teams.put(color, new TeamFlag(team, color.name(), getMinigame()));
String sbTeam = color.toString().toLowerCase();
String sbTeam = color.getUserFriendlyName().toLowerCase();
Scoreboard scoreboard = getMinigame().getScoreboardManager();
org.bukkit.scoreboard.Team bukkitTeam = scoreboard.getTeam(sbTeam);
if (bukkitTeam != null) {
Expand Down Expand Up @@ -174,15 +174,18 @@ public void removeTeam(@NotNull TeamColor color) {
if (hasTeam(color)) {
teams.remove(color);
org.bukkit.scoreboard.Team bukkitTeam =
getMinigame().getScoreboardManager().getTeam(color.toString().toLowerCase());
if (bukkitTeam != null) bukkitTeam.unregister();
getMinigame().getScoreboardManager().getTeam(color.getUserFriendlyName().toLowerCase());
if (bukkitTeam != null) {
bukkitTeam.unregister();
}
}
}

public boolean hasTeamStartLocations() {
for (TeamFlag teamFlag : teams.values()) {
if (!teamFlag.getFlag().hasStartLocations())
if (!teamFlag.getFlag().hasStartLocations()) {
return false;
}
}
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@
* RewardSchemes allow more flexibility for reward handling.
* The previous simple Primary/Secondary reward system is under {@link StandardRewardScheme}
*/
public abstract class RewardScheme {
public abstract class ARewardScheme {
protected final @NotNull String name;

public RewardScheme(@NotNull String name) {
public ARewardScheme(@NotNull String name) {
this.name = name;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import java.util.Map.Entry;
import java.util.TreeMap;

public abstract class HierarchyRewardScheme<T extends Comparable<T>> extends RewardScheme {
public abstract class HierarchyRewardScheme<T extends Comparable<T>> extends ARewardScheme {
private final EnumFlag<Comparison> comparisonType = new EnumFlag<>(Comparison.Greater, "comparison");
private final BooleanFlag enableRewardsOnLoss = new BooleanFlag(false, "loss-rewards");
private final BooleanFlag lossUsesSecondary = new BooleanFlag(true, "loss-use-secondary");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ public enum MgRewardSchemes implements RewardSchemeFactory {
REVERTS("reverts", RevertsRewardScheme::new);

final @NotNull String name;
final @NotNull Function<@NotNull String, @NotNull RewardScheme> constructor;
final @NotNull Function<@NotNull String, @NotNull ARewardScheme> constructor;


MgRewardSchemes(@NotNull String name, @NotNull Function<@NotNull String, @NotNull RewardScheme> constructor) {
MgRewardSchemes(@NotNull String name, @NotNull Function<@NotNull String, @NotNull ARewardScheme> constructor) {
this.name = name;
this.constructor = constructor;
}
Expand All @@ -26,7 +26,7 @@ public enum MgRewardSchemes implements RewardSchemeFactory {
}

@Override
public @NotNull RewardScheme makeScheme() {
public @NotNull ARewardScheme makeScheme() {
return constructor.apply(name);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import org.jetbrains.annotations.NotNull;

public interface RewardSchemeFactory {
@NotNull RewardScheme makeScheme();
@NotNull ARewardScheme makeScheme();

@NotNull String getSchemeName();
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static void addRewardScheme(@NotNull RewardSchemeFactory factory) {
definedSchemes.put(factory.getSchemeName().toLowerCase(), factory);
}

public static @Nullable RewardScheme createScheme(String name) {
public static @Nullable ARewardScheme createScheme(String name) {
RewardSchemeFactory factory = definedSchemes.get(name);

if (factory != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
* It provides rewards only on victory and has a primary and secondary
* reward. The primary reward is acquired on the first completion only.
*/
public class StandardRewardScheme extends RewardScheme {
public class StandardRewardScheme extends ARewardScheme {
private final RewardsFlag primaryRewardFlag = new RewardsFlag(new Rewards(), "reward");
private final RewardsFlag secondaryRewardFlag = new RewardsFlag(new Rewards(), "reward2");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ public boolean signCreate(@NotNull SignChangeEvent event) {
}

// the error in this Java doc is known. We don't need access, we need dokumention.

/**
* actual handling of taking the flag is in {@link CTFMechanic#takeFlag(PlayerInteractEvent)}
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public class Region extends MgRegion implements BaseExecutorHolder<RegionExecuto
private final List<MinigamePlayer> players = new ArrayList<>();
private final int gameTickDelay = 1;
private final @NotNull Minigame minigame;
private long taskDelay = 20;
private long taskDelay = 20; //todo make ingame configurable
private int taskID;
private int gameTickTaskID;
private boolean enabled = true;
Expand Down Expand Up @@ -119,7 +119,7 @@ public void changeTickDelay(long delay) {
taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(Minigames.getPlugin(), () -> {
List<MinigamePlayer> plys = new ArrayList<>(players);
for (MinigamePlayer player : plys) {
execute(MgRegTrigger.TIME_TICK, player);
execute(MgRegTrigger.CONFIG_TIME, player);
}
}, 0, delay);
}
Expand All @@ -128,15 +128,15 @@ public long getTickDelay() {
return taskDelay;
}

public void startTickTask() {
public void startConfigTimerTask() {
if (taskID != -1) {
removeTickTask();
}

taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(Minigames.getPlugin(), () -> {
List<MinigamePlayer> plys = new ArrayList<>(players);
for (MinigamePlayer player : plys) {
execute(MgRegTrigger.TIME_TICK, player);
execute(MgRegTrigger.CONFIG_TIME, player);
}
}, 0, taskDelay);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,8 @@ private void playerJoin(JoinMinigameEvent event) {
if (event.getMinigame().getPlayers().isEmpty()) {
for (Region region : RegionModule.getMinigameModule(event.getMinigame()).getRegions()) {
for (RegionExecutor ex : region.getExecutors()) {
if (ex.getTrigger() == MgRegTrigger.TIME_TICK) {
region.startTickTask();
if (ex.getTrigger() == MgRegTrigger.CONFIG_TIME) {
region.startConfigTimerTask();
}
if (ex.getTrigger() == MgRegTrigger.TIME_GAMETICK) {
region.startGameTickTask();
Expand Down
Loading

0 comments on commit a69e657

Please sign in to comment.