BETA FEATURE BUTTON

Added a button to the menu GUI that allows for the enabling/disabling of BETA features. DEVELOPERS: Please ensure ALL changes you make to the game are only present when Beta.enableBeta is true!!
This commit is contained in:
Daniel Waggner 2021-06-09 12:00:00 -07:00
parent 041cc65b16
commit ca5518f308
19 changed files with 158 additions and 127 deletions

View File

@ -1,13 +0,0 @@
<component name="libraryTable">
<library name="Maven: com.google.protobuf:protobuf-java:3.11.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/3.11.4/protobuf-java-3.11.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/3.11.4/protobuf-java-3.11.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/3.11.4/protobuf-java-3.11.4-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -8,7 +8,6 @@
</JAVADOC> </JAVADOC>
<SOURCES> <SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/mineplex/spigot/1.8.8-1.9-SNAPSHOT/spigot-1.8.8-1.9-SNAPSHOT-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/mineplex/spigot/1.8.8-1.9-SNAPSHOT/spigot-1.8.8-1.9-SNAPSHOT-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/mineplex/spigot/1.8.8-1.9-SNAPSHOT/spigot-1.8.8-1.9-SNAPSHOT.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
</component> </component>

View File

@ -1,13 +0,0 @@
<component name="libraryTable">
<library name="Maven: commons-codec:commons-codec:1.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.6/commons-codec-1.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.6/commons-codec-1.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.6/commons-codec-1.6-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -1,10 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="SqlDialectMappings">
<file url="file://$PROJECT_DIR$" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/Mineplex.Database" dialect="MySQL" />
<file url="PROJECT" dialect="MySQL" />
</component>
<component name="SqlResolveMappings"> <component name="SqlResolveMappings">
<file url="file://$PROJECT_DIR$/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java" scope="{&quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot;, &quot;group&quot;:{ &quot;@kind&quot;:&quot;root&quot;, &quot;node&quot;:{ &quot;name&quot;:{ &quot;@qname&quot;:&quot;ef4d93a4-af7f-498b-8f39-b6682346f39d&quot; } } } }}" /> <file url="file://$PROJECT_DIR$/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java" scope="{&quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot;, &quot;group&quot;:{ &quot;@kind&quot;:&quot;root&quot;, &quot;node&quot;:{ &quot;name&quot;:{ &quot;@qname&quot;:&quot;ef4d93a4-af7f-498b-8f39-b6682346f39d&quot; } } } }}" />
</component> </component>

View File

@ -0,0 +1,7 @@
package nautilus.game.arcade.game.games;
public class Beta {
public static boolean enableBeta;
}

View File

@ -7,6 +7,7 @@ import mineplex.core.updater.event.UpdateEvent;
import mineplex.minecraft.game.core.damage.CustomDamageEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent;
import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.events.GameStateChangeEvent;
import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.game.Game.GameState;
import nautilus.game.arcade.game.games.Beta;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
@ -160,10 +161,19 @@ public class CastleSiegeKing implements Listener {
_damagers.put(damager, _damagers.get(damager) + 1); _damagers.put(damager, _damagers.get(damager) + 1);
_lastDamager = damager; _lastDamager = damager;
_entity.playEffect(EntityEffect.HURT); if (Beta.enableBeta){
_entity.getWorld().playEffect(_entity.getLocation().add(0, 0.5, 0), Effect.STEP_SOUND, Material.REDSTONE_BLOCK);
_entity.getWorld().playSound(_entity.getLocation().add(0, 0.5, 0), Sound.WITHER_HURT,10,1);
_entity.setHealth(_entity.getHealth() - 1);
}
else {
_entity.getWorld().playEffect(_entity.getLocation().add(0, 0.5, 0), Effect.STEP_SOUND, Material.REDSTONE_BLOCK); _entity.getWorld().playEffect(_entity.getLocation().add(0, 0.5, 0), Effect.STEP_SOUND, Material.REDSTONE_BLOCK);
_entity.getWorld().playSound(_entity.getLocation().add(0, 0.5, 0), Sound.WITHER_HURT,10,1); _entity.getWorld().playSound(_entity.getLocation().add(0, 0.5, 0), Sound.ZOMBIE_HURT,10,1);
_entity.setHealth(_entity.getHealth() - 1); _entity.setHealth(_entity.getHealth() - 1);
}
_entity.playEffect(EntityEffect.HURT);
} }
@EventHandler @EventHandler

