Compare commits

...

3 Commits
dev ... 1.4.1

Author SHA1 Message Date
Driftay
8f72979fdf Forgot Some Code 2019-07-27 23:43:20 -04:00
Driftay
b8d4f6b611 Merge remote-tracking branch 'origin/1.6.x' into 1.6.x 2019-07-27 23:39:23 -04:00
Driftay
2c1f74a2cf Removed Shop (In Dev) 2019-07-27 23:38:24 -04:00
11 changed files with 0 additions and 474 deletions

View File

@@ -3,7 +3,6 @@ package com.massivecraft.factions;
import com.massivecraft.factions.event.FactionDisbandEvent.PlayerDisbandReason;
import com.massivecraft.factions.iface.EconomyParticipator;
import com.massivecraft.factions.iface.RelationParticipator;
import com.massivecraft.factions.shop.Pair;
import com.massivecraft.factions.struct.BanInfo;
import com.massivecraft.factions.struct.Relation;
import com.massivecraft.factions.struct.Role;
@@ -30,11 +29,9 @@ public interface Faction extends EconomyParticipator {
void deinviteAllAlts();
Map<String, Pair<Integer, Long>> getActivePotions();
Map<String, Long> getBoosters();
Map<String, Pair<Integer, Long>> getPotionEffects();
void altInvite(FPlayer fplayer);

View File

@@ -10,8 +10,6 @@ import com.massivecraft.factions.integration.Econ;
import com.massivecraft.factions.integration.Worldguard;
import com.massivecraft.factions.integration.dynmap.EngineDynmap;
import com.massivecraft.factions.listeners.*;
import com.massivecraft.factions.shop.handlers.BoosterHandler;
import com.massivecraft.factions.shop.handlers.PotionHandler;
import com.massivecraft.factions.struct.ChatMode;
import com.massivecraft.factions.util.*;
import com.massivecraft.factions.util.Particles.ReflectionUtils;
@@ -28,7 +26,6 @@ import net.milkbowl.vault.permission.Permission;
import org.bukkit.*;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
@@ -232,9 +229,6 @@ public class SaberFactions extends MPlugin {
log("Skript addon registered!");
}
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new BoosterHandler(), 100L, 100L);
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new PotionHandler(this), 100L, 100L);
getServer().getPluginManager().registerEvents(factionsPlayerListener = new FactionsPlayerListener(), this);
// Register Event Handlers

View File

@@ -1,26 +0,0 @@
package com.massivecraft.factions.cmd;
import com.massivecraft.factions.shop.ShopGUI;
import com.massivecraft.factions.zcore.util.TL;
public class CmdShop extends FCommand {
public CmdShop() {
this.aliases.add("shop");
this.senderMustBePlayer = true;
this.senderMustBeColeader = true;
}
@Override
public void perform() {
ShopGUI shopGUI = new ShopGUI(p, fme);
shopGUI.build();
fme.getPlayer().openInventory(shopGUI.getInventory());
}
@Override
public TL getUsageTranslation() {
return TL.COMMAND_SHOP_DESCRIPTION;
}
}

View File

