mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-26 15:16:45 +01:00
Quick and dirty 1.13 update. I.e. it now compiles for 1.13.
This commit is contained in:
parent
3d515aab23
commit
0a1559511a
4
pom.xml
4
pom.xml
@ -2,7 +2,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||||
<artifactId>mcMMO</artifactId>
|
<artifactId>mcMMO</artifactId>
|
||||||
<version>1.5.10-SNAPSHOT</version>
|
<version>1.6.0-SNAPSHOT</version>
|
||||||
<name>mcMMO</name>
|
<name>mcMMO</name>
|
||||||
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
||||||
<issueManagement>
|
<issueManagement>
|
||||||
@ -135,7 +135,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
<artifactId>bukkit</artifactId>
|
<artifactId>bukkit</artifactId>
|
||||||
<version>1.12.1-R0.1-SNAPSHOT</version>
|
<version>1.13-pre7-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
package com.gmail.nossr50.commands.skills;
|
package com.gmail.nossr50.commands.skills;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.skills.herbalism.Herbalism;
|
import com.gmail.nossr50.skills.herbalism.Herbalism;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class HerbalismCommand extends SkillCommand {
|
public class HerbalismCommand extends SkillCommand {
|
||||||
private String greenTerraLength;
|
private String greenTerraLength;
|
||||||
@ -87,8 +86,8 @@ public class HerbalismCommand extends SkillCommand {
|
|||||||
protected void permissionsCheck(Player player) {
|
protected void permissionsCheck(Player player) {
|
||||||
hasHylianLuck = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.HYLIAN_LUCK);
|
hasHylianLuck = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.HYLIAN_LUCK);
|
||||||
canGreenTerra = Permissions.greenTerra(player);
|
canGreenTerra = Permissions.greenTerra(player);
|
||||||
canGreenThumbPlants = Permissions.greenThumbPlant(player, Material.CROPS) || Permissions.greenThumbPlant(player, Material.CARROT) || Permissions.greenThumbPlant(player, Material.POTATO) || Permissions.greenThumbPlant(player, Material.BEETROOT) || Permissions.greenThumbPlant(player, Material.NETHER_WARTS) || Permissions.greenThumbPlant(player, Material.COCOA);
|
canGreenThumbPlants = Permissions.greenThumbPlant(player, Material.WHEAT) || Permissions.greenThumbPlant(player, Material.CARROT) || Permissions.greenThumbPlant(player, Material.POTATO) || Permissions.greenThumbPlant(player, Material.BEETROOT) || Permissions.greenThumbPlant(player, Material.NETHER_WART) || Permissions.greenThumbPlant(player, Material.COCOA);
|
||||||
canGreenThumbBlocks = Permissions.greenThumbBlock(player, Material.DIRT) || Permissions.greenThumbBlock(player, Material.COBBLESTONE) || Permissions.greenThumbBlock(player, Material.COBBLE_WALL) || Permissions.greenThumbBlock(player, Material.SMOOTH_BRICK);
|
canGreenThumbBlocks = Permissions.greenThumbBlock(player, Material.DIRT) || Permissions.greenThumbBlock(player, Material.COBBLESTONE) || Permissions.greenThumbBlock(player, Material.COBBLESTONE_WALL) || Permissions.greenThumbBlock(player, Material.STONE_BRICKS);
|
||||||
canFarmersDiet = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FARMERS_DIET);
|
canFarmersDiet = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FARMERS_DIET);
|
||||||
canDoubleDrop = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.HERBALISM_DOUBLE_DROPS) && !skill.getDoubleDropsDisabled();
|
canDoubleDrop = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.HERBALISM_DOUBLE_DROPS) && !skill.getDoubleDropsDisabled();
|
||||||
canShroomThumb = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.SHROOM_THUMB);
|
canShroomThumb = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.SHROOM_THUMB);
|
||||||
|
@ -1,16 +1,10 @@
|
|||||||
package com.gmail.nossr50.commands.skills;
|
package com.gmail.nossr50.commands.skills;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.MaterialType;
|
import com.gmail.nossr50.datatypes.skills.MaterialType;
|
||||||
import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.skills.repair.ArcaneForging;
|
import com.gmail.nossr50.skills.repair.ArcaneForging;
|
||||||
import com.gmail.nossr50.skills.repair.ArcaneForging.Tier;
|
import com.gmail.nossr50.skills.repair.ArcaneForging.Tier;
|
||||||
import com.gmail.nossr50.skills.repair.Repair;
|
import com.gmail.nossr50.skills.repair.Repair;
|
||||||
@ -18,6 +12,11 @@ import com.gmail.nossr50.skills.repair.RepairManager;
|
|||||||
import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class RepairCommand extends SkillCommand {
|
public class RepairCommand extends SkillCommand {
|
||||||
private String repairMasteryBonus;
|
private String repairMasteryBonus;
|
||||||
@ -49,7 +48,7 @@ public class RepairCommand extends SkillCommand {
|
|||||||
protected void dataCalculations(Player player, float skillValue, boolean isLucky) {
|
protected void dataCalculations(Player player, float skillValue, boolean isLucky) {
|
||||||
// We're using pickaxes here, not the best but it works
|
// We're using pickaxes here, not the best but it works
|
||||||
Repairable diamondRepairable = mcMMO.getRepairableManager().getRepairable(Material.DIAMOND_PICKAXE);
|
Repairable diamondRepairable = mcMMO.getRepairableManager().getRepairable(Material.DIAMOND_PICKAXE);
|
||||||
Repairable goldRepairable = mcMMO.getRepairableManager().getRepairable(Material.GOLD_PICKAXE);
|
Repairable goldRepairable = mcMMO.getRepairableManager().getRepairable(Material.GOLDEN_PICKAXE);
|
||||||
Repairable ironRepairable = mcMMO.getRepairableManager().getRepairable(Material.IRON_PICKAXE);
|
Repairable ironRepairable = mcMMO.getRepairableManager().getRepairable(Material.IRON_PICKAXE);
|
||||||
Repairable stoneRepairable = mcMMO.getRepairableManager().getRepairable(Material.STONE_PICKAXE);
|
Repairable stoneRepairable = mcMMO.getRepairableManager().getRepairable(Material.STONE_PICKAXE);
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package com.gmail.nossr50.config.treasure;
|
package com.gmail.nossr50.config.treasure;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.gmail.nossr50.config.ConfigLoader;
|
||||||
import java.util.HashMap;
|
import com.gmail.nossr50.datatypes.treasure.*;
|
||||||
import java.util.List;
|
import com.gmail.nossr50.util.EnchantmentUtils;
|
||||||
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.DyeColor;
|
import org.bukkit.DyeColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -19,15 +19,9 @@ import org.bukkit.material.MaterialData;
|
|||||||
import org.bukkit.potion.PotionData;
|
import org.bukkit.potion.PotionData;
|
||||||
import org.bukkit.potion.PotionType;
|
import org.bukkit.potion.PotionType;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.ConfigLoader;
|
import java.util.ArrayList;
|
||||||
import com.gmail.nossr50.datatypes.treasure.EnchantmentTreasure;
|
import java.util.HashMap;
|
||||||
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
|
import java.util.List;
|
||||||
import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
|
|
||||||
import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
|
|
||||||
import com.gmail.nossr50.datatypes.treasure.Rarity;
|
|
||||||
import com.gmail.nossr50.datatypes.treasure.ShakeTreasure;
|
|
||||||
import com.gmail.nossr50.util.EnchantmentUtils;
|
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
|
||||||
|
|
||||||
public class TreasureConfig extends ConfigLoader {
|
public class TreasureConfig extends ConfigLoader {
|
||||||
|
|
||||||
@ -143,14 +137,14 @@ public class TreasureConfig extends ConfigLoader {
|
|||||||
Material material;
|
Material material;
|
||||||
|
|
||||||
if (materialName.contains("INK_SACK")) {
|
if (materialName.contains("INK_SACK")) {
|
||||||
material = Material.INK_SACK;
|
material = Material.INK_SAC;
|
||||||
} else if (materialName.contains("COAL")) {
|
} else if (materialName.contains("COAL")) {
|
||||||
material = Material.COAL;
|
material = Material.COAL;
|
||||||
} else if (materialName.contains("INVENTORY")) {
|
} else if (materialName.contains("INVENTORY")) {
|
||||||
// Use magic material BED_BLOCK to know that we're grabbing something from the inventory and not a normal treasure
|
// Use magic material BEDROCK to know that we're grabbing something from the inventory and not a normal treasure
|
||||||
if (!shakeMap.containsKey(EntityType.PLAYER))
|
if (!shakeMap.containsKey(EntityType.PLAYER))
|
||||||
shakeMap.put(EntityType.PLAYER, new ArrayList<ShakeTreasure>());
|
shakeMap.put(EntityType.PLAYER, new ArrayList<ShakeTreasure>());
|
||||||
shakeMap.get(EntityType.PLAYER).add(new ShakeTreasure(new ItemStack(Material.BED_BLOCK, 1, (byte) 0), 1, getInventoryStealDropChance(), getInventoryStealDropLevel()));
|
shakeMap.get(EntityType.PLAYER).add(new ShakeTreasure(new ItemStack(Material.BEDROCK, 1, (byte) 0), 1, getInventoryStealDropChance(), getInventoryStealDropLevel()));
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
material = Material.matchMaterial(materialName);
|
material = Material.matchMaterial(materialName);
|
||||||
@ -323,9 +317,9 @@ public class TreasureConfig extends ConfigLoader {
|
|||||||
}
|
}
|
||||||
if (dropper.equals("Flowers")) {
|
if (dropper.equals("Flowers")) {
|
||||||
for (int i = 0; i < 9; i++) {
|
for (int i = 0; i < 9; i++) {
|
||||||
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialDataString(new MaterialData(Material.RED_ROSE, (byte) i)), hylianTreasure);
|
AddHylianTreasure(StringUtils.getFriendlyConfigMaterialDataString(new MaterialData(Material.ROSE_RED, (byte) i)), hylianTreasure);
|
||||||
}
|
}
|
||||||
AddHylianTreasure(StringUtils.getPrettyItemString(Material.YELLOW_FLOWER), hylianTreasure);
|
AddHylianTreasure(StringUtils.getPrettyItemString(Material.DANDELION), hylianTreasure);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (dropper.equals("Pots")) {
|
if (dropper.equals("Pots")) {
|
||||||
|
@ -1,22 +1,5 @@
|
|||||||
package com.gmail.nossr50.database;
|
package com.gmail.nossr50.database;
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.ResultSetMetaData;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Statement;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.EnumMap;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
|
||||||
|
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.MobHealthbarType;
|
import com.gmail.nossr50.datatypes.MobHealthbarType;
|
||||||
import com.gmail.nossr50.datatypes.database.DatabaseType;
|
import com.gmail.nossr50.datatypes.database.DatabaseType;
|
||||||
@ -25,11 +8,16 @@ import com.gmail.nossr50.datatypes.database.UpgradeType;
|
|||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.database.UUIDUpdateAsyncTask;
|
import com.gmail.nossr50.runnables.database.UUIDUpdateAsyncTask;
|
||||||
import com.gmail.nossr50.util.Misc;
|
import com.gmail.nossr50.util.Misc;
|
||||||
|
|
||||||
import org.apache.tomcat.jdbc.pool.DataSource;
|
import org.apache.tomcat.jdbc.pool.DataSource;
|
||||||
import org.apache.tomcat.jdbc.pool.PoolProperties;
|
import org.apache.tomcat.jdbc.pool.PoolProperties;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
|
import java.sql.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
|
||||||
public final class SQLDatabaseManager implements DatabaseManager {
|
public final class SQLDatabaseManager implements DatabaseManager {
|
||||||
private static final String ALL_QUERY_VERSION = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing+alchemy";
|
private static final String ALL_QUERY_VERSION = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing+alchemy";
|
||||||
@ -337,7 +325,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
connection = getConnection(PoolIdentifier.MISC);
|
connection = getConnection(PoolIdentifier.MISC);
|
||||||
statement = connection.prepareStatement("SELECT " + query + ", user, NOW() FROM " + tablePrefix + "users JOIN " + tablePrefix + "skills ON (user_id = id) WHERE " + query + " > 0 AND NOT user = '\\_INVALID\\_OLD\\_USERNAME\\_' ORDER BY " + query + " DESC, user LIMIT ?, ?");
|
statement = connection.prepareStatement("SELECT " + query + ", user FROM " + tablePrefix + "users JOIN " + tablePrefix + "skills ON (user_id = id) WHERE " + query + " > 0 AND NOT user = '\\_INVALID\\_OLD\\_USERNAME\\_' ORDER BY " + query + " DESC, user LIMIT ?, ?");
|
||||||
statement.setInt(1, (pageNumber * statsPerPage) - statsPerPage);
|
statement.setInt(1, (pageNumber * statsPerPage) - statsPerPage);
|
||||||
statement.setInt(2, statsPerPage);
|
statement.setInt(2, statsPerPage);
|
||||||
resultSet = statement.executeQuery();
|
resultSet = statement.executeQuery();
|
||||||
@ -1132,7 +1120,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
|||||||
return DatabaseType.SQL;
|
return DatabaseType.SQL;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkNameUniqueness(final Statement statement) throws SQLException {
|
private void checkNameUniqueness(final Statement statement) {
|
||||||
ResultSet resultSet = null;
|
ResultSet resultSet = null;
|
||||||
try {
|
try {
|
||||||
resultSet = statement.executeQuery("SHOW INDEXES "
|
resultSet = statement.executeQuery("SHOW INDEXES "
|
||||||
@ -1205,7 +1193,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkUpgradeAddSQLIndexes(final Statement statement) throws SQLException {
|
private void checkUpgradeAddSQLIndexes(final Statement statement) {
|
||||||
ResultSet resultSet = null;
|
ResultSet resultSet = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -1292,7 +1280,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!names.isEmpty()) {
|
if (!names.isEmpty()) {
|
||||||
new UUIDUpdateAsyncTask(mcMMO.p, names).run();;
|
new UUIDUpdateAsyncTask(mcMMO.p, names).run();
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
massUpdateLock.unlock();
|
massUpdateLock.unlock();
|
||||||
@ -1415,7 +1403,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
|||||||
public enum PoolIdentifier {
|
public enum PoolIdentifier {
|
||||||
MISC,
|
MISC,
|
||||||
LOAD,
|
LOAD,
|
||||||
SAVE;
|
SAVE
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetMobHealthSettings() {
|
public void resetMobHealthSettings() {
|
||||||
|
@ -21,7 +21,7 @@ public enum MaterialType {
|
|||||||
return Material.LEATHER;
|
return Material.LEATHER;
|
||||||
|
|
||||||
case WOOD:
|
case WOOD:
|
||||||
return Material.WOOD;
|
return Material.OAK_WOOD;
|
||||||
|
|
||||||
case STONE:
|
case STONE:
|
||||||
return Material.COBBLESTONE;
|
return Material.COBBLESTONE;
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package com.gmail.nossr50.events.fake;
|
package com.gmail.nossr50.events.fake;
|
||||||
|
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Fish;
|
import org.bukkit.entity.FishHook;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.player.PlayerFishEvent;
|
import org.bukkit.event.player.PlayerFishEvent;
|
||||||
|
|
||||||
public class FakePlayerFishEvent extends PlayerFishEvent {
|
public class FakePlayerFishEvent extends PlayerFishEvent {
|
||||||
public FakePlayerFishEvent(Player player, Entity entity, Fish hookEntity, State state) {
|
public FakePlayerFishEvent(Player player, Entity entity, FishHook hookEntity, State state) {
|
||||||
super(player, entity, hookEntity, state);
|
super(player, entity, hookEntity, state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,37 +1,5 @@
|
|||||||
package com.gmail.nossr50.listeners;
|
package com.gmail.nossr50.listeners;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.enchantments.Enchantment;
|
|
||||||
import org.bukkit.entity.*;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
|
||||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
|
||||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
|
||||||
import org.bukkit.event.entity.EntityDamageEvent.DamageModifier;
|
|
||||||
import org.bukkit.event.entity.EntityDeathEvent;
|
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
|
||||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
|
||||||
import org.bukkit.event.entity.EntityTameEvent;
|
|
||||||
import org.bukkit.event.entity.EntityTargetEvent;
|
|
||||||
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
|
||||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
|
||||||
import org.bukkit.event.entity.PigZapEvent;
|
|
||||||
import org.bukkit.event.entity.PotionSplashEvent;
|
|
||||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.inventory.meta.PotionMeta;
|
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
|
||||||
import org.bukkit.potion.PotionEffect;
|
|
||||||
import org.bukkit.potion.PotionEffectType;
|
|
||||||
import org.bukkit.projectiles.ProjectileSource;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.AdvancedConfig;
|
import com.gmail.nossr50.config.AdvancedConfig;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
@ -39,6 +7,7 @@ import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
|||||||
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
|
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
|
||||||
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
|
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
|
||||||
import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
|
import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.runnables.skills.BleedTimerTask;
|
import com.gmail.nossr50.runnables.skills.BleedTimerTask;
|
||||||
import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
|
import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
|
||||||
@ -55,6 +24,23 @@ import com.gmail.nossr50.util.Permissions;
|
|||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
import com.gmail.nossr50.util.skills.CombatUtils;
|
import com.gmail.nossr50.util.skills.CombatUtils;
|
||||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.*;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.*;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent.DamageModifier;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.PotionMeta;
|
||||||
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
import org.bukkit.projectiles.ProjectileSource;
|
||||||
|
|
||||||
public class EntityListener implements Listener {
|
public class EntityListener implements Listener {
|
||||||
private final mcMMO plugin;
|
private final mcMMO plugin;
|
||||||
@ -122,8 +108,7 @@ public class EntityListener implements Listener {
|
|||||||
else if (isTracked) {
|
else if (isTracked) {
|
||||||
mcMMO.getPlaceStore().setTrue(block);
|
mcMMO.getPlaceStore().setTrue(block);
|
||||||
}
|
}
|
||||||
}
|
} else if ((block.getType() == Material.REDSTONE_ORE)) {
|
||||||
else if ((block.getType() == Material.REDSTONE_ORE || block.getType() == Material.GLOWING_REDSTONE_ORE) && (event.getTo() == Material.REDSTONE_ORE || event.getTo() == Material.GLOWING_REDSTONE_ORE)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -578,7 +563,7 @@ public class EntityListener implements Listener {
|
|||||||
*/
|
*/
|
||||||
case BEETROOT:
|
case BEETROOT:
|
||||||
case BREAD: /* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */
|
case BREAD: /* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */
|
||||||
case CARROT_ITEM: /*
|
case CARROT: /*
|
||||||
* RESTORES 2 HUNGER - RESTORES 4 1/2 HUNGER @
|
* RESTORES 2 HUNGER - RESTORES 4 1/2 HUNGER @
|
||||||
* 1000
|
* 1000
|
||||||
*/
|
*/
|
||||||
@ -586,7 +571,7 @@ public class EntityListener implements Listener {
|
|||||||
* RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @
|
* RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @
|
||||||
* 1000
|
* 1000
|
||||||
*/
|
*/
|
||||||
case MUSHROOM_SOUP: /*
|
case MUSHROOM_STEW: /*
|
||||||
* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @
|
* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @
|
||||||
* 1000
|
* 1000
|
||||||
*/
|
*/
|
||||||
@ -605,13 +590,13 @@ public class EntityListener implements Listener {
|
|||||||
* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER
|
* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER
|
||||||
* @ 1000
|
* @ 1000
|
||||||
*/
|
*/
|
||||||
case POTATO_ITEM: /* RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
|
case POTATO: /* RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
|
||||||
if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FARMERS_DIET)) {
|
if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FARMERS_DIET)) {
|
||||||
event.setFoodLevel(UserManager.getPlayer(player).getHerbalismManager().farmersDiet(Herbalism.farmersDietRankLevel2, newFoodLevel));
|
event.setFoodLevel(UserManager.getPlayer(player).getHerbalismManager().farmersDiet(Herbalism.farmersDietRankLevel2, newFoodLevel));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case COOKED_FISH: /*
|
case COOKED_SALMON: /*
|
||||||
* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @
|
* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @
|
||||||
* 1000
|
* 1000
|
||||||
*/
|
*/
|
||||||
@ -620,7 +605,7 @@ public class EntityListener implements Listener {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case RAW_FISH: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
|
case SALMON: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
|
||||||
if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FISHERMANS_DIET)) {
|
if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FISHERMANS_DIET)) {
|
||||||
event.setFoodLevel(UserManager.getPlayer(player).getFishingManager().handleFishermanDiet(Fishing.fishermansDietRankLevel2, newFoodLevel));
|
event.setFoodLevel(UserManager.getPlayer(player).getFishingManager().handleFishermanDiet(Fishing.fishermansDietRankLevel2, newFoodLevel));
|
||||||
}
|
}
|
||||||
|
@ -1,38 +1,5 @@
|
|||||||
package com.gmail.nossr50.listeners;
|
package com.gmail.nossr50.listeners;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
import org.bukkit.DyeColor;
|
|
||||||
import org.bukkit.GameMode;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.block.BlockState;
|
|
||||||
import org.bukkit.entity.Entity;
|
|
||||||
import org.bukkit.entity.EntityType;
|
|
||||||
import org.bukkit.entity.Item;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
|
||||||
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|
||||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
|
||||||
import org.bukkit.event.player.PlayerFishEvent;
|
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
|
||||||
import org.bukkit.event.player.PlayerPickupItemEvent;
|
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
|
||||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
|
||||||
import org.bukkit.event.player.PlayerStatisticIncrementEvent;
|
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.material.Dye;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.chat.ChatManager;
|
import com.gmail.nossr50.chat.ChatManager;
|
||||||
import com.gmail.nossr50.chat.ChatManagerFactory;
|
import com.gmail.nossr50.chat.ChatManagerFactory;
|
||||||
import com.gmail.nossr50.chat.PartyChatManager;
|
import com.gmail.nossr50.chat.PartyChatManager;
|
||||||
@ -44,6 +11,7 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|||||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.party.ShareHandler;
|
import com.gmail.nossr50.party.ShareHandler;
|
||||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||||
import com.gmail.nossr50.skills.fishing.FishingManager;
|
import com.gmail.nossr50.skills.fishing.FishingManager;
|
||||||
@ -55,19 +23,22 @@ import com.gmail.nossr50.skills.salvage.Salvage;
|
|||||||
import com.gmail.nossr50.skills.salvage.SalvageManager;
|
import com.gmail.nossr50.skills.salvage.SalvageManager;
|
||||||
import com.gmail.nossr50.skills.taming.TamingManager;
|
import com.gmail.nossr50.skills.taming.TamingManager;
|
||||||
import com.gmail.nossr50.skills.unarmed.Unarmed;
|
import com.gmail.nossr50.skills.unarmed.Unarmed;
|
||||||
import com.gmail.nossr50.util.BlockUtils;
|
import com.gmail.nossr50.util.*;
|
||||||
import com.gmail.nossr50.util.ChimaeraWing;
|
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
|
||||||
import com.gmail.nossr50.util.HardcoreManager;
|
|
||||||
import com.gmail.nossr50.util.ItemUtils;
|
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.MobHealthbarUtils;
|
|
||||||
import com.gmail.nossr50.util.Motd;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
|
||||||
import com.gmail.nossr50.util.adapter.SoundAdapter;
|
import com.gmail.nossr50.util.adapter.SoundAdapter;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.BlockState;
|
||||||
|
import org.bukkit.entity.*;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
|
import org.bukkit.event.player.*;
|
||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
public class PlayerListener implements Listener {
|
public class PlayerListener implements Listener {
|
||||||
private final mcMMO plugin;
|
private final mcMMO plugin;
|
||||||
@ -232,8 +203,8 @@ public class PlayerListener implements Listener {
|
|||||||
//TODO Update to new API once available! Waiting for case CAUGHT_TREASURE:
|
//TODO Update to new API once available! Waiting for case CAUGHT_TREASURE:
|
||||||
Item fishingCatch = (Item) event.getCaught();
|
Item fishingCatch = (Item) event.getCaught();
|
||||||
|
|
||||||
if (Config.getInstance().getFishingOverrideTreasures() && fishingCatch.getItemStack().getType() != Material.RAW_FISH) {
|
if (Config.getInstance().getFishingOverrideTreasures() && fishingCatch.getItemStack().getType() != Material.SALMON) {
|
||||||
fishingCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
|
fishingCatch.setItemStack(new ItemStack(Material.SALMON, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Permissions.vanillaXpBoost(player, SkillType.FISHING)) {
|
if (Permissions.vanillaXpBoost(player, SkillType.FISHING)) {
|
||||||
@ -242,7 +213,7 @@ public class PlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case IN_GROUND:
|
case IN_GROUND:
|
||||||
Block block = player.getTargetBlock((HashSet<Material>) null, 100);
|
Block block = player.getTargetBlock(null, 100);
|
||||||
|
|
||||||
if (fishingManager.canIceFish(block)) {
|
if (fishingManager.canIceFish(block)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@ -554,22 +525,20 @@ public class PlayerListener implements Listener {
|
|||||||
/* GREEN THUMB CHECK */
|
/* GREEN THUMB CHECK */
|
||||||
HerbalismManager herbalismManager = mcMMOPlayer.getHerbalismManager();
|
HerbalismManager herbalismManager = mcMMOPlayer.getHerbalismManager();
|
||||||
|
|
||||||
if (heldItem.getType() == Material.INK_SACK) {
|
if (heldItem.getType() == Material.BONE_MEAL) {
|
||||||
if (DyeColor.WHITE == ((Dye) heldItem.getData()).getColor()) {
|
|
||||||
switch (blockState.getType()) {
|
switch (blockState.getType()) {
|
||||||
case BEETROOT_BLOCK:
|
case BEETROOTS:
|
||||||
case CARROT:
|
case CARROT:
|
||||||
case COCOA:
|
case COCOA:
|
||||||
case CROPS:
|
case WHEAT:
|
||||||
case NETHER_WARTS:
|
case NETHER_WART_BLOCK:
|
||||||
case POTATO:
|
case POTATO:
|
||||||
mcMMO.getPlaceStore().setFalse(blockState);
|
mcMMO.getPlaceStore().setFalse(blockState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (herbalismManager.canGreenThumbBlock(blockState)) {
|
if (herbalismManager.canGreenThumbBlock(blockState)) {
|
||||||
player.getInventory().setItemInMainHand(new ItemStack(Material.SEEDS, heldItem.getAmount() - 1));
|
player.getInventory().setItemInMainHand(new ItemStack(Material.WHEAT_SEEDS, heldItem.getAmount() - 1));
|
||||||
|
|
||||||
if (herbalismManager.processGreenThumbBlocks(blockState) && EventUtils.simulateBlockBreak(block, player, false)) {
|
if (herbalismManager.processGreenThumbBlocks(blockState) && EventUtils.simulateBlockBreak(block, player, false)) {
|
||||||
blockState.update(true);
|
blockState.update(true);
|
||||||
|
@ -1,19 +1,5 @@
|
|||||||
package com.gmail.nossr50;
|
package com.gmail.nossr50;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.HandlerList;
|
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
|
||||||
import org.bukkit.plugin.PluginManager;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.config.AdvancedConfig;
|
import com.gmail.nossr50.config.AdvancedConfig;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.config.HiddenConfig;
|
import com.gmail.nossr50.config.HiddenConfig;
|
||||||
@ -28,12 +14,7 @@ import com.gmail.nossr50.config.skills.salvage.SalvageConfigManager;
|
|||||||
import com.gmail.nossr50.config.treasure.TreasureConfig;
|
import com.gmail.nossr50.config.treasure.TreasureConfig;
|
||||||
import com.gmail.nossr50.database.DatabaseManager;
|
import com.gmail.nossr50.database.DatabaseManager;
|
||||||
import com.gmail.nossr50.database.DatabaseManagerFactory;
|
import com.gmail.nossr50.database.DatabaseManagerFactory;
|
||||||
import com.gmail.nossr50.listeners.BlockListener;
|
import com.gmail.nossr50.listeners.*;
|
||||||
import com.gmail.nossr50.listeners.EntityListener;
|
|
||||||
import com.gmail.nossr50.listeners.InventoryListener;
|
|
||||||
import com.gmail.nossr50.listeners.PlayerListener;
|
|
||||||
import com.gmail.nossr50.listeners.SelfListener;
|
|
||||||
import com.gmail.nossr50.listeners.WorldListener;
|
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.runnables.CheckDateTask;
|
import com.gmail.nossr50.runnables.CheckDateTask;
|
||||||
import com.gmail.nossr50.runnables.SaveTimerTask;
|
import com.gmail.nossr50.runnables.SaveTimerTask;
|
||||||
@ -53,12 +34,7 @@ import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
|
|||||||
import com.gmail.nossr50.skills.salvage.salvageables.SalvageableManager;
|
import com.gmail.nossr50.skills.salvage.salvageables.SalvageableManager;
|
||||||
import com.gmail.nossr50.skills.salvage.salvageables.SimpleSalvageableManager;
|
import com.gmail.nossr50.skills.salvage.salvageables.SimpleSalvageableManager;
|
||||||
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
||||||
import com.gmail.nossr50.util.ChimaeraWing;
|
import com.gmail.nossr50.util.*;
|
||||||
import com.gmail.nossr50.util.HolidayManager;
|
|
||||||
import com.gmail.nossr50.util.LogFilter;
|
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.ModManager;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
|
||||||
import com.gmail.nossr50.util.blockmeta.chunkmeta.ChunkManager;
|
import com.gmail.nossr50.util.blockmeta.chunkmeta.ChunkManager;
|
||||||
import com.gmail.nossr50.util.blockmeta.chunkmeta.ChunkManagerFactory;
|
import com.gmail.nossr50.util.blockmeta.chunkmeta.ChunkManagerFactory;
|
||||||
import com.gmail.nossr50.util.commands.CommandRegistrationManager;
|
import com.gmail.nossr50.util.commands.CommandRegistrationManager;
|
||||||
@ -67,8 +43,20 @@ import com.gmail.nossr50.util.player.UserManager;
|
|||||||
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
|
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
|
||||||
import com.gmail.nossr50.util.upgrade.UpgradeManager;
|
import com.gmail.nossr50.util.upgrade.UpgradeManager;
|
||||||
import com.google.common.base.Charsets;
|
import com.google.common.base.Charsets;
|
||||||
|
|
||||||
import net.shatteredlands.shatt.backup.ZipLibrary;
|
import net.shatteredlands.shatt.backup.ZipLibrary;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class mcMMO extends JavaPlugin {
|
public class mcMMO extends JavaPlugin {
|
||||||
/* Managers */
|
/* Managers */
|
||||||
@ -439,10 +427,10 @@ public class mcMMO extends JavaPlugin {
|
|||||||
|
|
||||||
if (Config.getInstance().getFluxPickaxeEnabled()) {
|
if (Config.getInstance().getFluxPickaxeEnabled()) {
|
||||||
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.DIAMOND_PICKAXE));
|
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.DIAMOND_PICKAXE));
|
||||||
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.GOLD_PICKAXE));
|
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.GOLDEN_PICKAXE));
|
||||||
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.IRON_PICKAXE));
|
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.IRON_PICKAXE));
|
||||||
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.STONE_PICKAXE));
|
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.STONE_PICKAXE));
|
||||||
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.WOOD_PICKAXE));
|
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.WOODEN_PICKAXE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,39 +1,5 @@
|
|||||||
package com.gmail.nossr50.skills.fishing;
|
package com.gmail.nossr50.skills.fishing;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.WeatherType;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.block.BlockFace;
|
|
||||||
import org.bukkit.enchantments.Enchantment;
|
|
||||||
import org.bukkit.entity.Entity;
|
|
||||||
import org.bukkit.entity.EntityType;
|
|
||||||
import org.bukkit.entity.Fish;
|
|
||||||
import org.bukkit.entity.Item;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.entity.Sheep;
|
|
||||||
import org.bukkit.entity.TNTPrimed;
|
|
||||||
import org.bukkit.entity.ThrownPotion;
|
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.inventory.PlayerInventory;
|
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
|
||||||
import org.bukkit.material.Wool;
|
|
||||||
import org.bukkit.potion.Potion;
|
|
||||||
import org.bukkit.potion.PotionType;
|
|
||||||
import org.bukkit.util.Vector;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.AdvancedConfig;
|
import com.gmail.nossr50.config.AdvancedConfig;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||||
@ -50,17 +16,28 @@ import com.gmail.nossr50.events.skills.fishing.McMMOPlayerFishingTreasureEvent;
|
|||||||
import com.gmail.nossr50.events.skills.fishing.McMMOPlayerShakeEvent;
|
import com.gmail.nossr50.events.skills.fishing.McMMOPlayerShakeEvent;
|
||||||
import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityWeightedActivationCheckEvent;
|
import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityWeightedActivationCheckEvent;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.skills.KrakenAttackTask;
|
import com.gmail.nossr50.runnables.skills.KrakenAttackTask;
|
||||||
import com.gmail.nossr50.skills.SkillManager;
|
import com.gmail.nossr50.skills.SkillManager;
|
||||||
import com.gmail.nossr50.skills.fishing.Fishing.Tier;
|
import com.gmail.nossr50.skills.fishing.Fishing.Tier;
|
||||||
import com.gmail.nossr50.util.BlockUtils;
|
import com.gmail.nossr50.util.*;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
|
||||||
import com.gmail.nossr50.util.ItemUtils;
|
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
|
||||||
import com.gmail.nossr50.util.adapter.SoundAdapter;
|
import com.gmail.nossr50.util.adapter.SoundAdapter;
|
||||||
import com.gmail.nossr50.util.skills.CombatUtils;
|
import com.gmail.nossr50.util.skills.CombatUtils;
|
||||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
import org.bukkit.*;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.BlockFace;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.*;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
|
import org.bukkit.potion.Potion;
|
||||||
|
import org.bukkit.potion.PotionType;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
public class FishingManager extends SkillManager {
|
public class FishingManager extends SkillManager {
|
||||||
private final long FISHING_COOLDOWN_SECONDS = 1000L;
|
private final long FISHING_COOLDOWN_SECONDS = 1000L;
|
||||||
@ -104,7 +81,7 @@ public class FishingManager extends SkillManager {
|
|||||||
vehicle.remove();
|
vehicle.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
player.teleport(player.getTargetBlock((HashSet<Material>) null, 100).getLocation(), TeleportCause.PLUGIN);
|
player.teleport(player.getTargetBlock(null, 100).getLocation(), TeleportCause.PLUGIN);
|
||||||
|
|
||||||
String unleashMessage = AdvancedConfig.getInstance().getPlayerUnleashMessage();
|
String unleashMessage = AdvancedConfig.getInstance().getPlayerUnleashMessage();
|
||||||
|
|
||||||
@ -170,7 +147,7 @@ public class FishingManager extends SkillManager {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Block targetBlock = getPlayer().getTargetBlock((HashSet<Material>) BlockUtils.getTransparentBlocks(), 100);
|
Block targetBlock = getPlayer().getTargetBlock(BlockUtils.getTransparentBlocks(), 100);
|
||||||
|
|
||||||
if (!targetBlock.isLiquid()) {
|
if (!targetBlock.isLiquid()) {
|
||||||
return false;
|
return false;
|
||||||
@ -201,7 +178,7 @@ public class FishingManager extends SkillManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Make sure this is a body of water, not just a block of ice.
|
// Make sure this is a body of water, not just a block of ice.
|
||||||
if (!Fishing.iceFishingBiomes.contains(block.getBiome()) && (block.getRelative(BlockFace.DOWN, 3).getType() != Material.STATIONARY_WATER)) {
|
if (!Fishing.iceFishingBiomes.contains(block.getBiome()) && (block.getRelative(BlockFace.DOWN, 3).getType() != Material.WATER)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,16 +237,16 @@ public class FishingManager extends SkillManager {
|
|||||||
return SkillUtils.handleFoodSkills(getPlayer(), skill, eventFoodLevel, Fishing.fishermansDietRankLevel1, Fishing.fishermansDietMaxLevel, rankChange);
|
return SkillUtils.handleFoodSkills(getPlayer(), skill, eventFoodLevel, Fishing.fishermansDietRankLevel1, Fishing.fishermansDietMaxLevel, rankChange);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void iceFishing(Fish hook, Block block) {
|
public void iceFishing(FishHook hook, Block block) {
|
||||||
// Make a hole
|
// Make a hole
|
||||||
block.setType(Material.STATIONARY_WATER);
|
block.setType(Material.WATER);
|
||||||
|
|
||||||
for (int x = -1; x <= 1; x++) {
|
for (int x = -1; x <= 1; x++) {
|
||||||
for (int z = -1; z <= 1; z++) {
|
for (int z = -1; z <= 1; z++) {
|
||||||
Block relative = block.getRelative(x, 0, z);
|
Block relative = block.getRelative(x, 0, z);
|
||||||
|
|
||||||
if (relative.getType() == Material.ICE) {
|
if (relative.getType() == Material.ICE) {
|
||||||
relative.setType(Material.STATIONARY_WATER);
|
relative.setType(Material.WATER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -278,7 +255,7 @@ public class FishingManager extends SkillManager {
|
|||||||
EventUtils.callFakeFishEvent(getPlayer(), hook);
|
EventUtils.callFakeFishEvent(getPlayer(), hook);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void masterAngler(Fish hook) {
|
public void masterAngler(FishHook hook) {
|
||||||
Player player = getPlayer();
|
Player player = getPlayer();
|
||||||
Location location = hook.getLocation();
|
Location location = hook.getLocation();
|
||||||
double biteChance = hook.getBiteChance();
|
double biteChance = hook.getBiteChance();
|
||||||
@ -401,14 +378,14 @@ public class FishingManager extends SkillManager {
|
|||||||
Player targetPlayer = (Player) target;
|
Player targetPlayer = (Player) target;
|
||||||
|
|
||||||
switch (drop.getType()) {
|
switch (drop.getType()) {
|
||||||
case SKULL_ITEM:
|
case PLAYER_HEAD:
|
||||||
drop.setDurability((short) 3);
|
drop.setDurability((short) 3);
|
||||||
SkullMeta skullMeta = (SkullMeta) drop.getItemMeta();
|
SkullMeta skullMeta = (SkullMeta) drop.getItemMeta();
|
||||||
skullMeta.setOwner(targetPlayer.getName());
|
skullMeta.setOwningPlayer(targetPlayer);
|
||||||
drop.setItemMeta(skullMeta);
|
drop.setItemMeta(skullMeta);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BED_BLOCK:
|
case BEDROCK:
|
||||||
if (TreasureConfig.getInstance().getInventoryStealEnabled()) {
|
if (TreasureConfig.getInstance().getInventoryStealEnabled()) {
|
||||||
PlayerInventory inventory = targetPlayer.getInventory();
|
PlayerInventory inventory = targetPlayer.getInventory();
|
||||||
int length = inventory.getContents().length;
|
int length = inventory.getContents().length;
|
||||||
@ -439,20 +416,13 @@ public class FishingManager extends SkillManager {
|
|||||||
case SHEEP:
|
case SHEEP:
|
||||||
Sheep sheep = (Sheep) target;
|
Sheep sheep = (Sheep) target;
|
||||||
|
|
||||||
if (drop.getType() == Material.WOOL) {
|
if (drop.getType().name().endsWith("WOOL")) {
|
||||||
if (sheep.isSheared()) {
|
if (sheep.isSheared()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
drop = new Wool(sheep.getColor()).toItemStack(drop.getAmount());
|
|
||||||
sheep.setSheared(true);
|
sheep.setSheared(true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WITHER_SKELETON:
|
|
||||||
if(drop.getType() == Material.SKULL_ITEM){
|
|
||||||
drop.setDurability((short) 1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,14 @@
|
|||||||
package com.gmail.nossr50.skills.herbalism;
|
package com.gmail.nossr50.skills.herbalism;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.config.AdvancedConfig;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
import org.bukkit.material.SmoothBrick;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.AdvancedConfig;
|
|
||||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Herbalism {
|
public class Herbalism {
|
||||||
|
|
||||||
@ -32,12 +28,12 @@ public class Herbalism {
|
|||||||
*/
|
*/
|
||||||
protected static boolean convertGreenTerraBlocks(BlockState blockState) {
|
protected static boolean convertGreenTerraBlocks(BlockState blockState) {
|
||||||
switch (blockState.getType()) {
|
switch (blockState.getType()) {
|
||||||
case COBBLE_WALL :
|
case COBBLESTONE_WALL:
|
||||||
blockState.setRawData((byte) 0x1);
|
blockState.setType(Material.MOSSY_COBBLESTONE_WALL);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case SMOOTH_BRICK :
|
case STONE_BRICKS:
|
||||||
((SmoothBrick) blockState.getData()).setMaterial(Material.MOSSY_COBBLESTONE);
|
blockState.setType(Material.MOSSY_STONE_BRICKS);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case DIRT :
|
case DIRT :
|
||||||
@ -124,7 +120,7 @@ public class Herbalism {
|
|||||||
if (blockType == Material.CHORUS_PLANT) {
|
if (blockType == Material.CHORUS_PLANT) {
|
||||||
dropAmount = 1;
|
dropAmount = 1;
|
||||||
|
|
||||||
if (block.getRelative(BlockFace.DOWN, 1).getType() == Material.ENDER_STONE) {
|
if (block.getRelative(BlockFace.DOWN, 1).getType() == Material.END_STONE) {
|
||||||
HashSet<Block> blocks = findChorusPlant(block);
|
HashSet<Block> blocks = findChorusPlant(block);
|
||||||
|
|
||||||
dropAmount = blocks.size();
|
dropAmount = blocks.size();
|
||||||
@ -167,7 +163,7 @@ public class Herbalism {
|
|||||||
case DIRT :
|
case DIRT :
|
||||||
case GRASS :
|
case GRASS :
|
||||||
case GRASS_PATH :
|
case GRASS_PATH :
|
||||||
blockState.setType(Material.MYCEL);
|
blockState.setType(Material.MYCELIUM);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
|
@ -1,8 +1,18 @@
|
|||||||
package com.gmail.nossr50.skills.herbalism;
|
package com.gmail.nossr50.skills.herbalism;
|
||||||
|
|
||||||
import java.util.Collection;
|
import com.gmail.nossr50.config.Config;
|
||||||
import java.util.List;
|
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||||
|
import com.gmail.nossr50.config.treasure.TreasureConfig;
|
||||||
|
import com.gmail.nossr50.datatypes.mods.CustomBlock;
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.*;
|
||||||
|
import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
|
||||||
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.runnables.skills.HerbalismBlockUpdaterTask;
|
||||||
|
import com.gmail.nossr50.skills.SkillManager;
|
||||||
|
import com.gmail.nossr50.util.*;
|
||||||
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
import org.bukkit.CropState;
|
import org.bukkit.CropState;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -17,27 +27,8 @@ import org.bukkit.material.Crops;
|
|||||||
import org.bukkit.material.NetherWarts;
|
import org.bukkit.material.NetherWarts;
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import java.util.Collection;
|
||||||
import com.gmail.nossr50.config.Config;
|
import java.util.List;
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
|
||||||
import com.gmail.nossr50.config.treasure.TreasureConfig;
|
|
||||||
import com.gmail.nossr50.datatypes.mods.CustomBlock;
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.ToolType;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
|
||||||
import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
|
||||||
import com.gmail.nossr50.runnables.skills.HerbalismBlockUpdaterTask;
|
|
||||||
import com.gmail.nossr50.skills.SkillManager;
|
|
||||||
import com.gmail.nossr50.util.BlockUtils;
|
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
|
||||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
|
||||||
|
|
||||||
public class HerbalismManager extends SkillManager {
|
public class HerbalismManager extends SkillManager {
|
||||||
public HerbalismManager(McMMOPlayer mcMMOPlayer) {
|
public HerbalismManager(McMMOPlayer mcMMOPlayer) {
|
||||||
@ -52,7 +43,7 @@ public class HerbalismManager extends SkillManager {
|
|||||||
Player player = getPlayer();
|
Player player = getPlayer();
|
||||||
ItemStack item = player.getInventory().getItemInMainHand();
|
ItemStack item = player.getInventory().getItemInMainHand();
|
||||||
|
|
||||||
return item.getAmount() > 0 && item.getType() == Material.SEEDS && BlockUtils.canMakeMossy(blockState) && Permissions.greenThumbBlock(player, blockState.getType());
|
return item.getAmount() > 0 && item.getType() == Material.WHEAT_SEEDS && BlockUtils.canMakeMossy(blockState) && Permissions.greenThumbBlock(player, blockState.getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canUseShroomThumb(BlockState blockState) {
|
public boolean canUseShroomThumb(BlockState blockState) {
|
||||||
@ -104,7 +95,7 @@ public class HerbalismManager extends SkillManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PlayerInventory playerInventory = player.getInventory();
|
PlayerInventory playerInventory = player.getInventory();
|
||||||
ItemStack seed = new ItemStack(Material.SEEDS);
|
ItemStack seed = new ItemStack(Material.WHEAT_SEEDS);
|
||||||
|
|
||||||
if (!playerInventory.containsAtLeast(seed, 1)) {
|
if (!playerInventory.containsAtLeast(seed, 1)) {
|
||||||
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.GTe.NeedMore"));
|
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.GTe.NeedMore"));
|
||||||
@ -123,7 +114,7 @@ public class HerbalismManager extends SkillManager {
|
|||||||
public void herbalismBlockCheck(BlockState blockState) {
|
public void herbalismBlockCheck(BlockState blockState) {
|
||||||
Player player = getPlayer();
|
Player player = getPlayer();
|
||||||
Material material = blockState.getType();
|
Material material = blockState.getType();
|
||||||
boolean oneBlockPlant = !(material == Material.CACTUS || material == Material.CHORUS_PLANT || material == Material.SUGAR_CANE_BLOCK);
|
boolean oneBlockPlant = !(material == Material.CACTUS || material == Material.CHORUS_PLANT || material == Material.SUGAR_CANE);
|
||||||
|
|
||||||
// Prevents placing and immediately breaking blocks for exp
|
// Prevents placing and immediately breaking blocks for exp
|
||||||
if (oneBlockPlant && mcMMO.getPlaceStore().isTrue(blockState)) {
|
if (oneBlockPlant && mcMMO.getPlaceStore().isTrue(blockState)) {
|
||||||
@ -279,23 +270,23 @@ public class HerbalismManager extends SkillManager {
|
|||||||
Material seed = null;
|
Material seed = null;
|
||||||
|
|
||||||
switch (blockState.getType()) {
|
switch (blockState.getType()) {
|
||||||
case CARROT:
|
case CARROTS:
|
||||||
seed = Material.CARROT_ITEM;
|
seed = Material.CARROT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CROPS:
|
case WHEAT:
|
||||||
seed = Material.SEEDS;
|
seed = Material.WHEAT_SEEDS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NETHER_WARTS:
|
case NETHER_WART_BLOCK:
|
||||||
seed = Material.NETHER_STALK;
|
seed = Material.NETHER_WART;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case POTATO:
|
case POTATOES:
|
||||||
seed = Material.POTATO_ITEM;
|
seed = Material.POTATO;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BEETROOT_BLOCK:
|
case BEETROOTS:
|
||||||
seed = Material.BEETROOT_SEEDS;
|
seed = Material.BEETROOT_SEEDS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -331,8 +322,8 @@ public class HerbalismManager extends SkillManager {
|
|||||||
|
|
||||||
case POTATO:
|
case POTATO:
|
||||||
case CARROT:
|
case CARROT:
|
||||||
case BEETROOT_BLOCK:
|
case BEETROOTS:
|
||||||
case CROPS:
|
case WHEAT:
|
||||||
Crops crops = (Crops) blockState.getData();
|
Crops crops = (Crops) blockState.getData();
|
||||||
|
|
||||||
if (greenTerra) {
|
if (greenTerra) {
|
||||||
@ -357,7 +348,7 @@ public class HerbalismManager extends SkillManager {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case NETHER_WARTS:
|
case NETHER_WART_BLOCK:
|
||||||
NetherWarts warts = (NetherWarts) blockState.getData();
|
NetherWarts warts = (NetherWarts) blockState.getData();
|
||||||
|
|
||||||
if (greenTerra || greenThumbStage > 2) {
|
if (greenTerra || greenThumbStage > 2) {
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
package com.gmail.nossr50.skills.mining;
|
package com.gmail.nossr50.skills.mining;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.block.BlockState;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.Config;
|
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.Misc;
|
import com.gmail.nossr50.util.Misc;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.BlockState;
|
||||||
|
|
||||||
public class Mining {
|
public class Mining {
|
||||||
|
|
||||||
@ -36,31 +33,56 @@ public class Mining {
|
|||||||
Material blockType = blockState.getType();
|
Material blockType = blockState.getType();
|
||||||
|
|
||||||
switch (blockType) {
|
switch (blockType) {
|
||||||
case ENDER_STONE:
|
case END_STONE:
|
||||||
case GOLD_ORE:
|
case TERRACOTTA:
|
||||||
case HARD_CLAY:
|
case CLAY:
|
||||||
case IRON_ORE:
|
case IRON_ORE:
|
||||||
case MOSSY_COBBLESTONE:
|
case MOSSY_COBBLESTONE:
|
||||||
case NETHERRACK:
|
case NETHERRACK:
|
||||||
case OBSIDIAN:
|
case OBSIDIAN:
|
||||||
case SANDSTONE:
|
case SANDSTONE:
|
||||||
case STAINED_CLAY:
|
case BLACK_GLAZED_TERRACOTTA:
|
||||||
|
case BLACK_TERRACOTTA:
|
||||||
|
case BLUE_GLAZED_TERRACOTTA:
|
||||||
|
case BLUE_TERRACOTTA:
|
||||||
|
case BROWN_GLAZED_TERRACOTTA:
|
||||||
|
case BROWN_TERRACOTTA:
|
||||||
|
case CYAN_GLAZED_TERRACOTTA:
|
||||||
|
case CYAN_TERRACOTTA:
|
||||||
|
case GRAY_GLAZED_TERRACOTTA:
|
||||||
|
case GRAY_TERRACOTTA:
|
||||||
|
case GREEN_GLAZED_TERRACOTTA:
|
||||||
|
case GREEN_TERRACOTTA:
|
||||||
|
case LIGHT_BLUE_GLAZED_TERRACOTTA:
|
||||||
|
case LIGHT_BLUE_TERRACOTTA:
|
||||||
|
case LIGHT_GRAY_GLAZED_TERRACOTTA:
|
||||||
|
case LIGHT_GRAY_TERRACOTTA:
|
||||||
|
case LIME_GLAZED_TERRACOTTA:
|
||||||
|
case LIME_TERRACOTTA:
|
||||||
|
case MAGENTA_GLAZED_TERRACOTTA:
|
||||||
|
case MAGENTA_TERRACOTTA:
|
||||||
|
case ORANGE_GLAZED_TERRACOTTA:
|
||||||
|
case ORANGE_TERRACOTTA:
|
||||||
|
case PINK_GLAZED_TERRACOTTA:
|
||||||
|
case PINK_TERRACOTTA:
|
||||||
|
case PURPLE_GLAZED_TERRACOTTA:
|
||||||
|
case PURPLE_TERRACOTTA:
|
||||||
|
case RED_GLAZED_TERRACOTTA:
|
||||||
|
case RED_TERRACOTTA:
|
||||||
|
case WHITE_GLAZED_TERRACOTTA:
|
||||||
|
case WHITE_TERRACOTTA:
|
||||||
|
case YELLOW_GLAZED_TERRACOTTA:
|
||||||
|
case YELLOW_TERRACOTTA:
|
||||||
handleMiningDrops(blockState);
|
handleMiningDrops(blockState);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case GLOWING_REDSTONE_ORE:
|
|
||||||
if (Config.getInstance().getDoubleDropsEnabled(SkillType.MINING, Material.REDSTONE_ORE)) {
|
|
||||||
Misc.dropItem(Misc.getBlockCenter(blockState), new ItemStack(Material.REDSTONE_ORE));
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
|
|
||||||
case COAL_ORE:
|
case COAL_ORE:
|
||||||
case DIAMOND_ORE:
|
case DIAMOND_ORE:
|
||||||
case EMERALD_ORE:
|
case EMERALD_ORE:
|
||||||
case GLOWSTONE:
|
case GLOWSTONE:
|
||||||
case LAPIS_ORE:
|
case LAPIS_ORE:
|
||||||
case PACKED_ICE:
|
case PACKED_ICE:
|
||||||
case QUARTZ_ORE:
|
case NETHER_QUARTZ_ORE:
|
||||||
case REDSTONE_ORE:
|
case REDSTONE_ORE:
|
||||||
case STONE:
|
case STONE:
|
||||||
case PRISMARINE:
|
case PRISMARINE:
|
||||||
@ -85,10 +107,10 @@ public class Mining {
|
|||||||
case COAL_ORE:
|
case COAL_ORE:
|
||||||
case DIAMOND_ORE:
|
case DIAMOND_ORE:
|
||||||
case EMERALD_ORE:
|
case EMERALD_ORE:
|
||||||
case ENDER_STONE:
|
case END_STONE:
|
||||||
case GLOWSTONE:
|
case GLOWSTONE:
|
||||||
case GOLD_ORE:
|
case GOLD_ORE:
|
||||||
case HARD_CLAY:
|
case TERRACOTTA:
|
||||||
case IRON_ORE:
|
case IRON_ORE:
|
||||||
case LAPIS_ORE:
|
case LAPIS_ORE:
|
||||||
case MOSSY_COBBLESTONE:
|
case MOSSY_COBBLESTONE:
|
||||||
@ -97,18 +119,43 @@ public class Mining {
|
|||||||
case PACKED_ICE:
|
case PACKED_ICE:
|
||||||
case REDSTONE_ORE:
|
case REDSTONE_ORE:
|
||||||
case SANDSTONE:
|
case SANDSTONE:
|
||||||
case STAINED_CLAY:
|
case BLACK_GLAZED_TERRACOTTA:
|
||||||
|
case BLACK_TERRACOTTA:
|
||||||
|
case BLUE_GLAZED_TERRACOTTA:
|
||||||
|
case BLUE_TERRACOTTA:
|
||||||
|
case BROWN_GLAZED_TERRACOTTA:
|
||||||
|
case BROWN_TERRACOTTA:
|
||||||
|
case CYAN_GLAZED_TERRACOTTA:
|
||||||
|
case CYAN_TERRACOTTA:
|
||||||
|
case GRAY_GLAZED_TERRACOTTA:
|
||||||
|
case GRAY_TERRACOTTA:
|
||||||
|
case GREEN_GLAZED_TERRACOTTA:
|
||||||
|
case GREEN_TERRACOTTA:
|
||||||
|
case LIGHT_BLUE_GLAZED_TERRACOTTA:
|
||||||
|
case LIGHT_BLUE_TERRACOTTA:
|
||||||
|
case LIGHT_GRAY_GLAZED_TERRACOTTA:
|
||||||
|
case LIGHT_GRAY_TERRACOTTA:
|
||||||
|
case LIME_GLAZED_TERRACOTTA:
|
||||||
|
case LIME_TERRACOTTA:
|
||||||
|
case MAGENTA_GLAZED_TERRACOTTA:
|
||||||
|
case MAGENTA_TERRACOTTA:
|
||||||
|
case ORANGE_GLAZED_TERRACOTTA:
|
||||||
|
case ORANGE_TERRACOTTA:
|
||||||
|
case PINK_GLAZED_TERRACOTTA:
|
||||||
|
case PINK_TERRACOTTA:
|
||||||
|
case PURPLE_GLAZED_TERRACOTTA:
|
||||||
|
case PURPLE_TERRACOTTA:
|
||||||
|
case RED_GLAZED_TERRACOTTA:
|
||||||
|
case RED_TERRACOTTA:
|
||||||
|
case WHITE_GLAZED_TERRACOTTA:
|
||||||
|
case WHITE_TERRACOTTA:
|
||||||
|
case YELLOW_GLAZED_TERRACOTTA:
|
||||||
|
case YELLOW_TERRACOTTA:
|
||||||
case STONE:
|
case STONE:
|
||||||
case QUARTZ_ORE:
|
case NETHER_QUARTZ_ORE:
|
||||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case GLOWING_REDSTONE_ORE:
|
|
||||||
if (Config.getInstance().getDoubleDropsEnabled(SkillType.MINING, Material.REDSTONE_ORE)) {
|
|
||||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (mcMMO.getModManager().isCustomMiningBlock(blockState)) {
|
if (mcMMO.getModManager().isCustomMiningBlock(blockState)) {
|
||||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
||||||
|
@ -1,17 +1,5 @@
|
|||||||
package com.gmail.nossr50.skills.mining;
|
package com.gmail.nossr50.skills.mining;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.block.BlockState;
|
|
||||||
import org.bukkit.enchantments.Enchantment;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.entity.TNTPrimed;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||||
@ -19,6 +7,7 @@ import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
|||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.skills.AbilityCooldownTask;
|
import com.gmail.nossr50.runnables.skills.AbilityCooldownTask;
|
||||||
import com.gmail.nossr50.skills.SkillManager;
|
import com.gmail.nossr50.skills.SkillManager;
|
||||||
import com.gmail.nossr50.skills.mining.BlastMining.Tier;
|
import com.gmail.nossr50.skills.mining.BlastMining.Tier;
|
||||||
@ -27,6 +16,15 @@ import com.gmail.nossr50.util.EventUtils;
|
|||||||
import com.gmail.nossr50.util.Misc;
|
import com.gmail.nossr50.util.Misc;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.BlockState;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.TNTPrimed;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class MiningManager extends SkillManager {
|
public class MiningManager extends SkillManager {
|
||||||
public MiningManager(McMMOPlayer mcMMOPlayer) {
|
public MiningManager(McMMOPlayer mcMMOPlayer) {
|
||||||
@ -71,7 +69,7 @@ public class MiningManager extends SkillManager {
|
|||||||
SkillUtils.handleDurabilityChange(getPlayer().getInventory().getItemInMainHand(), Config.getInstance().getAbilityToolDamage());
|
SkillUtils.handleDurabilityChange(getPlayer().getInventory().getItemInMainHand(), Config.getInstance().getAbilityToolDamage());
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((mcMMO.getModManager().isCustomMiningBlock(blockState) && !mcMMO.getModManager().getBlock(blockState).isDoubleDropEnabled()) || material != Material.GLOWING_REDSTONE_ORE && !Config.getInstance().getDoubleDropsEnabled(skill, material)) {
|
if ((mcMMO.getModManager().isCustomMiningBlock(blockState) && !mcMMO.getModManager().getBlock(blockState).isDoubleDropEnabled()) || !Config.getInstance().getDoubleDropsEnabled(skill, material)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,7 +92,7 @@ public class MiningManager extends SkillManager {
|
|||||||
*/
|
*/
|
||||||
public void remoteDetonation() {
|
public void remoteDetonation() {
|
||||||
Player player = getPlayer();
|
Player player = getPlayer();
|
||||||
Block targetBlock = player.getTargetBlock((HashSet<Material>) BlockUtils.getTransparentBlocks(), BlastMining.MAXIMUM_REMOTE_DETONATION_DISTANCE);
|
Block targetBlock = player.getTargetBlock(BlockUtils.getTransparentBlocks(), BlastMining.MAXIMUM_REMOTE_DETONATION_DISTANCE);
|
||||||
|
|
||||||
if (targetBlock.getType() != Material.TNT || !EventUtils.simulateBlockBreak(targetBlock, player, true) || !blastMiningCooldownOver()) {
|
if (targetBlock.getType() != Material.TNT || !EventUtils.simulateBlockBreak(targetBlock, player, true) || !blastMiningCooldownOver()) {
|
||||||
return;
|
return;
|
||||||
|
@ -1,15 +1,5 @@
|
|||||||
package com.gmail.nossr50.skills.unarmed;
|
package com.gmail.nossr50.skills.unarmed;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.block.BlockState;
|
|
||||||
import org.bukkit.entity.Item;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.material.MaterialData;
|
|
||||||
import org.bukkit.material.SmoothBrick;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.AdvancedConfig;
|
import com.gmail.nossr50.config.AdvancedConfig;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||||
@ -17,6 +7,7 @@ import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
|||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.datatypes.skills.ToolType;
|
import com.gmail.nossr50.datatypes.skills.ToolType;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.skills.SkillManager;
|
import com.gmail.nossr50.skills.SkillManager;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
import com.gmail.nossr50.util.EventUtils;
|
||||||
import com.gmail.nossr50.util.ItemUtils;
|
import com.gmail.nossr50.util.ItemUtils;
|
||||||
@ -24,6 +15,13 @@ import com.gmail.nossr50.util.Misc;
|
|||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.BlockState;
|
||||||
|
import org.bukkit.entity.Item;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.material.MaterialData;
|
||||||
|
|
||||||
public class UnarmedManager extends SkillManager {
|
public class UnarmedManager extends SkillManager {
|
||||||
public UnarmedManager(McMMOPlayer mcMMOPlayer) {
|
public UnarmedManager(McMMOPlayer mcMMOPlayer) {
|
||||||
@ -64,19 +62,12 @@ public class UnarmedManager extends SkillManager {
|
|||||||
MaterialData data = blockState.getData();
|
MaterialData data = blockState.getData();
|
||||||
|
|
||||||
switch (blockState.getType()) {
|
switch (blockState.getType()) {
|
||||||
case SMOOTH_BRICK:
|
case STONE_BRICKS:
|
||||||
if (!Unarmed.blockCrackerSmoothBrick) {
|
if (!Unarmed.blockCrackerSmoothBrick) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Yes, this is awkward, but it's the *right* way to do it.
|
blockState.setType(Material.CRACKED_STONE_BRICKS);
|
||||||
SmoothBrick smoothBrick = (SmoothBrick) data;
|
|
||||||
|
|
||||||
if (smoothBrick.getMaterial() != Material.STONE) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
smoothBrick.setMaterial(Material.COBBLESTONE);
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
package com.gmail.nossr50.skills.woodcutting;
|
package com.gmail.nossr50.skills.woodcutting;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.gmail.nossr50.config.AdvancedConfig;
|
||||||
import java.util.List;
|
import com.gmail.nossr50.config.Config;
|
||||||
import java.util.Set;
|
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.util.BlockUtils;
|
||||||
|
import com.gmail.nossr50.util.Misc;
|
||||||
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.TreeSpecies;
|
import org.bukkit.TreeSpecies;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
@ -11,14 +15,9 @@ import org.bukkit.block.BlockState;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.material.Tree;
|
import org.bukkit.material.Tree;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import java.util.ArrayList;
|
||||||
import com.gmail.nossr50.config.AdvancedConfig;
|
import java.util.List;
|
||||||
import com.gmail.nossr50.config.Config;
|
import java.util.Set;
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
|
||||||
import com.gmail.nossr50.util.BlockUtils;
|
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
|
||||||
|
|
||||||
public final class Woodcutting {
|
public final class Woodcutting {
|
||||||
public static int leafBlowerUnlockLevel = AdvancedConfig.getInstance().getLeafBlowUnlockLevel();
|
public static int leafBlowerUnlockLevel = AdvancedConfig.getInstance().getLeafBlowUnlockLevel();
|
||||||
@ -29,7 +28,7 @@ public final class Woodcutting {
|
|||||||
protected enum ExperienceGainMethod {
|
protected enum ExperienceGainMethod {
|
||||||
DEFAULT,
|
DEFAULT,
|
||||||
TREE_FELLER,
|
TREE_FELLER,
|
||||||
};
|
}
|
||||||
|
|
||||||
private Woodcutting() {}
|
private Woodcutting() {}
|
||||||
|
|
||||||
@ -58,20 +57,7 @@ public final class Woodcutting {
|
|||||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//TODO Remove this workaround when casting to Tree works again
|
TreeSpecies species = new Tree(blockState.getType()).getSpecies();
|
||||||
TreeSpecies species = TreeSpecies.GENERIC;
|
|
||||||
if (blockState.getData() instanceof Tree) {
|
|
||||||
species = ((Tree) blockState.getData()).getSpecies();
|
|
||||||
}
|
|
||||||
if (blockState.getType() == Material.LOG_2) {
|
|
||||||
byte data = blockState.getRawData();
|
|
||||||
if ((data & 1) != 0) {
|
|
||||||
species = TreeSpecies.ACACIA;
|
|
||||||
}
|
|
||||||
if ((data & 2) != 0) {
|
|
||||||
species = TreeSpecies.DARK_OAK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.getInstance().getWoodcuttingDoubleDropsEnabled(species)) {
|
if (Config.getInstance().getWoodcuttingDoubleDropsEnabled(species)) {
|
||||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
||||||
|
@ -1,17 +1,5 @@
|
|||||||
package com.gmail.nossr50.skills.woodcutting;
|
package com.gmail.nossr50.skills.woodcutting;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.block.BlockFace;
|
|
||||||
import org.bukkit.block.BlockState;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.material.Tree;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.datatypes.mods.CustomBlock;
|
import com.gmail.nossr50.datatypes.mods.CustomBlock;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||||
@ -19,14 +7,20 @@ import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
|||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.skills.SkillManager;
|
import com.gmail.nossr50.skills.SkillManager;
|
||||||
import com.gmail.nossr50.skills.woodcutting.Woodcutting.ExperienceGainMethod;
|
import com.gmail.nossr50.skills.woodcutting.Woodcutting.ExperienceGainMethod;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
import com.gmail.nossr50.util.*;
|
||||||
import com.gmail.nossr50.util.ItemUtils;
|
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
|
||||||
import com.gmail.nossr50.util.skills.CombatUtils;
|
import com.gmail.nossr50.util.skills.CombatUtils;
|
||||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.BlockState;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class WoodcuttingManager extends SkillManager {
|
public class WoodcuttingManager extends SkillManager {
|
||||||
public WoodcuttingManager(McMMOPlayer mcMMOPlayer) {
|
public WoodcuttingManager(McMMOPlayer mcMMOPlayer) {
|
||||||
@ -54,8 +48,8 @@ public class WoodcuttingManager extends SkillManager {
|
|||||||
int xp = Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.DEFAULT);
|
int xp = Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.DEFAULT);
|
||||||
|
|
||||||
switch (blockState.getType()) {
|
switch (blockState.getType()) {
|
||||||
case HUGE_MUSHROOM_1:
|
case BROWN_MUSHROOM_BLOCK:
|
||||||
case HUGE_MUSHROOM_2:
|
case RED_MUSHROOM_BLOCK:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -123,7 +117,7 @@ public class WoodcuttingManager extends SkillManager {
|
|||||||
|
|
||||||
Material material = blockState.getType();
|
Material material = blockState.getType();
|
||||||
|
|
||||||
if (material == Material.HUGE_MUSHROOM_1 || material == Material.HUGE_MUSHROOM_2) {
|
if (material == Material.BROWN_MUSHROOM_BLOCK || material == Material.RED_MUSHROOM_BLOCK) {
|
||||||
xp += Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.TREE_FELLER);
|
xp += Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.TREE_FELLER);
|
||||||
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
||||||
}
|
}
|
||||||
@ -141,29 +135,16 @@ public class WoodcuttingManager extends SkillManager {
|
|||||||
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//TODO Remove this workaround when casting to Tree works again
|
|
||||||
if (blockState.getData() instanceof Tree) {
|
|
||||||
Tree tree = (Tree) blockState.getData();
|
|
||||||
tree.setDirection(BlockFace.UP);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (material) {
|
if (BlockUtils.isLog(blockState)) {
|
||||||
case LOG:
|
|
||||||
case LOG_2:
|
|
||||||
if (canGetDoubleDrops()) {
|
if (canGetDoubleDrops()) {
|
||||||
Woodcutting.checkForDoubleDrop(blockState);
|
Woodcutting.checkForDoubleDrop(blockState);
|
||||||
}
|
}
|
||||||
xp += Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.TREE_FELLER);
|
xp += Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.TREE_FELLER);
|
||||||
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
||||||
break;
|
}
|
||||||
|
if (BlockUtils.isLeaves(blockState)) {
|
||||||
case LEAVES:
|
|
||||||
case LEAVES_2:
|
|
||||||
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,22 +1,14 @@
|
|||||||
package com.gmail.nossr50.util;
|
package com.gmail.nossr50.util;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
import org.bukkit.CropState;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.NetherWartsState;
|
|
||||||
import org.bukkit.block.BlockState;
|
|
||||||
import org.bukkit.material.CocoaPlant;
|
|
||||||
import org.bukkit.material.CocoaPlant.CocoaPlantSize;
|
|
||||||
import org.bukkit.material.Crops;
|
|
||||||
import org.bukkit.material.NetherWarts;
|
|
||||||
import org.bukkit.material.SmoothBrick;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.skills.repair.Repair;
|
import com.gmail.nossr50.skills.repair.Repair;
|
||||||
import com.gmail.nossr50.skills.salvage.Salvage;
|
import com.gmail.nossr50.skills.salvage.Salvage;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.BlockState;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
public final class BlockUtils {
|
public final class BlockUtils {
|
||||||
|
|
||||||
@ -43,32 +35,54 @@ public final class BlockUtils {
|
|||||||
*/
|
*/
|
||||||
public static boolean canActivateAbilities(BlockState blockState) {
|
public static boolean canActivateAbilities(BlockState blockState) {
|
||||||
switch (blockState.getType()) {
|
switch (blockState.getType()) {
|
||||||
case BED_BLOCK :
|
case BLACK_BED:
|
||||||
|
case BLUE_BED:
|
||||||
|
case BROWN_BED:
|
||||||
|
case CYAN_BED:
|
||||||
|
case GRAY_BED:
|
||||||
|
case GREEN_BED:
|
||||||
|
case LIGHT_BLUE_BED:
|
||||||
|
case LIGHT_GRAY_BED:
|
||||||
|
case LIME_BED:
|
||||||
|
case MAGENTA_BED:
|
||||||
|
case ORANGE_BED:
|
||||||
|
case PINK_BED:
|
||||||
|
case PURPLE_BED:
|
||||||
|
case RED_BED:
|
||||||
|
case WHITE_BED:
|
||||||
|
case YELLOW_BED:
|
||||||
case BREWING_STAND :
|
case BREWING_STAND :
|
||||||
case BOOKSHELF :
|
case BOOKSHELF :
|
||||||
case BURNING_FURNACE :
|
case CAKE:
|
||||||
case CAKE_BLOCK :
|
|
||||||
case CHEST :
|
case CHEST :
|
||||||
case DISPENSER :
|
case DISPENSER :
|
||||||
case ENCHANTMENT_TABLE :
|
case ENCHANTING_TABLE:
|
||||||
case ENDER_CHEST :
|
case ENDER_CHEST :
|
||||||
case FENCE_GATE :
|
case OAK_FENCE_GATE:
|
||||||
case ACACIA_FENCE_GATE :
|
case ACACIA_FENCE_GATE :
|
||||||
case DARK_OAK_FENCE_GATE :
|
case DARK_OAK_FENCE_GATE :
|
||||||
case SPRUCE_FENCE_GATE :
|
case SPRUCE_FENCE_GATE :
|
||||||
case BIRCH_FENCE_GATE :
|
case BIRCH_FENCE_GATE :
|
||||||
case JUNGLE_FENCE_GATE :
|
case JUNGLE_FENCE_GATE :
|
||||||
case FURNACE :
|
case FURNACE :
|
||||||
case IRON_DOOR_BLOCK :
|
|
||||||
case JUKEBOX :
|
case JUKEBOX :
|
||||||
case LEVER :
|
case LEVER :
|
||||||
case NOTE_BLOCK :
|
case NOTE_BLOCK :
|
||||||
case STONE_BUTTON :
|
case STONE_BUTTON :
|
||||||
case WOOD_BUTTON :
|
case OAK_BUTTON:
|
||||||
case TRAP_DOOR :
|
case BIRCH_BUTTON:
|
||||||
|
case ACACIA_BUTTON:
|
||||||
|
case DARK_OAK_BUTTON:
|
||||||
|
case JUNGLE_BUTTON:
|
||||||
|
case SPRUCE_BUTTON:
|
||||||
|
case ACACIA_TRAPDOOR:
|
||||||
|
case BIRCH_TRAPDOOR:
|
||||||
|
case DARK_OAK_TRAPDOOR:
|
||||||
|
case JUNGLE_TRAPDOOR:
|
||||||
|
case OAK_TRAPDOOR:
|
||||||
|
case SPRUCE_TRAPDOOR:
|
||||||
case WALL_SIGN :
|
case WALL_SIGN :
|
||||||
case WOODEN_DOOR :
|
case CRAFTING_TABLE:
|
||||||
case WORKBENCH :
|
|
||||||
case BEACON :
|
case BEACON :
|
||||||
case ANVIL :
|
case ANVIL :
|
||||||
case DROPPER :
|
case DROPPER :
|
||||||
@ -76,12 +90,13 @@ public final class BlockUtils {
|
|||||||
case TRAPPED_CHEST :
|
case TRAPPED_CHEST :
|
||||||
case IRON_DOOR :
|
case IRON_DOOR :
|
||||||
case IRON_TRAPDOOR :
|
case IRON_TRAPDOOR :
|
||||||
|
case OAK_DOOR:
|
||||||
case ACACIA_DOOR :
|
case ACACIA_DOOR :
|
||||||
case SPRUCE_DOOR :
|
case SPRUCE_DOOR :
|
||||||
case BIRCH_DOOR :
|
case BIRCH_DOOR :
|
||||||
case JUNGLE_DOOR :
|
case JUNGLE_DOOR :
|
||||||
case DARK_OAK_DOOR :
|
case DARK_OAK_DOOR :
|
||||||
case FENCE :
|
case OAK_FENCE:
|
||||||
case ACACIA_FENCE :
|
case ACACIA_FENCE :
|
||||||
case DARK_OAK_FENCE :
|
case DARK_OAK_FENCE :
|
||||||
case BIRCH_FENCE :
|
case BIRCH_FENCE :
|
||||||
@ -101,7 +116,7 @@ public final class BlockUtils {
|
|||||||
case PINK_SHULKER_BOX :
|
case PINK_SHULKER_BOX :
|
||||||
case PURPLE_SHULKER_BOX :
|
case PURPLE_SHULKER_BOX :
|
||||||
case RED_SHULKER_BOX :
|
case RED_SHULKER_BOX :
|
||||||
case SILVER_SHULKER_BOX :
|
case LIGHT_GRAY_SHULKER_BOX:
|
||||||
case WHITE_SHULKER_BOX :
|
case WHITE_SHULKER_BOX :
|
||||||
case YELLOW_SHULKER_BOX :
|
case YELLOW_SHULKER_BOX :
|
||||||
return false;
|
return false;
|
||||||
@ -136,11 +151,11 @@ public final class BlockUtils {
|
|||||||
case GRASS_PATH :
|
case GRASS_PATH :
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case SMOOTH_BRICK :
|
case STONE_BRICKS:
|
||||||
return ((SmoothBrick) blockState.getData()).getMaterial() == Material.STONE;
|
return true;
|
||||||
|
|
||||||
case COBBLE_WALL :
|
case COBBLESTONE_WALL:
|
||||||
return blockState.getRawData() == (byte) 0x0;
|
return true;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
return false;
|
return false;
|
||||||
@ -212,8 +227,12 @@ public final class BlockUtils {
|
|||||||
*/
|
*/
|
||||||
public static boolean isLeaves(BlockState blockState) {
|
public static boolean isLeaves(BlockState blockState) {
|
||||||
switch (blockState.getType()) {
|
switch (blockState.getType()) {
|
||||||
case LEAVES :
|
case OAK_LEAVES:
|
||||||
case LEAVES_2 :
|
case ACACIA_LEAVES:
|
||||||
|
case BIRCH_LEAVES:
|
||||||
|
case DARK_OAK_LEAVES:
|
||||||
|
case JUNGLE_LEAVES:
|
||||||
|
case SPRUCE_LEAVES:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
@ -252,7 +271,7 @@ public final class BlockUtils {
|
|||||||
case DIRT :
|
case DIRT :
|
||||||
case GRASS :
|
case GRASS :
|
||||||
case GRASS_PATH :
|
case GRASS_PATH :
|
||||||
case SOIL :
|
case FARMLAND:
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
@ -270,8 +289,8 @@ public final class BlockUtils {
|
|||||||
*/
|
*/
|
||||||
public static boolean affectedByBlockCracker(BlockState blockState) {
|
public static boolean affectedByBlockCracker(BlockState blockState) {
|
||||||
switch (blockState.getType()) {
|
switch (blockState.getType()) {
|
||||||
case SMOOTH_BRICK :
|
case STONE_BRICKS:
|
||||||
return ((SmoothBrick) blockState.getData()).getMaterial() == Material.STONE;
|
return true;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
return false;
|
return false;
|
||||||
@ -313,7 +332,7 @@ public final class BlockUtils {
|
|||||||
public static boolean isPistonPiece(BlockState blockState) {
|
public static boolean isPistonPiece(BlockState blockState) {
|
||||||
Material type = blockState.getType();
|
Material type = blockState.getType();
|
||||||
|
|
||||||
return type == Material.PISTON_MOVING_PIECE || type == Material.AIR;
|
return type == Material.MOVING_PISTON || type == Material.AIR;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,17 +1,5 @@
|
|||||||
package com.gmail.nossr50.util;
|
package com.gmail.nossr50.util;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.enchantments.Enchantment;
|
|
||||||
import org.bukkit.entity.Fish;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.player.PlayerFishEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.plugin.PluginManager;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
@ -41,7 +29,18 @@ import com.gmail.nossr50.events.skills.repair.McMMOPlayerRepairCheckEvent;
|
|||||||
import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityEvent;
|
import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityEvent;
|
||||||
import com.gmail.nossr50.events.skills.unarmed.McMMOPlayerDisarmEvent;
|
import com.gmail.nossr50.events.skills.unarmed.McMMOPlayerDisarmEvent;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.FishHook;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.player.PlayerFishEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class EventUtils {
|
public class EventUtils {
|
||||||
public static McMMOPlayerAbilityActivateEvent callPlayerAbilityActivateEvent(Player player, SkillType skill) {
|
public static McMMOPlayerAbilityActivateEvent callPlayerAbilityActivateEvent(Player player, SkillType skill) {
|
||||||
@ -252,7 +251,7 @@ public class EventUtils {
|
|||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static FakePlayerFishEvent callFakeFishEvent(Player player, Fish hook) {
|
public static FakePlayerFishEvent callFakeFishEvent(Player player, FishHook hook) {
|
||||||
FakePlayerFishEvent event = new FakePlayerFishEvent(player, null, hook, PlayerFishEvent.State.FISHING);
|
FakePlayerFishEvent event = new FakePlayerFishEvent(player, null, hook, PlayerFishEvent.State.FISHING);
|
||||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
@ -1,27 +1,14 @@
|
|||||||
package com.gmail.nossr50.util;
|
package com.gmail.nossr50.util;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import com.gmail.nossr50.commands.skills.AprilCommand;
|
||||||
import java.io.BufferedWriter;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import java.io.File;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import java.io.FileReader;
|
import com.gmail.nossr50.util.adapter.SoundAdapter;
|
||||||
import java.io.FileWriter;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
import java.io.IOException;
|
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
|
||||||
import java.util.ArrayList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import java.util.Calendar;
|
import org.bukkit.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.GregorianCalendar;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Color;
|
|
||||||
import org.bukkit.DyeColor;
|
|
||||||
import org.bukkit.FireworkEffect;
|
|
||||||
import org.bukkit.FireworkEffect.Type;
|
import org.bukkit.FireworkEffect.Type;
|
||||||
import org.bukkit.Statistic;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
@ -30,14 +17,9 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.player.PlayerStatisticIncrementEvent;
|
import org.bukkit.event.player.PlayerStatisticIncrementEvent;
|
||||||
import org.bukkit.inventory.meta.FireworkMeta;
|
import org.bukkit.inventory.meta.FireworkMeta;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import java.io.*;
|
||||||
import com.gmail.nossr50.commands.skills.AprilCommand;
|
import java.util.*;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import java.util.regex.Pattern;
|
||||||
import com.gmail.nossr50.util.adapter.SoundAdapter;
|
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
|
||||||
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
|
|
||||||
public final class HolidayManager {
|
public final class HolidayManager {
|
||||||
private ArrayList<String> hasCelebrated;
|
private ArrayList<String> hasCelebrated;
|
||||||
@ -95,7 +77,7 @@ public final class HolidayManager {
|
|||||||
return FakeSkillType.CLIMBING;
|
return FakeSkillType.CLIMBING;
|
||||||
case FLY_ONE_CM:
|
case FLY_ONE_CM:
|
||||||
return FakeSkillType.FLYING;
|
return FakeSkillType.FLYING;
|
||||||
case DIVE_ONE_CM:
|
case WALK_UNDER_WATER_ONE_CM:
|
||||||
return FakeSkillType.DIVING;
|
return FakeSkillType.DIVING;
|
||||||
case PIG_ONE_CM:
|
case PIG_ONE_CM:
|
||||||
return FakeSkillType.PIGGY;
|
return FakeSkillType.PIGGY;
|
||||||
@ -107,7 +89,7 @@ public final class HolidayManager {
|
|||||||
|
|
||||||
public final Set<Statistic> movementStatistics = EnumSet.of(
|
public final Set<Statistic> movementStatistics = EnumSet.of(
|
||||||
Statistic.WALK_ONE_CM, Statistic.SWIM_ONE_CM, Statistic.FALL_ONE_CM,
|
Statistic.WALK_ONE_CM, Statistic.SWIM_ONE_CM, Statistic.FALL_ONE_CM,
|
||||||
Statistic.CLIMB_ONE_CM, Statistic.FLY_ONE_CM, Statistic.DIVE_ONE_CM,
|
Statistic.CLIMB_ONE_CM, Statistic.FLY_ONE_CM, Statistic.WALK_UNDER_WATER_ONE_CM,
|
||||||
Statistic.PIG_ONE_CM);
|
Statistic.PIG_ONE_CM);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
@ -1,20 +1,15 @@
|
|||||||
package com.gmail.nossr50.util;
|
package com.gmail.nossr50.util;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.config.Config;
|
||||||
|
import com.gmail.nossr50.config.party.ItemWeightConfig;
|
||||||
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.CoalType;
|
|
||||||
import org.bukkit.DyeColor;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.FurnaceRecipe;
|
import org.bukkit.inventory.FurnaceRecipe;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.Recipe;
|
import org.bukkit.inventory.Recipe;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.material.Coal;
|
|
||||||
import org.bukkit.material.Dye;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.party.ItemWeightConfig;
|
|
||||||
import com.gmail.nossr50.config.Config;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
|
||||||
|
|
||||||
public final class ItemUtils {
|
public final class ItemUtils {
|
||||||
private ItemUtils() {}
|
private ItemUtils() {}
|
||||||
@ -48,10 +43,10 @@ public final class ItemUtils {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIAMOND_SWORD:
|
case DIAMOND_SWORD:
|
||||||
case GOLD_SWORD:
|
case GOLDEN_SWORD:
|
||||||
case IRON_SWORD:
|
case IRON_SWORD:
|
||||||
case STONE_SWORD:
|
case STONE_SWORD:
|
||||||
case WOOD_SWORD:
|
case WOODEN_SWORD:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -70,10 +65,10 @@ public final class ItemUtils {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIAMOND_HOE:
|
case DIAMOND_HOE:
|
||||||
case GOLD_HOE:
|
case GOLDEN_HOE:
|
||||||
case IRON_HOE:
|
case IRON_HOE:
|
||||||
case STONE_HOE:
|
case STONE_HOE:
|
||||||
case WOOD_HOE:
|
case WOODEN_HOE:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -91,11 +86,11 @@ public final class ItemUtils {
|
|||||||
Material type = item.getType();
|
Material type = item.getType();
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIAMOND_SPADE:
|
case DIAMOND_SHOVEL:
|
||||||
case GOLD_SPADE:
|
case GOLDEN_SHOVEL:
|
||||||
case IRON_SPADE:
|
case IRON_SHOVEL:
|
||||||
case STONE_SPADE:
|
case STONE_SHOVEL:
|
||||||
case WOOD_SPADE:
|
case WOODEN_SHOVEL:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -114,10 +109,10 @@ public final class ItemUtils {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIAMOND_AXE:
|
case DIAMOND_AXE:
|
||||||
case GOLD_AXE:
|
case GOLDEN_AXE:
|
||||||
case IRON_AXE:
|
case IRON_AXE:
|
||||||
case STONE_AXE:
|
case STONE_AXE:
|
||||||
case WOOD_AXE:
|
case WOODEN_AXE:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -136,10 +131,10 @@ public final class ItemUtils {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIAMOND_PICKAXE:
|
case DIAMOND_PICKAXE:
|
||||||
case GOLD_PICKAXE:
|
case GOLDEN_PICKAXE:
|
||||||
case IRON_PICKAXE:
|
case IRON_PICKAXE:
|
||||||
case STONE_PICKAXE:
|
case STONE_PICKAXE:
|
||||||
case WOOD_PICKAXE:
|
case WOODEN_PICKAXE:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -172,7 +167,7 @@ public final class ItemUtils {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIAMOND_HELMET:
|
case DIAMOND_HELMET:
|
||||||
case GOLD_HELMET:
|
case GOLDEN_HELMET:
|
||||||
case IRON_HELMET:
|
case IRON_HELMET:
|
||||||
case CHAINMAIL_HELMET:
|
case CHAINMAIL_HELMET:
|
||||||
case LEATHER_HELMET:
|
case LEATHER_HELMET:
|
||||||
@ -194,7 +189,7 @@ public final class ItemUtils {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIAMOND_CHESTPLATE:
|
case DIAMOND_CHESTPLATE:
|
||||||
case GOLD_CHESTPLATE:
|
case GOLDEN_CHESTPLATE:
|
||||||
case IRON_CHESTPLATE:
|
case IRON_CHESTPLATE:
|
||||||
case CHAINMAIL_CHESTPLATE:
|
case CHAINMAIL_CHESTPLATE:
|
||||||
case LEATHER_CHESTPLATE:
|
case LEATHER_CHESTPLATE:
|
||||||
@ -216,7 +211,7 @@ public final class ItemUtils {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIAMOND_LEGGINGS:
|
case DIAMOND_LEGGINGS:
|
||||||
case GOLD_LEGGINGS:
|
case GOLDEN_LEGGINGS:
|
||||||
case IRON_LEGGINGS:
|
case IRON_LEGGINGS:
|
||||||
case CHAINMAIL_LEGGINGS:
|
case CHAINMAIL_LEGGINGS:
|
||||||
case LEATHER_LEGGINGS:
|
case LEATHER_LEGGINGS:
|
||||||
@ -238,7 +233,7 @@ public final class ItemUtils {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIAMOND_BOOTS:
|
case DIAMOND_BOOTS:
|
||||||
case GOLD_BOOTS:
|
case GOLDEN_BOOTS:
|
||||||
case IRON_BOOTS:
|
case IRON_BOOTS:
|
||||||
case CHAINMAIL_BOOTS:
|
case CHAINMAIL_BOOTS:
|
||||||
case LEATHER_BOOTS:
|
case LEATHER_BOOTS:
|
||||||
@ -296,10 +291,10 @@ public final class ItemUtils {
|
|||||||
*/
|
*/
|
||||||
public static boolean isGoldArmor(ItemStack item) {
|
public static boolean isGoldArmor(ItemStack item) {
|
||||||
switch (item.getType()) {
|
switch (item.getType()) {
|
||||||
case GOLD_BOOTS:
|
case GOLDEN_BOOTS:
|
||||||
case GOLD_CHESTPLATE:
|
case GOLDEN_CHESTPLATE:
|
||||||
case GOLD_HELMET:
|
case GOLDEN_HELMET:
|
||||||
case GOLD_LEGGINGS:
|
case GOLDEN_LEGGINGS:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -385,7 +380,7 @@ public final class ItemUtils {
|
|||||||
case STONE_AXE:
|
case STONE_AXE:
|
||||||
case STONE_HOE:
|
case STONE_HOE:
|
||||||
case STONE_PICKAXE:
|
case STONE_PICKAXE:
|
||||||
case STONE_SPADE:
|
case STONE_SHOVEL:
|
||||||
case STONE_SWORD:
|
case STONE_SWORD:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@ -402,11 +397,11 @@ public final class ItemUtils {
|
|||||||
*/
|
*/
|
||||||
public static boolean isWoodTool(ItemStack item) {
|
public static boolean isWoodTool(ItemStack item) {
|
||||||
switch (item.getType()) {
|
switch (item.getType()) {
|
||||||
case WOOD_AXE:
|
case WOODEN_AXE:
|
||||||
case WOOD_HOE:
|
case WOODEN_HOE:
|
||||||
case WOOD_PICKAXE:
|
case WOODEN_PICKAXE:
|
||||||
case WOOD_SPADE:
|
case WOODEN_SHOVEL:
|
||||||
case WOOD_SWORD:
|
case WOODEN_SWORD:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -423,7 +418,7 @@ public final class ItemUtils {
|
|||||||
public static boolean isStringTool(ItemStack item) {
|
public static boolean isStringTool(ItemStack item) {
|
||||||
switch (item.getType()) {
|
switch (item.getType()) {
|
||||||
case BOW:
|
case BOW:
|
||||||
case CARROT_STICK:
|
case CARROT_ON_A_STICK:
|
||||||
case FISHING_ROD:
|
case FISHING_ROD:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@ -440,11 +435,11 @@ public final class ItemUtils {
|
|||||||
*/
|
*/
|
||||||
public static boolean isGoldTool(ItemStack item) {
|
public static boolean isGoldTool(ItemStack item) {
|
||||||
switch (item.getType()) {
|
switch (item.getType()) {
|
||||||
case GOLD_AXE:
|
case GOLDEN_AXE:
|
||||||
case GOLD_HOE:
|
case GOLDEN_HOE:
|
||||||
case GOLD_PICKAXE:
|
case GOLDEN_PICKAXE:
|
||||||
case GOLD_SPADE:
|
case GOLDEN_SHOVEL:
|
||||||
case GOLD_SWORD:
|
case GOLDEN_SWORD:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -465,7 +460,7 @@ public final class ItemUtils {
|
|||||||
case IRON_AXE:
|
case IRON_AXE:
|
||||||
case IRON_HOE:
|
case IRON_HOE:
|
||||||
case IRON_PICKAXE:
|
case IRON_PICKAXE:
|
||||||
case IRON_SPADE:
|
case IRON_SHOVEL:
|
||||||
case IRON_SWORD:
|
case IRON_SWORD:
|
||||||
case SHEARS:
|
case SHEARS:
|
||||||
return true;
|
return true;
|
||||||
@ -486,7 +481,7 @@ public final class ItemUtils {
|
|||||||
case DIAMOND_AXE:
|
case DIAMOND_AXE:
|
||||||
case DIAMOND_HOE:
|
case DIAMOND_HOE:
|
||||||
case DIAMOND_PICKAXE:
|
case DIAMOND_PICKAXE:
|
||||||
case DIAMOND_SPADE:
|
case DIAMOND_SHOVEL:
|
||||||
case DIAMOND_SWORD:
|
case DIAMOND_SWORD:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@ -506,7 +501,7 @@ public final class ItemUtils {
|
|||||||
case ENCHANTED_BOOK:
|
case ENCHANTED_BOOK:
|
||||||
case SHEARS:
|
case SHEARS:
|
||||||
case FISHING_ROD:
|
case FISHING_ROD:
|
||||||
case CARROT_STICK:
|
case CARROT_ON_A_STICK:
|
||||||
case FLINT_AND_STEEL:
|
case FLINT_AND_STEEL:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@ -568,12 +563,10 @@ public final class ItemUtils {
|
|||||||
case REDSTONE:
|
case REDSTONE:
|
||||||
case GLOWSTONE_DUST: // Should we also have Glowstone here?
|
case GLOWSTONE_DUST: // Should we also have Glowstone here?
|
||||||
case QUARTZ:
|
case QUARTZ:
|
||||||
case QUARTZ_ORE:
|
case NETHER_QUARTZ_ORE:
|
||||||
|
case LAPIS_LAZULI:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case INK_SACK:
|
|
||||||
return ((Dye) item.getData()).getColor() == DyeColor.BLUE;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -588,33 +581,30 @@ public final class ItemUtils {
|
|||||||
public static boolean isHerbalismDrop(ItemStack item) {
|
public static boolean isHerbalismDrop(ItemStack item) {
|
||||||
switch (item.getType()) {
|
switch (item.getType()) {
|
||||||
case WHEAT:
|
case WHEAT:
|
||||||
case SEEDS:
|
case WHEAT_SEEDS:
|
||||||
case CARROT_ITEM:
|
case CARROT:
|
||||||
case CHORUS_FRUIT:
|
case CHORUS_FRUIT:
|
||||||
case CHORUS_FLOWER:
|
case CHORUS_FLOWER:
|
||||||
case POTATO_ITEM:
|
case POTATO:
|
||||||
case BEETROOT:
|
case BEETROOT:
|
||||||
case BEETROOT_SEEDS:
|
case BEETROOT_SEEDS:
|
||||||
case NETHER_WARTS:
|
case NETHER_WART:
|
||||||
case BROWN_MUSHROOM:
|
case BROWN_MUSHROOM:
|
||||||
case RED_MUSHROOM:
|
case RED_MUSHROOM:
|
||||||
case RED_ROSE:
|
case ROSE_RED:
|
||||||
case YELLOW_FLOWER:
|
case DANDELION_YELLOW:
|
||||||
case CACTUS:
|
case CACTUS:
|
||||||
case SUGAR_CANE:
|
case SUGAR_CANE:
|
||||||
case MELON:
|
case MELON:
|
||||||
case MELON_SEEDS:
|
case MELON_SEEDS:
|
||||||
case PUMPKIN:
|
case PUMPKIN:
|
||||||
case PUMPKIN_SEEDS:
|
case PUMPKIN_SEEDS:
|
||||||
case WATER_LILY:
|
case LILY_PAD:
|
||||||
case VINE:
|
case VINE:
|
||||||
case LONG_GRASS:
|
case TALL_GRASS:
|
||||||
case DOUBLE_PLANT:
|
case COCOA_BEANS:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case INK_SACK:
|
|
||||||
return ((Dye) item.getData()).getColor() == DyeColor.BROWN;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -630,19 +620,34 @@ public final class ItemUtils {
|
|||||||
switch (item.getType()) {
|
switch (item.getType()) {
|
||||||
case STRING:
|
case STRING:
|
||||||
case FEATHER:
|
case FEATHER:
|
||||||
case RAW_CHICKEN:
|
case CHICKEN:
|
||||||
case COOKED_CHICKEN:
|
case COOKED_CHICKEN:
|
||||||
case LEATHER:
|
case LEATHER:
|
||||||
case RAW_BEEF:
|
case BEEF:
|
||||||
case COOKED_BEEF:
|
case COOKED_BEEF:
|
||||||
case PORK:
|
case PORKCHOP:
|
||||||
case GRILLED_PORK:
|
case COOKED_PORKCHOP:
|
||||||
case WOOL:
|
case WHITE_WOOL:
|
||||||
|
case BLACK_WOOL:
|
||||||
|
case BLUE_WOOL:
|
||||||
|
case BROWN_WOOL:
|
||||||
|
case CYAN_WOOL:
|
||||||
|
case GRAY_WOOL:
|
||||||
|
case GREEN_WOOL:
|
||||||
|
case LIGHT_BLUE_WOOL:
|
||||||
|
case LIGHT_GRAY_WOOL:
|
||||||
|
case LIME_WOOL:
|
||||||
|
case MAGENTA_WOOL:
|
||||||
|
case ORANGE_WOOL:
|
||||||
|
case PINK_WOOL:
|
||||||
|
case PURPLE_WOOL:
|
||||||
|
case RED_WOOL:
|
||||||
|
case YELLOW_WOOL:
|
||||||
case IRON_INGOT:
|
case IRON_INGOT:
|
||||||
case SNOW_BALL:
|
case SNOWBALL:
|
||||||
case BLAZE_ROD:
|
case BLAZE_ROD:
|
||||||
case SPIDER_EYE:
|
case SPIDER_EYE:
|
||||||
case SULPHUR:
|
case GUNPOWDER:
|
||||||
case ENDER_PEARL:
|
case ENDER_PEARL:
|
||||||
case GHAST_TEAR:
|
case GHAST_TEAR:
|
||||||
case MAGMA_CREAM:
|
case MAGMA_CREAM:
|
||||||
@ -653,14 +658,10 @@ public final class ItemUtils {
|
|||||||
case ROTTEN_FLESH:
|
case ROTTEN_FLESH:
|
||||||
case GOLD_NUGGET:
|
case GOLD_NUGGET:
|
||||||
case EGG:
|
case EGG:
|
||||||
|
case ROSE_RED:
|
||||||
|
case COAL:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case COAL: // Not sure we should include this, as it will also trigger when mining
|
|
||||||
return (((Coal) item.getData()).getType() == CoalType.COAL);
|
|
||||||
|
|
||||||
case RED_ROSE: // Not sure we should include this, as it will also trigger from herbalism
|
|
||||||
return (item.getData().getData() == 0x0);
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -674,11 +675,30 @@ public final class ItemUtils {
|
|||||||
*/
|
*/
|
||||||
public static boolean isWoodcuttingDrop(ItemStack item) {
|
public static boolean isWoodcuttingDrop(ItemStack item) {
|
||||||
switch (item.getType()) {
|
switch (item.getType()) {
|
||||||
case LOG:
|
case ACACIA_LOG:
|
||||||
case LOG_2:
|
case BIRCH_LOG:
|
||||||
case LEAVES:
|
case DARK_OAK_LOG:
|
||||||
case LEAVES_2:
|
case JUNGLE_LOG:
|
||||||
case SAPLING:
|
case OAK_LOG:
|
||||||
|
case SPRUCE_LOG:
|
||||||
|
case STRIPPED_ACACIA_LOG:
|
||||||
|
case STRIPPED_BIRCH_LOG:
|
||||||
|
case STRIPPED_DARK_OAK_LOG:
|
||||||
|
case STRIPPED_JUNGLE_LOG:
|
||||||
|
case STRIPPED_OAK_LOG:
|
||||||
|
case STRIPPED_SPRUCE_LOG:
|
||||||
|
case ACACIA_SAPLING:
|
||||||
|
case SPRUCE_SAPLING:
|
||||||
|
case BIRCH_SAPLING:
|
||||||
|
case DARK_OAK_SAPLING:
|
||||||
|
case JUNGLE_SAPLING:
|
||||||
|
case OAK_SAPLING:
|
||||||
|
case ACACIA_LEAVES:
|
||||||
|
case BIRCH_LEAVES:
|
||||||
|
case DARK_OAK_LEAVES:
|
||||||
|
case JUNGLE_LEAVES:
|
||||||
|
case OAK_LEAVES:
|
||||||
|
case SPRUCE_LEAVES:
|
||||||
case APPLE:
|
case APPLE:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package com.gmail.nossr50.util;
|
package com.gmail.nossr50.util;
|
||||||
|
|
||||||
import org.bukkit.material.MaterialData;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import org.bukkit.material.MaterialData;
|
||||||
|
|
||||||
public final class MaterialUtils {
|
public final class MaterialUtils {
|
||||||
private MaterialUtils() {}
|
private MaterialUtils() {}
|
||||||
@ -11,11 +10,10 @@ public final class MaterialUtils {
|
|||||||
switch (data.getItemType()) {
|
switch (data.getItemType()) {
|
||||||
case COAL_ORE:
|
case COAL_ORE:
|
||||||
case DIAMOND_ORE:
|
case DIAMOND_ORE:
|
||||||
case GLOWING_REDSTONE_ORE:
|
case NETHER_QUARTZ_ORE:
|
||||||
case GOLD_ORE:
|
case GOLD_ORE:
|
||||||
case IRON_ORE:
|
case IRON_ORE:
|
||||||
case LAPIS_ORE:
|
case LAPIS_ORE:
|
||||||
case QUARTZ_ORE:
|
|
||||||
case REDSTONE_ORE:
|
case REDSTONE_ORE:
|
||||||
case EMERALD_ORE:
|
case EMERALD_ORE:
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,23 +1,12 @@
|
|||||||
package com.gmail.nossr50.util;
|
package com.gmail.nossr50.util;
|
||||||
|
|
||||||
import org.bukkit.CropState;
|
|
||||||
import org.bukkit.GrassSpecies;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.NetherWartsState;
|
|
||||||
import org.bukkit.TreeSpecies;
|
|
||||||
import org.bukkit.entity.EntityType;
|
|
||||||
import org.bukkit.material.CocoaPlant;
|
|
||||||
import org.bukkit.material.Crops;
|
|
||||||
import org.bukkit.material.LongGrass;
|
|
||||||
import org.bukkit.material.MaterialData;
|
|
||||||
import org.bukkit.material.NetherWarts;
|
|
||||||
import org.bukkit.material.Sapling;
|
|
||||||
import org.bukkit.material.Tree;
|
|
||||||
import org.bukkit.material.CocoaPlant.CocoaPlantSize;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||||
import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.TreeSpecies;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.material.MaterialData;
|
||||||
|
|
||||||
public class StringUtils {
|
public class StringUtils {
|
||||||
|
|
||||||
@ -53,284 +42,6 @@ public class StringUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String getFriendlyConfigMaterialDataString(MaterialData data) {
|
public static String getFriendlyConfigMaterialDataString(MaterialData data) {
|
||||||
switch (data.getItemType()) {
|
|
||||||
case LOG :
|
|
||||||
case LOG_2 : {
|
|
||||||
TreeSpecies species = TreeSpecies.GENERIC;
|
|
||||||
if (data instanceof Tree) {
|
|
||||||
Tree tree = (Tree) data;
|
|
||||||
species = tree.getSpecies();
|
|
||||||
}
|
|
||||||
return createPrettyEnumString(species.name()).replace(" ", "_");
|
|
||||||
}
|
|
||||||
case LONG_GRASS : {
|
|
||||||
LongGrass grass = (LongGrass) data;
|
|
||||||
GrassSpecies species = grass.getSpecies();
|
|
||||||
switch (species) {
|
|
||||||
case DEAD :
|
|
||||||
return "Dead_Bush";
|
|
||||||
|
|
||||||
case FERN_LIKE :
|
|
||||||
return "Small_Fern";
|
|
||||||
|
|
||||||
case NORMAL :
|
|
||||||
return "Small_Grass";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case RED_ROSE : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Poppy";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Blue_Orchid";
|
|
||||||
|
|
||||||
case 0x2 :
|
|
||||||
return "Allium";
|
|
||||||
|
|
||||||
case 0x3 :
|
|
||||||
return "Azure_Bluet";
|
|
||||||
|
|
||||||
case 0x4 :
|
|
||||||
return "Red_Tulip";
|
|
||||||
|
|
||||||
case 0x5 :
|
|
||||||
return "Orange_Tulip";
|
|
||||||
|
|
||||||
case 0x6 :
|
|
||||||
return "White_Tulip";
|
|
||||||
|
|
||||||
case 0x7 :
|
|
||||||
return "Pink_Tulip";
|
|
||||||
|
|
||||||
case 0x8 :
|
|
||||||
return "Oxeye_Daisy";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case DOUBLE_PLANT : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Sunflower";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Lilac";
|
|
||||||
|
|
||||||
case 0x2 :
|
|
||||||
return "Tall_Grass";
|
|
||||||
|
|
||||||
case 0x3 :
|
|
||||||
return "Tall_Fern";
|
|
||||||
|
|
||||||
case 0x4 :
|
|
||||||
return "Rose_Bush";
|
|
||||||
|
|
||||||
case 0x5 :
|
|
||||||
return "Peony";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case RAW_FISH : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Raw_Fish";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Raw_Salmon";
|
|
||||||
|
|
||||||
case 0x2 :
|
|
||||||
return "Clownfish";
|
|
||||||
|
|
||||||
case 0x3 :
|
|
||||||
return "Pufferfish";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case COOKED_FISH : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Cooked_Fish";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Cooked_Salmon";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case DIRT : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Dirt";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Coarse_Dirt";
|
|
||||||
|
|
||||||
case 0x2 :
|
|
||||||
return "Podzol";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case SAND : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Sand";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Red_Sand";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case QUARTZ_BLOCK : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Quartz_Block";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Chiseled_Quartz_Block";
|
|
||||||
|
|
||||||
case 0x2 :
|
|
||||||
case 0x3 :
|
|
||||||
case 0x4 :
|
|
||||||
return "Quartz_Pillar";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case SPONGE : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Sponge";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Wet_Sponge";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case PRISMARINE : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Prismarine";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Prismarine_Brick";
|
|
||||||
|
|
||||||
case 0x2 :
|
|
||||||
return "Dark_Prismarine";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case STONE : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Stone";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Granite";
|
|
||||||
|
|
||||||
case 0x2 :
|
|
||||||
return "Polished_Granite";
|
|
||||||
|
|
||||||
case 0x3 :
|
|
||||||
return "Diorite";
|
|
||||||
|
|
||||||
case 0x4 :
|
|
||||||
return "Polished_Diorite";
|
|
||||||
|
|
||||||
case 0x5 :
|
|
||||||
return "Andesite";
|
|
||||||
|
|
||||||
case 0x6 :
|
|
||||||
return "Polished_Andesite";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case WOOD : {
|
|
||||||
switch (data.getData()) {
|
|
||||||
case 0x0 :
|
|
||||||
return "Oak_Planks";
|
|
||||||
|
|
||||||
case 0x1 :
|
|
||||||
return "Spruce_Planks";
|
|
||||||
|
|
||||||
case 0x2 :
|
|
||||||
return "Birch_Planks";
|
|
||||||
|
|
||||||
case 0x3 :
|
|
||||||
return "Jungle_Planks";
|
|
||||||
|
|
||||||
case 0x4 :
|
|
||||||
return "Acacia_Planks";
|
|
||||||
|
|
||||||
case 0x5 :
|
|
||||||
return "Dark_Oak_Planks";
|
|
||||||
|
|
||||||
default :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case GLOWING_REDSTONE_ORE :
|
|
||||||
return getPrettyItemString(Material.REDSTONE_ORE).replace(" ", "_");
|
|
||||||
|
|
||||||
case BEETROOT_BLOCK :
|
|
||||||
case CARROT :
|
|
||||||
case POTATO :
|
|
||||||
case CROPS : {
|
|
||||||
if (((Crops) data).getState() == CropState.RIPE) {
|
|
||||||
return getPrettyItemString(data.getItemType()).replace(" ", "_") + "_Ripe";
|
|
||||||
}
|
|
||||||
return getPrettyItemString(data.getItemType()).replace(" ", "_") + "_Ungrown";
|
|
||||||
}
|
|
||||||
case NETHER_WARTS : {
|
|
||||||
if (((NetherWarts) data).getState() == NetherWartsState.RIPE) {
|
|
||||||
return getPrettyItemString(data.getItemType()).replace(" ", "_") + "_Ripe";
|
|
||||||
}
|
|
||||||
return getPrettyItemString(data.getItemType()).replace(" ", "_") + "_Ungrown";
|
|
||||||
}
|
|
||||||
case COCOA : {
|
|
||||||
if (((CocoaPlant) data).getSize() == CocoaPlantSize.LARGE) {
|
|
||||||
return getPrettyItemString(data.getItemType()).replace(" ", "_") + "_Ripe";
|
|
||||||
}
|
|
||||||
return getPrettyItemString(data.getItemType()).replace(" ", "_") + "_Ungrown";
|
|
||||||
}
|
|
||||||
case SAPLING:
|
|
||||||
{
|
|
||||||
TreeSpecies species = TreeSpecies.GENERIC;
|
|
||||||
if (data instanceof Sapling) {
|
|
||||||
Sapling sapling = (Sapling) data;
|
|
||||||
species = sapling.getSpecies();
|
|
||||||
}
|
|
||||||
return createPrettyEnumString(species.name()).replace(" ", "_") + "_Sapling";
|
|
||||||
}
|
|
||||||
case SMOOTH_BRICK :
|
|
||||||
case WOOL :
|
|
||||||
case INK_SACK :
|
|
||||||
case STAINED_CLAY :
|
|
||||||
case STAINED_GLASS :
|
|
||||||
case FLOWER_POT :
|
|
||||||
case MONSTER_EGGS :
|
|
||||||
return getExplicitConfigMaterialDataString(data);
|
|
||||||
default :
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return getPrettyItemString(data.getItemType()).replace(" ", "_");
|
return getPrettyItemString(data.getItemType()).replace(" ", "_");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,21 @@
|
|||||||
package com.gmail.nossr50.util.skills;
|
package com.gmail.nossr50.util.skills;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.gmail.nossr50.config.AdvancedConfig;
|
||||||
import java.util.List;
|
import com.gmail.nossr50.config.Config;
|
||||||
|
import com.gmail.nossr50.config.HiddenConfig;
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
|
import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityEvent;
|
||||||
|
import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityWeightedActivationCheckEvent;
|
||||||
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.util.EventUtils;
|
||||||
|
import com.gmail.nossr50.util.ItemUtils;
|
||||||
|
import com.gmail.nossr50.util.Misc;
|
||||||
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
@ -16,22 +29,8 @@ import org.bukkit.material.MaterialData;
|
|||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import java.util.ArrayList;
|
||||||
import com.gmail.nossr50.config.AdvancedConfig;
|
import java.util.List;
|
||||||
import com.gmail.nossr50.config.Config;
|
|
||||||
import com.gmail.nossr50.config.HiddenConfig;
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
|
||||||
import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityEvent;
|
|
||||||
import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityWeightedActivationCheckEvent;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
|
||||||
import com.gmail.nossr50.util.ItemUtils;
|
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
|
||||||
|
|
||||||
public class SkillUtils {
|
public class SkillUtils {
|
||||||
public static int handleFoodSkills(Player player, SkillType skill, int eventFoodLevel, int baseLevel, int maxLevel, int rankChange) {
|
public static int handleFoodSkills(Player player, SkillType skill, int eventFoodLevel, int baseLevel, int maxLevel, int rankChange) {
|
||||||
@ -256,7 +255,7 @@ public class SkillUtils {
|
|||||||
return Material.COBBLESTONE;
|
return Material.COBBLESTONE;
|
||||||
}
|
}
|
||||||
else if (ItemUtils.isWoodTool(inHand)) {
|
else if (ItemUtils.isWoodTool(inHand)) {
|
||||||
return Material.WOOD;
|
return Material.OAK_WOOD;
|
||||||
}
|
}
|
||||||
else if (ItemUtils.isLeatherArmor(inHand)) {
|
else if (ItemUtils.isLeatherArmor(inHand)) {
|
||||||
return Material.LEATHER;
|
return Material.LEATHER;
|
||||||
|
Loading…
Reference in New Issue
Block a user