View File

@ -17,6 +17,7 @@ import nautilus.game.arcade.events.PlayerGameRespawnEvent;
import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.Game;
import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.GameTeam;
import nautilus.game.arcade.game.TeamGame; import nautilus.game.arcade.game.TeamGame;
import nautilus.game.arcade.game.games.Beta;
import nautilus.game.arcade.game.games.castlesiegenew.kits.*; import nautilus.game.arcade.game.games.castlesiegenew.kits.*;
import nautilus.game.arcade.game.modules.SpawnShieldModule; import nautilus.game.arcade.game.modules.SpawnShieldModule;
import nautilus.game.arcade.game.modules.compass.CompassModule; import nautilus.game.arcade.game.modules.compass.CompassModule;
@ -58,11 +59,6 @@ public class CastleSiegeNew extends TeamGame
{ {
// Game Help // Game Help
// private int _helpIndex = 0;
// private ChatColor _helpColor;
// public ChatColor _colorPrimary;
// public ChatColor _colorSecondary;
// protected String[] _help;
private int _undeadIndex = 0; private int _undeadIndex = 0;
private int _defenderIndex = 0; private int _defenderIndex = 0;
private int _generalIndex = 0; private int _generalIndex = 0;
@ -124,7 +120,7 @@ public class CastleSiegeNew extends TeamGame
"Coordination and teamwork are important to winning as Defenders." "Coordination and teamwork are important to winning as Defenders."
}; };
// Defender Tips - Colored yellow // General Tips - Colored yellow
private static final String[] GeneralTips = { private static final String[] GeneralTips = {
"Use 1.8.9 for the best gameplay experience!", "Use 1.8.9 for the best gameplay experience!",
"Castle Siege is a challenging game! Work together to succeed.", "Castle Siege is a challenging game! Work together to succeed.",
@ -262,84 +258,89 @@ public class CastleSiegeNew extends TeamGame
@EventHandler @EventHandler
public void DisplayCSTips(UpdateEvent event) public void DisplayCSTips(UpdateEvent event)
{ {
if (Beta.enableBeta) {
if (showDefTip && !showGenTips) { if (showDefTip && !showGenTips) {
if (!inLobby() || event.getType() != UpdateType.SLOWER) { if (!inLobby() || event.getType() != UpdateType.SLOWER) {
return; return;
}
if (Manager.GetGameHostManager().isCommunityServer()) {
return;
}
defenderTipColor = defenderTipColor == ChatColor.AQUA ? ChatColor.AQUA : ChatColor.AQUA;
String und = C.cWhiteB + "TIP> " + ChatColor.RESET + defenderTipColor + DefenderTips[_defenderIndex];
for (Player player : UtilServer.getPlayersCollection()) {
if (!Manager.getPreferences().get(player).isActive(Preference.GAME_TIPS)) {
continue;
} }
player.playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1f, 1f); if (Manager.GetGameHostManager().isCommunityServer()) {
UtilPlayer.message(player, und); return;
}
defenderTipColor = defenderTipColor == ChatColor.AQUA ? ChatColor.AQUA : ChatColor.AQUA;
String und = C.cWhiteB + "TIP> " + ChatColor.RESET + defenderTipColor + DefenderTips[_defenderIndex];
for (Player player : UtilServer.getPlayersCollection()) {
if (!Manager.getPreferences().get(player).isActive(Preference.GAME_TIPS)) {
continue;
}
player.playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1f, 1f);
UtilPlayer.message(player, und);
}
_defenderIndex = (_defenderIndex + 1) % DefenderTips.length;
showDefTip = false;
} }
_defenderIndex = (_defenderIndex + 1) % DefenderTips.length; else if (!showDefTip && !showGenTips) {
showDefTip = false; if (!inLobby() || event.getType() != UpdateType.SLOWER) {
return;
}
if (Manager.GetGameHostManager().isCommunityServer()) {
return;
}
undeadTipColor = undeadTipColor == ChatColor.RED ? ChatColor.RED : ChatColor.RED;
String def = C.cWhiteB + "TIP> " + ChatColor.RESET + undeadTipColor + UndeadTips[_undeadIndex];
for (Player player : UtilServer.getPlayersCollection()) {
if (!Manager.getPreferences().get(player).isActive(Preference.GAME_TIPS)) {
continue;
}
player.playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1f, 1f);
UtilPlayer.message(player, def);
}
_undeadIndex = (_undeadIndex + 1) % UndeadTips.length;
showGenTips = true;
}
else {
if (!inLobby() || event.getType() != UpdateType.SLOWER) {
return;
}
if (Manager.GetGameHostManager().isCommunityServer()) {
return;
}
generalTipColor = generalTipColor == ChatColor.YELLOW ? ChatColor.YELLOW : ChatColor.YELLOW;
String gen = C.cWhiteB + "TIP> " + ChatColor.RESET + generalTipColor + GeneralTips[_generalIndex];
for (Player player : UtilServer.getPlayersCollection()) {
if (!Manager.getPreferences().get(player).isActive(Preference.GAME_TIPS)) {
continue;
}
player.playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1f, 1f);
UtilPlayer.message(player, gen);
}
_generalIndex = (_generalIndex + 1) % GeneralTips.length;
showGenTips = false;
showDefTip = true;
}
_help = null;
} }
else{
else if (!showDefTip && !showGenTips) { _help = TIPS;
if (!inLobby() || event.getType() != UpdateType.SLOWER) {
return;
}
if (Manager.GetGameHostManager().isCommunityServer()) {
return;
}
undeadTipColor = undeadTipColor == ChatColor.RED ? ChatColor.RED : ChatColor.RED;
String def = C.cWhiteB + "TIP> " + ChatColor.RESET + undeadTipColor + UndeadTips[_undeadIndex];
for (Player player : UtilServer.getPlayersCollection()) {
if (!Manager.getPreferences().get(player).isActive(Preference.GAME_TIPS)) {
continue;
}
player.playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1f, 1f);
UtilPlayer.message(player, def);
}
_undeadIndex = (_undeadIndex + 1) % UndeadTips.length;
showGenTips = true;
}
else {
if (!inLobby() || event.getType() != UpdateType.SLOWER) {
return;
}
if (Manager.GetGameHostManager().isCommunityServer()) {
return;
}
generalTipColor = generalTipColor == ChatColor.YELLOW ? ChatColor.YELLOW : ChatColor.YELLOW;
String gen = C.cWhiteB + "TIP> " + ChatColor.RESET + generalTipColor + GeneralTips[_generalIndex];
for (Player player : UtilServer.getPlayersCollection()) {
if (!Manager.getPreferences().get(player).isActive(Preference.GAME_TIPS)) {
continue;
}
player.playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1f, 1f);
UtilPlayer.message(player, gen);
}
_generalIndex = (_generalIndex + 1) % GeneralTips.length;
showGenTips = false;
showDefTip = true;
} }
} }