@@ -124,7 +124,6 @@ public class FCmdRoot extends FCommand {
public CmdFGlobal cmdFGlobal = new CmdFGlobal();
public CmdViewChest cmdViewChest = new CmdViewChest();
public CmdPoints cmdPoints = new CmdPoints();
public CmdShop cmdShop = new CmdShop();
@@ -243,7 +242,6 @@ public class FCmdRoot extends FCommand {
this.addSubCommand(this.cmdCorner);
this.addSubCommand(this.cmdFGlobal);
this.addSubCommand(this.cmdViewChest);
this.addSubCommand(this.cmdShop);
if (SaberFactions.plugin.getConfig().getBoolean("f-inventory-see.Enabled")) {
this.addSubCommand(this.cmdInventorySee);

View File

@@ -1,20 +0,0 @@
package com.massivecraft.factions.shop;
public class Pair<K, V> {
private K key;
private V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return this.key;
}
public V getValue() {
return this.value;
}
}

View File

@@ -1,148 +0,0 @@
package com.massivecraft.factions.shop;
import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.Faction;
import com.massivecraft.factions.SaberFactions;
import com.massivecraft.factions.util.FactionGUI;
import com.massivecraft.factions.zcore.util.TL;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.*;
public class ShopBoosterGUI implements FactionGUI {
private SaberFactions plugin;
private FPlayer fPlayer;
private Inventory inventory;
private Map<Integer, String> items;
public ShopBoosterGUI(SaberFactions plugin, FPlayer fPlayer) {
this.items = new HashMap<>();
this.plugin = plugin;
this.fPlayer = fPlayer;
this.inventory = plugin.getServer().createInventory(this, plugin.getConfig().getInt("BoosterGUISize") * 9, TL.SHOP_BOOSTER_TITLE.toString());
}
@Override
public void onClick(int slot, ClickType action) {
if (slot == plugin.getConfig().getInt("BackButtonSlot")) {
ShopGUI shopGUI = new ShopGUI(plugin, fPlayer);
shopGUI.build();
fPlayer.getPlayer().openInventory(shopGUI.getInventory());
return;
}
String booster = items.getOrDefault(slot, null);
if (booster == null) {
return;
}
ConfigurationSection section = plugin.getConfig().getConfigurationSection("BoosterGUI").getConfigurationSection(booster);
if (section == null) {
return;
}
Faction faction = fPlayer.getFaction();
int max = plugin.getConfig().getInt("MaxActiveBooster");
if (faction.getActivePotions().size() >= max) {
fPlayer.msg(TL.SHOP_GUI_BOOSTER_MAX_REACHED, max);
return;
}
if (fPlayer.getFaction().getBoosters().containsKey(booster)) {
fPlayer.msg(TL.SHOP_GUI_BOOSTER_ACTIVE_ALREADY_ACTIVE);
return;
}
int cost = section.getInt("PointCost");
if (faction.getPoints() < cost) {
fPlayer.msg(TL.SHOP_GUI_BOOSTER_CANNOT_AFFORD, cost);
return;
}
String name = ChatColor.translateAlternateColorCodes('&', section.getString("Name"));
faction.setPoints(faction.getPoints() - cost);
String string;
String type = string = section.getString("Type");
switch (string) {
case "COMMAND": {
for (String command : section.getStringList("Commands")) {
this.plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), command.replace("%faction%", fPlayer.getFaction().getTag()));
}
break;
}
case "COMMAND_ONLINE": {
for (FPlayer player : fPlayer.getFaction().getFPlayersWhereOnline(true)) {
for (String command2 : section.getStringList("Commands")) {
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), command2.replace("%faction%", fPlayer.getFaction().getTag()).replace("%player_name%", player.getName()).replace("%player_uuid%", player.getPlayer().getUniqueId().toString()));
}
}
break;
}
case "COMMAND_OFFLINE": {
for (FPlayer player : fPlayer.getFaction().getFPlayers()) {
for (String command2 : section.getStringList("Commands")) {
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), command2.replace("%faction%", fPlayer.getFaction().getTag()).replace("%player_name%", player.getName()).replace("%player_uuid%", this.plugin.getServer().getOfflinePlayer(player.getName()).getUniqueId().toString()));
}
}
break;
}
}
fPlayer.getFaction().getBoosters().put(booster, System.currentTimeMillis() + section.getInt("CooldownMinutes") * 60000);
faction.msg(TL.SHOP_POTION_GUI_ACTIVATED, fPlayer.getNameAndTitle(), name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase());
build();
fPlayer.getPlayer().openInventory(inventory);
}
@Override
public void build() {
ConfigurationSection configurationSection = plugin.getConfig().getConfigurationSection("BoosterGUI");
if (configurationSection == null) {
return;
}
Set<String> boosters = fPlayer.getFaction().getBoosters().keySet();
for (String key : configurationSection.getKeys(false)) {
ConfigurationSection section = configurationSection.getConfigurationSection(key);
int slot = Integer.valueOf(key);
int price = section.getInt("PointCost");
ItemStack itemStack = new ItemStack(Material.valueOf(section.getString("Material")));
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', section.getString("Name")));
List<String> loreLines = new ArrayList<>();
for (String line : section.getStringList("Lore")) {
loreLines.add(ChatColor.translateAlternateColorCodes('&', line.replace("%price%", String.valueOf(price))));
}
if (boosters.contains(key)) {
itemMeta.addEnchant(Enchantment.SILK_TOUCH, 1, true);
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
loreLines.add(TL.SHOP_GUI_BOOSTER_ACTIVE_LORE_LINE.toString());
}
itemMeta.setLore(loreLines);
itemStack.setItemMeta(itemMeta);
inventory.setItem(slot, itemStack);
items.put(slot, key);
}
ConfigurationSection backSection = plugin.getConfig().getConfigurationSection("BackButton");
if (backSection != null) {
ItemStack backStack = new ItemStack(Material.valueOf(backSection.getString("Material")));
ItemMeta backMeta = backStack.getItemMeta();
backMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', backSection.getString("Name")));
backStack.setItemMeta(backMeta);
inventory.setItem(plugin.getConfig().getInt("BackButtonSlot"), backStack);
}
ConfigurationSection pointsSection = plugin.getConfig().getConfigurationSection("PointsItem");
if (pointsSection != null) {
ItemStack pointsStack = new ItemStack(Material.valueOf(pointsSection.getString("Material")));
ItemMeta pointsMeta = pointsStack.getItemMeta();
pointsMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', pointsSection.getString("Name").replace("%points%", String.valueOf(fPlayer.getFaction().getPoints()))));
pointsStack.setItemMeta(pointsMeta);
inventory.setItem(plugin.getConfig().getInt("PointsSlot"), pointsStack);
}
}
public Inventory getInventory() {
return inventory;
}
}

