Merge branches 'develop' and 'feature/report-v2' of github.com:Mineplex-LLC/Minecraft-PC into feature/report-v2
This commit is contained in:
commit
6bc8039dbd
|
@ -49,6 +49,6 @@ public class AddCommand extends CommandBase<BoosterManager>
|
||||||
|
|
||||||
private void help(Player caller)
|
private void help(Player caller)
|
||||||
{
|
{
|
||||||
UtilPlayer.message(caller, F.help("booster add <servergroup>", "Add a booster to that server group", Rank.ALL));
|
UtilPlayer.message(caller, F.help("booster add <servergroup>", "Add a booster to that server group", Rank.DEVELOPER));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,6 @@ public class BoosterCommand extends MultiCommandBase<BoosterManager>
|
||||||
@Override
|
@Override
|
||||||
protected void Help(Player caller, String[] args)
|
protected void Help(Player caller, String[] args)
|
||||||
{
|
{
|
||||||
UtilPlayer.message(caller, F.help("booster add <servergroup>", "Add a booster to that server group", Rank.ALL));
|
UtilPlayer.message(caller, F.help("booster add <servergroup>", "Add a booster to that server group", Rank.DEVELOPER));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package mineplex.core.brawl.fountain;
|
||||||
|
|
||||||
|
import mineplex.core.shop.ShopBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Shaun Bennett
|
||||||
|
*/
|
||||||
|
public interface BrawlShopProvider
|
||||||
|
{
|
||||||
|
public ShopBase getBrawlShop();
|
||||||
|
}
|
|
@ -11,6 +11,8 @@ import mineplex.core.donation.DonationManager;
|
||||||
import mineplex.core.hologram.Hologram;
|
import mineplex.core.hologram.Hologram;
|
||||||
import mineplex.core.hologram.HologramManager;
|
import mineplex.core.hologram.HologramManager;
|
||||||
import mineplex.core.stats.StatsManager;
|
import mineplex.core.stats.StatsManager;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.serverdata.redis.counter.GoalCounter;
|
import mineplex.serverdata.redis.counter.GoalCounter;
|
||||||
import mineplex.serverdata.redis.counter.GoalCounterListener;
|
import mineplex.serverdata.redis.counter.GoalCounterListener;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
@ -18,9 +20,13 @@ import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a fountain that players can add gems to, with a reward for reaching specific goals
|
* Represents a fountain that players can add gems to, with a reward for reaching specific goals
|
||||||
|
@ -32,6 +38,7 @@ public class Fountain implements GoalCounterListener
|
||||||
private final HologramManager _hologramManager;
|
private final HologramManager _hologramManager;
|
||||||
private final StatsManager _statsManager;
|
private final StatsManager _statsManager;
|
||||||
|
|
||||||
|
private boolean _brawlActive;
|
||||||
private final String _name;
|
private final String _name;
|
||||||
private final String _dataKey;
|
private final String _dataKey;
|
||||||
private final Location _location;
|
private final Location _location;
|
||||||
|
@ -55,6 +62,7 @@ public class Fountain implements GoalCounterListener
|
||||||
_hologram = new Hologram(hologramManager, location.clone().add(4, 3, -3), name).start();
|
_hologram = new Hologram(hologramManager, location.clone().add(4, 3, -3), name).start();
|
||||||
_counter = new GoalCounter(dataKey, 5000, goal);
|
_counter = new GoalCounter(dataKey, 5000, goal);
|
||||||
_counter.addListener(this);
|
_counter.addListener(this);
|
||||||
|
_brawlActive = false;
|
||||||
// _blockProgressBar = new BlockProgressBar(_lavaLocation.getBlock(), Material.LAVA, BlockFace.UP);
|
// _blockProgressBar = new BlockProgressBar(_lavaLocation.getBlock(), Material.LAVA, BlockFace.UP);
|
||||||
_schematicLoader = new SortedSchematicLoader<>(pasteLocation);
|
_schematicLoader = new SortedSchematicLoader<>(pasteLocation);
|
||||||
loadSchematics();
|
loadSchematics();
|
||||||
|
@ -86,43 +94,74 @@ public class Fountain implements GoalCounterListener
|
||||||
|
|
||||||
protected void updateVisuals()
|
protected void updateVisuals()
|
||||||
{
|
{
|
||||||
double percent = getFillPercent();
|
double fillPercent = getFillPercent();
|
||||||
double flatPercent = percent - (int) percent;
|
|
||||||
|
|
||||||
String fillColor;
|
if (isBrawlActive())
|
||||||
String emptyColor;
|
{
|
||||||
String goalMessage;
|
ArrayList<String> text = new ArrayList<>();
|
||||||
|
if (fillPercent >= 1)
|
||||||
|
{
|
||||||
|
text.add(C.cRed + C.Bold + "Weekend Brawl is Active!");
|
||||||
|
if (fillPercent >= 2)
|
||||||
|
{
|
||||||
|
text.add("Bonus Reward Unlocked:");
|
||||||
|
if (fillPercent >= 3)
|
||||||
|
{
|
||||||
|
text.add(C.cGreen + "3X Experience in Brawl");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
text.add(C.cGreen + "2X Experience in Brawl");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
text.add(" ");
|
||||||
|
text.add("Speak to the Fountain Keeper to Join!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
text.add(C.cRed + "Brawl goal was not met");
|
||||||
|
text.add("Come back next week");
|
||||||
|
}
|
||||||
|
|
||||||
if (percent < 1)
|
_hologram.setText(text.toArray(new String[text.size()]));
|
||||||
{
|
_schematicLoader.update(fillPercent);
|
||||||
fillColor = C.cGreen;
|
|
||||||
emptyColor = C.cRed;
|
|
||||||
goalMessage = "100% to Unlock Weekend Brawl";
|
|
||||||
}
|
|
||||||
else if (percent < 2)
|
|
||||||
{
|
|
||||||
fillColor = C.cYellow;
|
|
||||||
emptyColor = C.cGreen;
|
|
||||||
goalMessage = "200% to Unlock 2x XP for Weekend Brawl";
|
|
||||||
}
|
|
||||||
else if (percent < 3)
|
|
||||||
{
|
|
||||||
fillColor = C.cAqua;
|
|
||||||
emptyColor = C.cYellow;
|
|
||||||
goalMessage = "300% to Unlock 3x XP for Weekend Brawl";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fillColor = C.cAqua;
|
double flatPercent = fillPercent - (int) fillPercent;
|
||||||
emptyColor = C.cYellow;
|
|
||||||
goalMessage = "All Rewards Unlocked!";
|
|
||||||
flatPercent = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int intPercent = (int) (percent * 100);
|
String fillColor;
|
||||||
String progressBar = UtilText.getProgress(null, flatPercent, null, false, 30, emptyColor, fillColor);
|
String emptyColor;
|
||||||
_hologram.setText(_name + C.Reset + " " + intPercent + "%", goalMessage, progressBar);
|
String goalMessage;
|
||||||
_schematicLoader.update(percent);
|
|
||||||
|
if (fillPercent < 1)
|
||||||
|
{
|
||||||
|
fillColor = C.cGreen;
|
||||||
|
emptyColor = C.cRed;
|
||||||
|
goalMessage = "100% to Unlock Weekend Brawl";
|
||||||
|
} else if (fillPercent < 2)
|
||||||
|
{
|
||||||
|
fillColor = C.cYellow;
|
||||||
|
emptyColor = C.cGreen;
|
||||||
|
goalMessage = "200% to Unlock 2x XP for Weekend Brawl";
|
||||||
|
} else if (fillPercent < 3)
|
||||||
|
{
|
||||||
|
fillColor = C.cAqua;
|
||||||
|
emptyColor = C.cYellow;
|
||||||
|
goalMessage = "300% to Unlock 3x XP for Weekend Brawl";
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
fillColor = C.cAqua;
|
||||||
|
emptyColor = C.cYellow;
|
||||||
|
goalMessage = "All Rewards Unlocked!";
|
||||||
|
flatPercent = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int intPercent = (int) (fillPercent * 100);
|
||||||
|
String progressBar = UtilText.getProgress(null, flatPercent, null, false, 30, emptyColor, fillColor);
|
||||||
|
_hologram.setText(_name + C.Reset + " " + intPercent + "%", goalMessage, progressBar);
|
||||||
|
_schematicLoader.update(fillPercent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void increment(Player player, long amount)
|
public void increment(Player player, long amount)
|
||||||
|
@ -189,4 +228,23 @@ public class Fountain implements GoalCounterListener
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateBrawlActive()
|
||||||
|
{
|
||||||
|
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("PST"));
|
||||||
|
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
|
||||||
|
if (dayOfWeek == Calendar.FRIDAY || dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY)
|
||||||
|
{
|
||||||
|
_brawlActive = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_brawlActive = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBrawlActive()
|
||||||
|
{
|
||||||
|
return _brawlActive;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,12 @@ import mineplex.serverdata.redis.counter.Counter;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
|
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -28,20 +32,23 @@ public class FountainManager extends MiniPlugin
|
||||||
private HologramManager _hologramManager;
|
private HologramManager _hologramManager;
|
||||||
private StatsManager _statsManager;
|
private StatsManager _statsManager;
|
||||||
private DonationManager _donationManager;
|
private DonationManager _donationManager;
|
||||||
|
// used so we can inject the brawl shop (only on hub) into fountain code
|
||||||
|
private BrawlShopProvider _brawlShopProvider;
|
||||||
|
|
||||||
private Fountain _gemFountain;
|
private Fountain _gemFountain;
|
||||||
|
|
||||||
public FountainManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, HologramManager hologramManager, StatsManager statsManager)
|
public FountainManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, HologramManager hologramManager, StatsManager statsManager, BrawlShopProvider shopProvider)
|
||||||
{
|
{
|
||||||
super("Counter", plugin);
|
super("Counter", plugin);
|
||||||
|
|
||||||
_hologramManager = hologramManager;
|
_hologramManager = hologramManager;
|
||||||
_statsManager = statsManager;
|
_statsManager = statsManager;
|
||||||
_donationManager = donationManager;
|
_donationManager = donationManager;
|
||||||
|
_brawlShopProvider = shopProvider;
|
||||||
|
|
||||||
World world = Bukkit.getWorlds().get(0);//-43.5, 66, -38.5
|
World world = Bukkit.getWorlds().get(0);//-43.5, 66, -38.5
|
||||||
_gemFountain = new Fountain(new Location(world, -32.5, 72, -23.5), new Location(world, -43.5, 67, -38.5),
|
_gemFountain = new Fountain(new Location(world, -32.5, 72, -23.5), new Location(world, -43.5, 67, -38.5),
|
||||||
C.cGreen + "Gem Fountain", "GemFountain_01", 1000000, this, clientManager, donationManager, _hologramManager, _statsManager);
|
C.cGreen + "Gem Fountain", "GemFountain_01", 10000000, this, clientManager, donationManager, _hologramManager, _statsManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -56,9 +63,39 @@ public class FountainManager extends MiniPlugin
|
||||||
if (event.getType() != UpdateType.SEC)
|
if (event.getType() != UpdateType.SEC)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
_gemFountain.updateBrawlActive();
|
||||||
_gemFountain.updateVisuals();
|
_gemFountain.updateVisuals();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onInteractAtEntity(PlayerInteractAtEntityEvent event)
|
||||||
|
{
|
||||||
|
Entity entity = event.getRightClicked();
|
||||||
|
if (entity.getCustomName() != null && entity.isCustomNameVisible())
|
||||||
|
{
|
||||||
|
if (entity.getCustomName().contains("Weekend Brawl") && getBrawlShopProvider() != null)
|
||||||
|
{
|
||||||
|
getBrawlShopProvider().getBrawlShop().attemptShopOpen(event.getPlayer());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onDamage(EntityDamageByEntityEvent event)
|
||||||
|
{
|
||||||
|
if (!(event.getDamager() instanceof Player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Entity entity = event.getEntity();
|
||||||
|
if (entity.getCustomName() != null && entity.isCustomNameVisible())
|
||||||
|
{
|
||||||
|
if (entity.getCustomName().contains("Weekend Brawl") && getBrawlShopProvider() != null)
|
||||||
|
{
|
||||||
|
getBrawlShopProvider().getBrawlShop().attemptShopOpen(((Player) event.getDamager()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Fountain getGemFountain()
|
public Fountain getGemFountain()
|
||||||
{
|
{
|
||||||
return _gemFountain;
|
return _gemFountain;
|
||||||
|
@ -68,4 +105,9 @@ public class FountainManager extends MiniPlugin
|
||||||
{
|
{
|
||||||
return _donationManager;
|
return _donationManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BrawlShopProvider getBrawlShopProvider()
|
||||||
|
{
|
||||||
|
return _brawlShopProvider;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -63,6 +63,6 @@ public class AddCommand extends CommandBase<FountainManager>
|
||||||
|
|
||||||
private void help(Player player)
|
private void help(Player player)
|
||||||
{
|
{
|
||||||
UtilPlayer.message(player, F.help("/fountain add", "<amount>", Rank.ADMIN));
|
UtilPlayer.message(player, F.help("/fountain add", "<amount>", Rank.DEVELOPER));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,4 +32,17 @@ public class FountainShop extends ShopBase<FountainManager>
|
||||||
{
|
{
|
||||||
return _fountain;
|
return _fountain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean attemptShopOpen(Player player)
|
||||||
|
{
|
||||||
|
if (_fountain.isBrawlActive() && getPlugin().getBrawlShopProvider() != null)
|
||||||
|
{
|
||||||
|
return getPlugin().getBrawlShopProvider().getBrawlShop().attemptShopOpen(player);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return super.attemptShopOpen(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package mineplex.hub;
|
package mineplex.hub;
|
||||||
|
|
||||||
|
import mineplex.core.brawl.fountain.FountainManager;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
@ -155,11 +156,13 @@ public class Hub extends JavaPlugin implements IRelation
|
||||||
|
|
||||||
PersonalServerManager personalServerManager = new PersonalServerManager(this, clientManager);
|
PersonalServerManager personalServerManager = new PersonalServerManager(this, clientManager);
|
||||||
BoosterManager boosterManager = new BoosterManager(this, clientManager, donationManager, inventoryManager);
|
BoosterManager boosterManager = new BoosterManager(this, clientManager, donationManager, inventoryManager);
|
||||||
HubManager hubManager = new HubManager(this, blockRestore, clientManager, incognito, donationManager, inventoryManager, conditionManager, disguiseManager, new TaskManager(this, clientManager, webServerAddress), portal, partyManager, preferenceManager, petManager, pollManager, statsManager, achievementManager, new HologramManager(this, packetHandler), npcManager, personalServerManager, packetHandler, punish, serverStatusManager, customDataManager, boosterManager);
|
HologramManager hologramManager = new HologramManager(this, packetHandler);
|
||||||
|
HubManager hubManager = new HubManager(this, blockRestore, clientManager, incognito, donationManager, inventoryManager, conditionManager, disguiseManager, new TaskManager(this, clientManager, webServerAddress), portal, partyManager, preferenceManager, petManager, pollManager, statsManager, achievementManager, hologramManager, npcManager, personalServerManager, packetHandler, punish, serverStatusManager, customDataManager, boosterManager);
|
||||||
|
|
||||||
QueueManager queueManager = new QueueManager(this, clientManager, donationManager, new EloManager(this, clientManager), partyManager);
|
QueueManager queueManager = new QueueManager(this, clientManager, donationManager, new EloManager(this, clientManager), partyManager);
|
||||||
|
ServerManager serverManager = new ServerManager(this, clientManager, donationManager, portal, partyManager, serverStatusManager, hubManager, new StackerManager(hubManager), queueManager, boosterManager);
|
||||||
|
new FountainManager(this, clientManager, donationManager, hologramManager, statsManager, serverManager);
|
||||||
|
|
||||||
new ServerManager(this, clientManager, donationManager, portal, partyManager, serverStatusManager, hubManager, new StackerManager(hubManager), queueManager, boosterManager);
|
|
||||||
Chat chat = new Chat(this, incognito, clientManager, preferenceManager, achievementManager, serverStatusManager.getCurrentServerName());
|
Chat chat = new Chat(this, incognito, clientManager, preferenceManager, achievementManager, serverStatusManager.getCurrentServerName());
|
||||||
new MessageManager(this, incognito, clientManager, preferenceManager, ignoreManager, punish, friendManager, chat);
|
new MessageManager(this, incognito, clientManager, preferenceManager, ignoreManager, punish, friendManager, chat);
|
||||||
new MemoryFix(this);
|
new MemoryFix(this);
|
||||||
|
|
|
@ -235,8 +235,6 @@ public class HubManager extends MiniClientPlugin<HubClient>
|
||||||
new SoccerManager(this, _gadgetManager);
|
new SoccerManager(this, _gadgetManager);
|
||||||
new KothManager(this, _gadgetManager);
|
new KothManager(this, _gadgetManager);
|
||||||
|
|
||||||
new FountainManager(plugin, clientManager, donationManager, hologramManager, statsManager);
|
|
||||||
|
|
||||||
//new TrickOrTreatManager(_plugin, this, taskManager, donationManager, clientManager);
|
//new TrickOrTreatManager(_plugin, this, taskManager, donationManager, clientManager);
|
||||||
|
|
||||||
_petManager = petManager;
|
_petManager = petManager;
|
||||||
|
|
|
@ -12,6 +12,7 @@ import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import mineplex.core.boosters.BoosterManager;
|
import mineplex.core.boosters.BoosterManager;
|
||||||
|
import mineplex.core.brawl.fountain.BrawlShopProvider;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
@ -64,7 +65,7 @@ import mineplex.serverdata.Region;
|
||||||
import mineplex.serverdata.data.MinecraftServer;
|
import mineplex.serverdata.data.MinecraftServer;
|
||||||
import mineplex.serverdata.data.ServerGroup;
|
import mineplex.serverdata.data.ServerGroup;
|
||||||
|
|
||||||
public class ServerManager extends MiniDbClientPlugin<SimpleClanToken>
|
public class ServerManager extends MiniDbClientPlugin<SimpleClanToken> implements BrawlShopProvider
|
||||||
{
|
{
|
||||||
private static final Long FREE_PORTAL_TIMER = 20000L;
|
private static final Long FREE_PORTAL_TIMER = 20000L;
|
||||||
private static final Long BETA_PORTAL_TIMER = 120000L;
|
private static final Long BETA_PORTAL_TIMER = 120000L;
|
||||||
|
@ -918,6 +919,11 @@ public class ServerManager extends MiniDbClientPlugin<SimpleClanToken>
|
||||||
return _serverNpcShopMap.get("Valentines Vendetta");
|
return _serverNpcShopMap.get("Valentines Vendetta");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ShopBase<ServerManager> getBrawlShop()
|
||||||
|
{
|
||||||
|
return _serverNpcShopMap.get("Weekend Brawl");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getQuery(int accountId, String uuid, String name)
|
public String getQuery(int accountId, String uuid, String name)
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,6 +37,7 @@ import org.bukkit.event.hanging.HangingBreakEvent;
|
||||||
import org.bukkit.event.hanging.HangingPlaceEvent;
|
import org.bukkit.event.hanging.HangingPlaceEvent;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.world.WorldLoadEvent;
|
import org.bukkit.event.world.WorldLoadEvent;
|
||||||
import org.bukkit.scoreboard.NameTagVisibility;
|
import org.bukkit.scoreboard.NameTagVisibility;
|
||||||
|
@ -149,6 +150,7 @@ public abstract class Game implements Listener
|
||||||
// Player Data
|
// Player Data
|
||||||
private NautHashMap<Player, HashMap<String, GemData>> _gemCount = new NautHashMap<Player, HashMap<String, GemData>>();
|
private NautHashMap<Player, HashMap<String, GemData>> _gemCount = new NautHashMap<Player, HashMap<String, GemData>>();
|
||||||
private NautHashMap<Player, HashMap<String, Integer>> _stats = new NautHashMap<Player, HashMap<String, Integer>>();
|
private NautHashMap<Player, HashMap<String, Integer>> _stats = new NautHashMap<Player, HashMap<String, Integer>>();
|
||||||
|
private NautHashMap<Player, Long> _playerInTime = new NautHashMap<>();
|
||||||
|
|
||||||
// Player Location Store
|
// Player Location Store
|
||||||
private NautHashMap<String, Location> _playerLocationStore = new NautHashMap<String, Location>();
|
private NautHashMap<String, Location> _playerLocationStore = new NautHashMap<String, Location>();
|
||||||
|
@ -2117,6 +2119,31 @@ public abstract class Game implements Listener
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onJoin(PlayerJoinEvent event)
|
||||||
|
{
|
||||||
|
if (!IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!JoinInProgress)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_playerInTime.put(event.getPlayer(), System.currentTimeMillis());
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getPlayerIngameTime(Player player)
|
||||||
|
{
|
||||||
|
if (_playerInTime.containsKey(player))
|
||||||
|
return _playerInTime.get(player);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addPlayerInTime(Player player)
|
||||||
|
{
|
||||||
|
_playerInTime.put(player, System.currentTimeMillis());
|
||||||
|
}
|
||||||
|
|
||||||
private void addRelativeSpawns(ArrayList<Location> spawns, Location location)
|
private void addRelativeSpawns(ArrayList<Location> spawns, Location location)
|
||||||
{
|
{
|
||||||
//Gather Extra Spawns
|
//Gather Extra Spawns
|
||||||
|
|
|
@ -4,8 +4,6 @@ import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
|
@ -50,7 +48,6 @@ public class Quiver extends SoloGame
|
||||||
private HashMap<Player, Integer> _combo = new HashMap<Player, Integer>();
|
private HashMap<Player, Integer> _combo = new HashMap<Player, Integer>();
|
||||||
private HashMap<Player, Integer> _bestCombo = new HashMap<Player, Integer>();
|
private HashMap<Player, Integer> _bestCombo = new HashMap<Player, Integer>();
|
||||||
private HashMap<Player, Long> _deathTime = new HashMap<Player, Long>();
|
private HashMap<Player, Long> _deathTime = new HashMap<Player, Long>();
|
||||||
private HashMap<UUID, Integer> _bowTime = new HashMap<>();
|
|
||||||
|
|
||||||
private Objective _scoreObj;
|
private Objective _scoreObj;
|
||||||
|
|
||||||
|
@ -119,26 +116,6 @@ public class Quiver extends SoloGame
|
||||||
{
|
{
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(262, (byte)0, 1, F.item("Super Arrow")));
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(262, (byte)0, 1, F.item("Super Arrow")));
|
||||||
player.playSound(player.getLocation(), Sound.PISTON_EXTEND, 3f, 2f);
|
player.playSound(player.getLocation(), Sound.PISTON_EXTEND, 3f, 2f);
|
||||||
_bowTime.put(player.getUniqueId(), 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onUpdate(UpdateEvent event)
|
|
||||||
{
|
|
||||||
if(event.getType() != UpdateType.TICK)
|
|
||||||
return;
|
|
||||||
for(Player player : GetPlayers(true))
|
|
||||||
{
|
|
||||||
if(UtilPlayer.isChargingBow(player))
|
|
||||||
{
|
|
||||||
_bowTime.put(player.getUniqueId(), _bowTime.get(player.getUniqueId()) + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_bowTime.put(player.getUniqueId(), 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,14 +133,6 @@ public class Quiver extends SoloGame
|
||||||
if (!(arrow.getShooter() instanceof Player))
|
if (!(arrow.getShooter() instanceof Player))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Player shooter = (Player) arrow.getShooter();
|
|
||||||
//If the player has a full charge but they haven't been holding the bow for more than 20 ticks
|
|
||||||
if(_bowTime.get(shooter.getUniqueId()) < 20 && event.getForce() == 1)
|
|
||||||
{
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!_deathTime.containsKey(arrow.getShooter()))
|
if (!_deathTime.containsKey(arrow.getShooter()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -32,14 +32,14 @@ public class KitLeaper extends Kit
|
||||||
new PerkDoubleJump("Double Jump", 0.9, 0.9, true)
|
new PerkDoubleJump("Double Jump", 0.9, 0.9, true)
|
||||||
},
|
},
|
||||||
EntityType.ZOMBIE,
|
EntityType.ZOMBIE,
|
||||||
new ItemStack(Material.IRON_AXE));
|
new ItemStack(Material.STONE_SWORD));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void GiveItems(Player player)
|
public void GiveItems(Player player)
|
||||||
{
|
{
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_AXE));
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.STONE_SWORD));
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW));
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW));
|
||||||
|
|
||||||
if (Manager.GetGame().GetState() == GameState.Live)
|
if (Manager.GetGame().GetState() == GameState.Live)
|
||||||
|
|
|
@ -217,6 +217,7 @@ public class GameGemManager implements Listener
|
||||||
total += earned;
|
total += earned;
|
||||||
|
|
||||||
Rank rank = Manager.GetClients().Get(player).GetRank();
|
Rank rank = Manager.GetClients().Get(player).GetRank();
|
||||||
|
int accountId = Manager.GetClients().getAccountId(player);
|
||||||
|
|
||||||
if (rank == rank.ULTRA)
|
if (rank == rank.ULTRA)
|
||||||
shards *= 1.5;
|
shards *= 1.5;
|
||||||
|
@ -228,7 +229,10 @@ public class GameGemManager implements Listener
|
||||||
shards *= 3;
|
shards *= 3;
|
||||||
|
|
||||||
Manager.GetDonation().RewardGems(null, "Earned " + game.GetName(), player.getName(), player.getUniqueId(), total);
|
Manager.GetDonation().RewardGems(null, "Earned " + game.GetName(), player.getName(), player.getUniqueId(), total);
|
||||||
Manager.GetDonation().RewardCoins(null, "Earned", player.getName(), Manager.GetClients().getAccountId(player), shards);
|
if (accountId != -1)
|
||||||
|
{
|
||||||
|
Manager.GetDonation().rewardCoinsUntilSuccess(null, "Earned", player.getName(), accountId, shards);
|
||||||
|
}
|
||||||
|
|
||||||
//Stats
|
//Stats
|
||||||
Manager.GetStatsManager().incrementStat(player, "Global.GemsEarned", total);
|
Manager.GetStatsManager().incrementStat(player, "Global.GemsEarned", total);
|
||||||
|
|
|
@ -757,6 +757,8 @@ public class GameManager implements Listener
|
||||||
//Teleport
|
//Teleport
|
||||||
team.SpawnTeleport(player);
|
team.SpawnTeleport(player);
|
||||||
|
|
||||||
|
game.addPlayerInTime(player);
|
||||||
|
|
||||||
Manager.Clear(player);
|
Manager.Clear(player);
|
||||||
UtilInv.Clear(player);
|
UtilInv.Clear(player);
|
||||||
|
|
||||||
|
@ -820,7 +822,7 @@ public class GameManager implements Listener
|
||||||
|
|
||||||
player.eject();
|
player.eject();
|
||||||
player.leaveVehicle();
|
player.leaveVehicle();
|
||||||
player.teleport(Manager.GetLobby().GetSpawn());
|
player.teleport(Manager.GetLobby().GetSpawn());
|
||||||
}
|
}
|
||||||
}, i);
|
}, i);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,18 @@
|
||||||
package nautilus.game.arcade.managers;
|
package nautilus.game.arcade.managers;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
|
|
||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
|
@ -13,20 +23,13 @@ import mineplex.core.updater.event.UpdateEvent;
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
import nautilus.game.arcade.game.Game.GameState;
|
import nautilus.game.arcade.game.Game.GameState;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
|
||||||
|
|
||||||
public class IdleManager implements Listener
|
public class IdleManager implements Listener
|
||||||
{
|
{
|
||||||
private final ArcadeManager _arcadeManager;
|
private final ArcadeManager _arcadeManager;
|
||||||
private final Map<Player, Float> _yaw = new HashMap<>();
|
private final Map<Player, Float> _yaw = new HashMap<>();
|
||||||
private final Map<Player, Long> _idle = new HashMap<>();
|
private final Map<Player, Long> _idle = new HashMap<>();
|
||||||
private final Map<Player, Integer> _beep = new HashMap<>();
|
private final Map<Player, Integer> _beep = new HashMap<>();
|
||||||
|
private final HashSet<Player> _teleported = new HashSet();
|
||||||
|
|
||||||
public IdleManager(ArcadeManager manager)
|
public IdleManager(ArcadeManager manager)
|
||||||
{
|
{
|
||||||
|
@ -65,6 +68,9 @@ public class IdleManager implements Listener
|
||||||
|
|
||||||
for (Player player : UtilServer.getPlayers())
|
for (Player player : UtilServer.getPlayers())
|
||||||
{
|
{
|
||||||
|
if (_teleported.contains(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
if (!_yaw.containsKey(player) || !_idle.containsKey(player))
|
if (!_yaw.containsKey(player) || !_idle.containsKey(player))
|
||||||
{
|
{
|
||||||
_yaw.put(player, player.getLocation().getYaw());
|
_yaw.put(player, player.getLocation().getYaw());
|
||||||
|
@ -121,12 +127,28 @@ public class IdleManager implements Listener
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void playerTeleport(PlayerTeleportEvent event)
|
||||||
|
{
|
||||||
|
_teleported.add(event.getPlayer());
|
||||||
|
_arcadeManager.runSyncLater(new Runnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
_yaw.put(event.getPlayer(), event.getPlayer().getLocation().getYaw());
|
||||||
|
_teleported.remove(event.getPlayer());
|
||||||
|
}
|
||||||
|
}, 5);
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPlayerQuit(PlayerQuitEvent event)
|
public void onPlayerQuit(PlayerQuitEvent event)
|
||||||
{
|
{
|
||||||
_yaw.remove(event.getPlayer());
|
_yaw.remove(event.getPlayer());
|
||||||
_idle.remove(event.getPlayer());
|
_idle.remove(event.getPlayer());
|
||||||
_beep.remove(event.getPlayer());
|
_beep.remove(event.getPlayer());
|
||||||
|
_teleported.remove(event.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArcadeManager getArcadeManager()
|
public ArcadeManager getArcadeManager()
|
||||||
|
|
|
@ -68,6 +68,10 @@ public class ExperienceStatTracker extends StatTracker<Game>
|
||||||
|
|
||||||
//Game Time = 1 Exp per 3 Seconds
|
//Game Time = 1 Exp per 3 Seconds
|
||||||
long time = System.currentTimeMillis();
|
long time = System.currentTimeMillis();
|
||||||
|
long playerJoin = getGame().getPlayerIngameTime(player);
|
||||||
|
|
||||||
|
if (playerJoin == 0)
|
||||||
|
playerJoin = _startTime;
|
||||||
|
|
||||||
//Exp Until They Quit
|
//Exp Until They Quit
|
||||||
if (!player.isOnline())
|
if (!player.isOnline())
|
||||||
|
@ -80,9 +84,9 @@ public class ExperienceStatTracker extends StatTracker<Game>
|
||||||
{
|
{
|
||||||
time = _startTime;
|
time = _startTime;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double timeExp = (time - _startTime)/1500d;
|
double timeExp = (time - playerJoin)/1500d;
|
||||||
|
|
||||||
//Mult
|
//Mult
|
||||||
double mult = 1;
|
double mult = 1;
|
||||||
|
|
Loading…
Reference in New Issue