View File

@ -0,0 +1,52 @@
package nautilus.game.arcade.gui.privateServer.button;
import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilServer;
import mineplex.core.shop.item.IButton;
import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.game.games.Beta;
import nautilus.game.arcade.gui.privateServer.PrivateServerShop;
import nautilus.game.arcade.gui.privateServer.page.GameVotingPage;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
public class BetaButton implements IButton {
private ArcadeManager _arcadeManager;
private PrivateServerShop _shop;
public BetaButton(ArcadeManager arcadeManager, PrivateServerShop shop)
{
_shop = shop;
_arcadeManager = arcadeManager;
}
public void Announce(String message, boolean playSound)
{
for (Player player : UtilServer.getPlayers())
{
if (playSound)
player.playSound(player.getLocation(), Sound.NOTE_PLING, 1f, 1f);
UtilPlayer.message(player, message);
}
System.out.println("[Announcement] " + message);
}
@Override
public void onClick(Player player, ClickType clickType)
{
player.closeInventory();
if (Beta.enableBeta) {
Beta.enableBeta = false;
Announce(C.cAquaB + "Disabled BETA Features.", true);
return;
}
Beta.enableBeta = true;
Announce(C.cAquaB + "Enabled BETA Features. Caution: Highly Experimental!", true);
}
}

View File