View File

@@ -1,59 +0,0 @@
package com.massivecraft.factions.shop;
import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.SaberFactions;
import com.massivecraft.factions.util.FactionGUI;
import com.massivecraft.factions.zcore.util.TL;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
public class ShopGUI implements FactionGUI {
private SaberFactions plugin;
private FPlayer fPlayer;
private Inventory inventory;
public ShopGUI(SaberFactions plugin, FPlayer fPlayer) {
this.plugin = plugin;
this.fPlayer = fPlayer;
this.inventory = plugin.getServer().createInventory(this, 27, plugin.color(plugin.getConfig().getString("F-Shop.Gui-Title")));
}
@Override
public void onClick(int slot, ClickType action) {
if (slot == 11) {
ShopPotionGUI potionGUI = new ShopPotionGUI(plugin, fPlayer);
potionGUI.build();
fPlayer.getPlayer().openInventory(potionGUI.getInventory());
} else if (slot == 15) {
ShopBoosterGUI boosterGUI = new ShopBoosterGUI(plugin, fPlayer);
boosterGUI.build();
fPlayer.getPlayer().openInventory(boosterGUI.getInventory());
}
}
@Override
public void build() {
ItemStack potionStack = new ItemStack(Material.POTION);
PotionMeta potionMeta = (PotionMeta) potionStack.getItemMeta();
potionMeta.addCustomEffect(new PotionEffect(PotionEffectType.REGENERATION, 1, 1), true);
potionMeta.setDisplayName(ChatColor.LIGHT_PURPLE + ChatColor.BOLD.toString() + "Potion Shop");
potionStack.setItemMeta(potionMeta);
inventory.setItem(11, potionStack);
ItemStack boosterStack = new ItemStack(Material.GOLDEN_APPLE);
ItemMeta boosterMeta = boosterStack.getItemMeta();
boosterMeta.setDisplayName(ChatColor.WHITE + ChatColor.BOLD.toString() + "Booster Shop");
boosterStack.setItemMeta(boosterMeta);
inventory.setItem(15, boosterStack);
}
public Inventory getInventory() {
return this.inventory;
}
}

View File

