Quick and dirty 1.13 update. I.e. it now compiles for 1.13.

This commit is contained in:
t00thpick1 2018-07-23 22:13:57 -04:00
parent 3d515aab23
commit 0a1559511a
25 changed files with 511 additions and 901 deletions

View File

@ -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>

View File

@ -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);

View File

@ -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);

View File

@ -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")) {

View File

@ -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() {

View File

@ -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;

View File

@ -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);
} }
} }

View File

@ -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));
} }

View File

@ -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 BEETROOTS:
case BEETROOT_BLOCK: case CARROT:
case CARROT: case COCOA:
case COCOA: case WHEAT:
case CROPS: case NETHER_WART_BLOCK:
case NETHER_WARTS: 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);

View File

@ -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));
} }
} }

View File

@ -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;
} }

View File

@ -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 :

View File

@ -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) {

View File

@ -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());

View File

@ -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;

View File

@ -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:

View File

@ -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());

View File

@ -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) { if (BlockUtils.isLog(blockState)) {
Tree tree = (Tree) blockState.getData(); if (canGetDoubleDrops()) {
tree.setDirection(BlockFace.UP); Woodcutting.checkForDoubleDrop(blockState);
}
xp += Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.TREE_FELLER);
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
} }
if (BlockUtils.isLeaves(blockState)) {
switch (material) { Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
case LOG:
case LOG_2:
if (canGetDoubleDrops()) {
Woodcutting.checkForDoubleDrop(blockState);
}
xp += Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.TREE_FELLER);
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
break;
case LEAVES:
case LEAVES_2:
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
break;
default:
break;
} }
} }

View File

@ -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;
} }
/** /**

View File

@ -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);

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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(" ", "_");
} }

View File

@ -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;