@ -3,6 +3,7 @@ package nautilus.game.arcade.gui.privateServer.page;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import nautilus.game.arcade.gui.privateServer.button.*;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -16,19 +17,6 @@ import mineplex.core.shop.item.ShopItem;
import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.gui.privateServer.PrivateServerShop; import nautilus.game.arcade.gui.privateServer.PrivateServerShop;
import nautilus.game.arcade.gui.privateServer.button.BanButton;
import nautilus.game.arcade.gui.privateServer.button.EditRotationButton;
import nautilus.game.arcade.gui.privateServer.button.GameVotingButton;
import nautilus.game.arcade.gui.privateServer.button.GiveAdminButton;
import nautilus.game.arcade.gui.privateServer.button.KillButton;
import nautilus.game.arcade.gui.privateServer.button.OptionsButton;
import nautilus.game.arcade.gui.privateServer.button.PlayerHeadButton;
import nautilus.game.arcade.gui.privateServer.button.RemoveAdminButton;
import nautilus.game.arcade.gui.privateServer.button.SetGameButton;
import nautilus.game.arcade.gui.privateServer.button.StartGameButton;
import nautilus.game.arcade.gui.privateServer.button.StopGameButton;
import nautilus.game.arcade.gui.privateServer.button.UnbanButton;
import nautilus.game.arcade.gui.privateServer.button.WhitelistButton;
public class MenuPage extends BasePage public class MenuPage extends BasePage
{ {
@ -54,13 +42,14 @@ public class MenuPage extends BasePage
int stopSlot = host ? 18 : 1 + 18; int stopSlot = host ? 18 : 1 + 18;
int banSlot = host ? 6 + 9 : 7 + 9; int banSlot = host ? 6 + 9 : 7 + 9;
int setGameSlot = host ? 2 + 9 : 3 + 9; int setGameSlot = host ? 2 + 9 : 3 + 9;
int enableBetaSlot = host ? 27 + 1 : 27 + 2;
String[] lore = disableChangeButtons ? new String[]{ChatColor.RESET + C.cRed + "Game in Progress. Please Wait"} : new String[]{}; String[] lore = disableChangeButtons ? new String[]{ChatColor.RESET + C.cRed + "Game in Progress. Please Wait"} : new String[]{};
ShopItem startItem = new ShopItem(Material.EMERALD_BLOCK, "Start Game", lore, 1, false); ShopItem startItem = new ShopItem(Material.EMERALD_BLOCK, "Start Game", lore, 1, false);
ShopItem stopItem = new ShopItem(Material.REDSTONE_BLOCK, "Stop Game", lore, 1, false); ShopItem stopItem = new ShopItem(Material.REDSTONE_BLOCK, "Stop Game", lore, 1, false);
ShopItem banItem = new ShopItem(Material.LAVA_BUCKET, "Remove Player", lore, 1, false); ShopItem banItem = new ShopItem(Material.LAVA_BUCKET, "Remove Player", lore, 1, false);
ShopItem setGameItem = new ShopItem(Material.BOOK_AND_QUILL, "Set Game", lore, 1, false); ShopItem setGameItem = new ShopItem(Material.BOOK_AND_QUILL, "Set Game", lore, 1, false);
ShopItem enableBetaItem = new ShopItem(Material.BARRIER, "Enable/Disable Beta Features", lore, 1, false);
if (disableChangeButtons) if (disableChangeButtons)
{ {
@ -68,6 +57,7 @@ public class MenuPage extends BasePage
addItem(stopSlot, stopItem); addItem(stopSlot, stopItem);
addItem(banSlot, banItem); addItem(banSlot, banItem);
addItem(setGameSlot, setGameItem); addItem(setGameSlot, setGameItem);
addItem(enableBetaSlot, enableBetaItem);
} }
else else
{ {
@ -82,6 +72,9 @@ public class MenuPage extends BasePage
SetGameButton setGameButton = new SetGameButton(getPlugin(), getShop()); SetGameButton setGameButton = new SetGameButton(getPlugin(), getShop());
addButton(setGameSlot, setGameItem, setGameButton); addButton(setGameSlot, setGameItem, setGameButton);
BetaButton betaButton = new BetaButton(getPlugin(), getShop());
addButton(enableBetaSlot, enableBetaItem, betaButton);
} }
} }