@@ -1,122 +0,0 @@
package com.massivecraft.factions.shop;
import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.Faction;
import com.massivecraft.factions.SaberFactions;
import com.massivecraft.factions.util.FactionGUI;
import com.massivecraft.factions.zcore.util.TL;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import java.util.*;
public class ShopPotionGUI implements FactionGUI {
private SaberFactions plugin;
private FPlayer fPlayer;
private Inventory inventory;
private Map<Integer, Pair<String, Pair<Integer, Integer>>> items;
public ShopPotionGUI(SaberFactions plugin, FPlayer fPlayer) {
this.items = new HashMap<>();
this.plugin = plugin;
this.fPlayer = fPlayer;
this.inventory = plugin.getServer().createInventory(this, plugin.getConfig().getInt("PotionGUISize") * 9, TL.SHOP_POTION_TITLE.toString());
}
@Override
public void onClick(int slot, ClickType action) {
if (slot == plugin.getConfig().getInt("BackButtonSlot")) {
ShopGUI shopGUI = new ShopGUI(plugin, fPlayer);
shopGUI.build();
fPlayer.getPlayer().openInventory(shopGUI.getInventory());
return;
}
Pair<String, Pair<Integer, Integer>> pair = items.getOrDefault(slot, null);
if (pair == null) {
return;
}
Faction faction = fPlayer.getFaction();
int max = plugin.getConfig().getInt("MaxActivePotions");
if (faction.getActivePotions().size() >= max) {
fPlayer.msg(TL.SHOP_POTION_GUI_MAX_REACHED, max);
return;
}
if (faction.getActivePotions().containsKey(pair.getKey())) {
fPlayer.msg(TL.SHOP_POTION_GUI_POTION_TYPE_ALREADY_ACTIVE);
return;
}
if (faction.getPoints() < pair.getValue().getValue()) {
fPlayer.msg(TL.SHOP_POTION_GUI_INSUFFICIENT_POINTS, pair.getValue().getValue());
return;
}
faction.setPoints(faction.getPoints() - pair.getValue().getValue());
faction.getActivePotions().put(pair.getKey(), new Pair<>(pair.getValue().getKey(), System.currentTimeMillis() + plugin.getConfig().getInt("PotionsLastHours") * 3600000));
faction.msg(TL.SHOP_POTION_GUI_ACTIVATED, fPlayer.getNameAndTitle(), pair.getKey().substring(0, 1).toUpperCase() + pair.getKey().substring(1).toLowerCase().replace('_', ' '));
build();
fPlayer.getPlayer().openInventory(inventory);
}
@Override
public void build() {
ConfigurationSection configurationSection = plugin.getConfig().getConfigurationSection("PotionShop");
if (configurationSection == null) {
return;
}
Set<String> activePotions = fPlayer.getFaction().getActivePotions().keySet();
for (String key : configurationSection.getKeys(false)) {
ConfigurationSection section = configurationSection.getConfigurationSection(key);
int slot = Integer.valueOf(key);
int level = section.getInt("Level");
int price = section.getInt("PointCost");
String potionType = section.getString("PotionType");
ItemStack itemStack = new ItemStack(Material.POTION);
PotionMeta itemMeta = (PotionMeta) itemStack.getItemMeta();
itemMeta.addCustomEffect(new PotionEffect(PotionEffectType.getByName(potionType), 1, level), true);
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', section.getString("Name")));
List<String> loreLines = new ArrayList<>();
for (String line : section.getStringList("Lore")) {
loreLines.add(ChatColor.translateAlternateColorCodes('&', line).replace("%price%", String.valueOf(price)));
}
if (activePotions.contains(potionType)) {
itemMeta.addEnchant(Enchantment.SILK_TOUCH, 1, true);
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
loreLines.add(TL.SHOP_POTION_GUI_ACTIVATED_LORE_LINE.toString());
}
itemMeta.setLore(loreLines);
itemStack.setItemMeta(itemMeta);
inventory.setItem(slot, itemStack);
items.put(slot, new Pair<>(potionType, new Pair<>(level, price)));
}
ConfigurationSection backSection = plugin.getConfig().getConfigurationSection("BackButton");
if (backSection != null) {
ItemStack backStack = new ItemStack(Material.valueOf(backSection.getString("Material")));
ItemMeta backMeta = backStack.getItemMeta();
backMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', backSection.getString("Name")));
backStack.setItemMeta(backMeta);
inventory.setItem(plugin.getConfig().getInt("BackButtonSlot"), backStack);
}
ConfigurationSection pointsSection = plugin.getConfig().getConfigurationSection("PointsItem");
if (pointsSection != null) {
ItemStack pointsStack = new ItemStack(Material.valueOf(pointsSection.getString("Material")));
ItemMeta pointsMeta = pointsStack.getItemMeta();
pointsMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', pointsSection.getString("Name").replace("%points%", String.valueOf(fPlayer.getFaction().getPoints()))));
pointsStack.setItemMeta(pointsMeta);
inventory.setItem(plugin.getConfig().getInt("PointsSlot"), pointsStack);
}
}
public Inventory getInventory() {
return inventory;
}
}

