Added alot

This commit is contained in:
Driftay 2019-05-14 09:27:57 -04:00
parent 4681974fee
commit a25ba5e71c
7 changed files with 472 additions and 244 deletions

View File

@ -19,10 +19,7 @@ import com.massivecraft.factions.zcore.MPlugin;
import com.massivecraft.factions.zcore.fperms.Access;
import com.massivecraft.factions.zcore.fperms.Permissable;
import com.massivecraft.factions.zcore.fperms.PermissableAction;
import com.massivecraft.factions.zcore.fupgrades.CropUpgrades;
import com.massivecraft.factions.zcore.fupgrades.EXPUpgrade;
import com.massivecraft.factions.zcore.fupgrades.FUpgradesGUI;
import com.massivecraft.factions.zcore.fupgrades.SpawnerUpgrades;
import com.massivecraft.factions.zcore.fupgrades.*;
import com.massivecraft.factions.zcore.util.TextUtil;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
@ -232,6 +229,7 @@ public class SavageFactions extends MPlugin {
new FUpgradesGUI(),
new EXPUpgrade(),
new CropUpgrades(),
new RedstoneUpgrade(),
new SpawnerUpgrades(),
};

View File

@ -12,7 +12,7 @@ public class CmdUpgrades extends FCommand {
this.aliases.add("upgrade");
//this.requiredArgs.add("");
this.optionalArgs.put("mobs/crops/exp", "");
this.optionalArgs.put("mobs/crops/exp/power", "");
this.permission = Permission.UPGRADES.node;
this.disableOnLock = true;

View File

@ -21,7 +21,7 @@ import java.util.List;
public class FUpgradesGUI implements Listener {
public void openMainMenu(FPlayer fme) {
Inventory inventory = Bukkit.createInventory(null, 27, SavageFactions.plugin.color(SavageFactions.plugin.getConfig().getString("fupgrades.MainMenu.Title").replace("{faction}", fme.getFaction().getTag())));
Inventory inventory = Bukkit.createInventory(null, 45, SavageFactions.plugin.color(SavageFactions.plugin.getConfig().getString("fupgrades.MainMenu.Title").replace("{faction}", fme.getFaction().getTag())));
List<Integer> dummySlots = SavageFactions.plugin.getConfig().getIntegerList("fupgrades.MainMenu.DummyItem.slots");
Material dummyMaterial = Material.getMaterial(SavageFactions.plugin.getConfig().getString("fupgrades.MainMenu.DummyItem.Type"));
int dummyAmount = SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.DummyItem.Amount");
@ -41,6 +41,8 @@ public class FUpgradesGUI implements Listener {
List<Integer> spawnerSlots = SavageFactions.plugin.getConfig().getIntegerList("fupgrades.MainMenu.Spawners.SpawnerItem.slots");
List<Integer> expSlots = SavageFactions.plugin.getConfig().getIntegerList("fupgrades.MainMenu.EXP.EXPItem.slots");
List<Integer> chestSlots = SavageFactions.plugin.getConfig().getIntegerList("fupgrades.MainMenu.Chest.ChestItem.slots");
List<Integer> powerSlots = SavageFactions.plugin.getConfig().getIntegerList("fupgrades.MainMenu.Power.PowerItem.slots");
List<Integer> redSlots = SavageFactions.plugin.getConfig().getIntegerList("fupgrades.MainMenu.Redstone.RedstoneItem.slots");
for (int i = 0; i < cropSlots.size(); i++)
if (cropSlots.get(i) != -1) inventory.setItem(cropSlots.get(i), items[2]);
@ -54,6 +56,12 @@ public class FUpgradesGUI implements Listener {
for (int i = 0; i < chestSlots.size(); i++)
if (chestSlots.get(i) != -1) inventory.setItem(chestSlots.get(i), items[3]);
for (int i = 0; i < powerSlots.size(); i++)
if (powerSlots.get(i) != -1) inventory.setItem(powerSlots.get(i), items[4]);
for (int i = 0; i < redSlots.size(); i++)
if (redSlots.get(i) != -1) inventory.setItem(redSlots.get(i), items[5]);
fme.getPlayer().openInventory(inventory);
}
@ -70,10 +78,11 @@ public class FUpgradesGUI implements Listener {
ItemStack expItem = items[0];
ItemStack chestitem = items[3];
ItemStack spawnerItem = items[1];
ItemStack powerItem = items[4];
ItemStack redItem = items[5];
if (e.getCurrentItem().equals(cropItem)) {
int cropLevel = fme.getFaction().getUpgrade(Upgrade.CROP);
switch (cropLevel) {
case 3:
return;
@ -87,9 +96,26 @@ public class FUpgradesGUI implements Listener {
upgradeItem(fme, Upgrade.CROP, 1, SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Crops.Cost.level-1"));
break;
}
} else if (e.getCurrentItem().equals(powerItem)) {
int powerLevel = fme.getFaction().getUpgrade(Upgrade.POWER);
switch (powerLevel) {
case 3:
return;
case 2:
upgradeItem(fme, Upgrade.POWER, 3, SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Power.Cost.level-3"));
updatePower(fme.getFaction());
break;
case 1:
upgradeItem(fme, Upgrade.POWER, 2, SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Power.Cost.level-2"));
updatePower(fme.getFaction());
break;
case 0:
upgradeItem(fme, Upgrade.POWER, 1, SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Power.Cost.level-1"));
updatePower(fme.getFaction());
break;
}
} else if (e.getCurrentItem().equals(spawnerItem)) {
int spawnerLevel = fme.getFaction().getUpgrade(Upgrade.SPAWNER);
switch (spawnerLevel) {
case 3:
return;
@ -119,9 +145,17 @@ public class FUpgradesGUI implements Listener {
upgradeItem(fme, Upgrade.EXP, 1, SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.EXP.Cost.level-1"));
break;
}
} else if (e.getCurrentItem().equals(redItem)) {
int redLevel = fme.getFaction().getUpgrade(Upgrade.REDSTONE);
switch (redLevel) {
case 1:
return;
case 0:
upgradeItem(fme, Upgrade.REDSTONE, 1, SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Redstone.Cost"));
break;
}
} else if (e.getCurrentItem().equals(chestitem)) {
int chestLevel = fme.getFaction().getUpgrade(Upgrade.CHEST);
switch (chestLevel) {
case 3:
return;
@ -170,6 +204,25 @@ public class FUpgradesGUI implements Listener {
faction.setChestSize(size * 9);
}
private void updatePower(Faction faction) {
int level = faction.getUpgrade(Upgrade.POWER);
double power = 0.0;
switch (level) {
case 1:
power = SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Power.Power-Boost.level-1");
break;
case 2:
power = SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Power.Power-Boost.level-2");
break;
case 3:
power = SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Power.Power-Boost.level-3");
break;
}
faction.setPowerBoost(power);
}
@SuppressWarnings("Duplicates")
private ItemStack[] buildItems(FPlayer fme) {
Material expMaterial = Material.getMaterial(SavageFactions.plugin.getConfig().getString("fupgrades.MainMenu.EXP.EXPItem.Type"));
int expAmt = SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.EXP.EXPItem.Amount");
@ -273,7 +326,62 @@ public class FUpgradesGUI implements Listener {
chestItem.setAmount(chestlevel);
}
ItemStack[] items = {expItem, spawnerItem, cropItem, chestItem};
Material powerMaterial = Material.getMaterial(SavageFactions.plugin.getConfig().getString("fupgrades.MainMenu.Power.PowerItem.Type"));
int powerAmt = SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Power.PowerItem.Amount");
short powerData = Short.parseShort(SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Power.PowerItem.Damage") + "");
String powerName = SavageFactions.plugin.color(SavageFactions.plugin.getConfig().getString("fupgrades.MainMenu.Power.PowerItem.Name"));
List<String> powerLore = SavageFactions.plugin.colorList(SavageFactions.plugin.getConfig().getStringList("fupgrades.MainMenu.Power.PowerItem.Lore"));
int powerLevel = fme.getFaction().getUpgrade(Upgrade.POWER);
for (int i = 0; i <= powerLore.size() - 1; i++) {
String line = powerLore.get(i);
line = line.replace("{level}", powerLevel + "");
powerLore.set(i, line);
}
ItemStack powerItem = SavageFactions.plugin.createItem(powerMaterial, powerAmt, powerData, powerName, powerLore);
powerItem.getItemMeta().setLore(powerLore);
if (powerLevel >= 1) {
ItemMeta itemMeta = powerItem.getItemMeta();
if (!SavageFactions.plugin.mc17) {
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
}
itemMeta.addEnchant(Enchantment.DURABILITY, 3, true);
powerItem.setItemMeta(itemMeta);
powerItem.setAmount(powerLevel);
}
Material redMaterial = Material.getMaterial(SavageFactions.plugin.getConfig().getString("fupgrades.MainMenu.Redstone.RedstoneItem.Type"));
int redAmt = SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Redstone.RedstoneItem.Amount");
short redData = Short.parseShort(SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Redstone.RedstoneItem.Damage") + "");
String redName = SavageFactions.plugin.color(SavageFactions.plugin.getConfig().getString("fupgrades.MainMenu.Redstone.RedstoneItem.Name"));
List<String> redLore = SavageFactions.plugin.colorList(SavageFactions.plugin.getConfig().getStringList("fupgrades.MainMenu.Redstone.RedstoneItem.Lore"));
int redLevel = fme.getFaction().getUpgrade(Upgrade.REDSTONE);
for (int i = 0; i <= redLore.size() - 1; i++) {
String line = redLore.get(i);
line = line.replace("{level}", redLevel + "");
redLore.set(i, line);
}
ItemStack redItem = SavageFactions.plugin.createItem(redMaterial, redAmt, redData, redName, redLore);
redItem.getItemMeta().setLore(redLore);
if (redLevel >= 1) {
ItemMeta itemMeta = redItem.getItemMeta();
if (!SavageFactions.plugin.mc17) {
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
}
itemMeta.addEnchant(Enchantment.DURABILITY, 3, true);
redItem.setItemMeta(itemMeta);
redItem.setAmount(redLevel);
}
ItemStack[] items = {expItem, spawnerItem, cropItem, chestItem, powerItem, redItem};
return items;
}

View File

@ -0,0 +1,36 @@
package com.massivecraft.factions.zcore.fupgrades;
import com.massivecraft.factions.Board;
import com.massivecraft.factions.FLocation;
import com.massivecraft.factions.Faction;
import com.massivecraft.factions.SavageFactions;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockFromToEvent;
import java.util.List;
public class RedstoneUpgrade implements Listener {
@EventHandler
public void onWaterRedstone(BlockFromToEvent e) {
List<String> unbreakable = SavageFactions.plugin.getConfig().getStringList("no-water-destroy.Item-List");
String block = e.getToBlock().getType().toString();
FLocation floc = new FLocation(e.getToBlock().getLocation());
Faction factionAtLoc = Board.getInstance().getFactionAt(floc);
if (!factionAtLoc.isWilderness()) {
int level = factionAtLoc.getUpgrade(Upgrade.REDSTONE);
if (level != 0) {
switch (level) {
case 1:
SavageFactions.plugin.getConfig().getInt("fupgrades.MainMenu.Redstone.Cost");
break;
}
if (unbreakable.contains(block)) {
e.setCancelled(true);
}
}
}
}
}

View File

@ -2,7 +2,7 @@ package com.massivecraft.factions.zcore.fupgrades;
public enum Upgrade {
CHEST("Chest"), SPAWNER("Spawner"), EXP("Exp"), CROP("Crop");
CHEST("Chest"), SPAWNER("Spawner"), EXP("Exp"), CROP("Crop"), POWER("Power"), REDSTONE("Redstone");
private String id;

View File

@ -27,6 +27,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import java.text.DecimalFormat;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@ -1214,12 +1215,18 @@ public abstract class MemoryFPlayer implements FPlayer {
}
}
public String commas(final double amount) {
final DecimalFormat formatter = new DecimalFormat("#,###.00");
final String number = formatter.format(amount);
return number;
}
@Override
public void takeMoney(int amt) {
if (hasMoney(amt)) {
Economy econ = SavageFactions.plugin.getEcon();
econ.withdrawPlayer(getPlayer(), amt);
sendMessage(TL.GENERIC_MONEYTAKE.toString().replace("{amount}", amt + ""));
sendMessage(TL.GENERIC_MONEYTAKE.toString().replace("{amount}", commas(amt)));
}
}
}

View File

@ -807,7 +807,7 @@ fupgrades:
Damage: 7
Lore:
- ''
rows: 3
rows: 5
slots:
- 0
- 1
@ -836,6 +836,24 @@ fupgrades:
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
Crops:
Crop-Boost:
level-1: 10
@ -867,7 +885,7 @@ fupgrades:
- ''
- '&e&lClick to &nUnlock'
slots:
- 10
- 18
EXP:
EXP-Boost:
level-1: 1.5
@ -898,7 +916,56 @@ fupgrades:
- ''
- '&e&lClick to &nUnlock'
slots:
- 13
- 20
Power:
Power-Boost:
level-1: 100.0
level-2: 200.0
level-3: 300.0
Cost:
level-1: 1000000
level-2: 2000000
level-3: 3000000
PowerItem:
Name: '&e&lFaction Power'
Type: DIAMOND_SWORD
Amount: 1
Damage: 0
Lore:
- '&7&o(Increase the amount of power'
- '&7&oyour faction has)'
- ''
- '&e&lTier'
- '&f&l* &7Current Level: &3{level}/3'
- ''
- '&e&lPerks'
- '&f&l* &7Level 1 - &f100 Increased Faction Power'
- '&7 - Cost: $1,000,000'
- '&f&l* &7Level 2 - &f200 Increased Faction Power'
- '&7 - Cost: $2,000,000'
- '&f&l* &7Level 3 - &f300 Increased Faction Power'
- '&7 - Cost: $3,000,000'
- ''
- '&e&lClick to &nUnlock'
slots:
- 4
Redstone:
Cost: 1000000
RedstoneItem:
Name: '&e&lUnbreakable Redstone'
Type: REDSTONE
Amount: 1
Damage: 0
Lore:
- '&7&o(Prevents water from being'
- '&7&oable to break redstone)'
- ''
- '&f&l* &7Current Level: &3{level}/1'
- ''
- '&7 - Cost: $1,000,000'
- '&e&lClick to &nUnlock'
slots:
- 26
Spawners:
Spawner-Boost:
# This is a Percentage so .10 means 10% lowered spawner delay!
@ -930,7 +997,7 @@ fupgrades:
- ''
- '&e&lClick to &nUnlock'
slots:
- 16
- 24
Chest:
Chest-Size:
# This is rows
@ -962,7 +1029,7 @@ fupgrades:
- ''
- '&e&lClick to &nUnlock'
slots:
- 22
- 40
############################################################
# +------------------------------------------------------+ #
@ -1010,6 +1077,18 @@ see-chunk:
particles: true
interval: 5
no-water-destroy:
Item-List:
- 'REDSTONE_COMPARATOR'
- 'REDSTONE_COMPARATOR_OFF'
- 'REDSTONE_COMPARATOR_ON'
- 'REDSTONE_TORCH_OFF'
- 'REDSTONE_TORCH_ON'
- 'REDSTONE_WIRE'
- 'DIODE'
- 'DIODE_BLOCK_OFF'
- 'DIODE_BLOCK_ON'
- 'REDSTONE'
Tntfill:
enabled: true