View File

@@ -1,28 +0,0 @@
package com.massivecraft.factions.shop.handlers;
import com.massivecraft.factions.Faction;
import com.massivecraft.factions.Factions;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class BoosterHandler implements Runnable {
@Override
public void run() {
final long currentTime = System.currentTimeMillis();
for (final Faction faction : Factions.getInstance().getAllFactions()) {
final List<String> remove = new ArrayList<>();
for (final Map.Entry<String, Long> entry : faction.getBoosters().entrySet()) {
if (entry.getValue() < currentTime) {
remove.add(entry.getKey());
}
}
remove.forEach((r) ->{
Long n = faction.getBoosters().remove(r);
});
}
}
}

View File

@@ -1,46 +0,0 @@
package com.massivecraft.factions.shop.handlers;
import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.Faction;
import com.massivecraft.factions.Factions;
import com.massivecraft.factions.SaberFactions;
import com.massivecraft.factions.shop.Pair;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class PotionHandler implements Runnable {
private SaberFactions plugin;
public PotionHandler(SaberFactions plugin) {
this.plugin = plugin;
}
@Override
public void run() {
long currentTime = System.currentTimeMillis();
for (Faction faction : Factions.getInstance().getAllFactions()) {
List<String> remove = new ArrayList<String>();
for (Map.Entry<String, Pair<Integer, Long>> entry : faction.getActivePotions().entrySet()) {
if (entry.getValue().getValue() < currentTime) {
remove.add(entry.getKey());
} else {
PotionEffect potionEffect = new PotionEffect(PotionEffectType.getByName(entry.getKey()), 400, entry.getValue().getKey(), false, false);
for (FPlayer fPlayer : faction.getFPlayersWhereOnline(true)) {
if (!fPlayer.isInOwnTerritory()) {
continue;
}
this.plugin.getServer().getScheduler().runTask(this.plugin, () -> fPlayer.getPlayer().addPotionEffect(potionEffect, true));
}
}
}
remove.forEach(key -> {
Pair<Integer, Long> pair = faction.getActivePotions().remove(key);
});
}
}
}

View File

@@ -8,7 +8,6 @@ import com.massivecraft.factions.iface.EconomyParticipator;
import com.massivecraft.factions.iface.RelationParticipator;
import com.massivecraft.factions.integration.Econ;
import com.massivecraft.factions.scoreboards.FTeamWrapper;
import com.massivecraft.factions.shop.Pair;
import com.massivecraft.factions.struct.BanInfo;
import com.massivecraft.factions.struct.Permission;
import com.massivecraft.factions.struct.Relation;
@@ -73,7 +72,6 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator {
private long lastDeath;
private int strikes = 0;
private int points = 0;
private Map<String, Pair<Integer, Long>> potionEffects;
private Map<String, Long> boosters;
// -------------------------------------------- //
@@ -96,7 +94,6 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator {
this.foundedDate = System.currentTimeMillis();
this.maxVaults = Conf.defaultMaxVaults;
this.defaultRole = Role.RECRUIT;
potionEffects = new ConcurrentHashMap<>();
boosters = new ConcurrentHashMap<>();
resetPerms(); // Reset on new Faction so it has default values.
}
@@ -118,7 +115,6 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator {
relationWish = old.relationWish;
claimOwnership = old.claimOwnership;
fplayers = new HashSet<>();
potionEffects = new ConcurrentHashMap<>();
boosters = new ConcurrentHashMap<>();
alts = new HashSet<>();
invites = old.invites;
@@ -1251,16 +1247,6 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator {
return claimOwnership.get(loc);
}
@Override
public Map<String, Pair<Integer, Long>> getActivePotions() {
return this.potionEffects;
}
@Override
public Map<String, Pair<Integer, Long>> getPotionEffects() {
return this.potionEffects;
}
public String getOwnerListString(FLocation loc) {
Set<String> ownerData = claimOwnership.get(loc);
if (ownerData == null || ownerData.isEmpty()) {