mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 22:56:45 +01:00
Quick and dirty 1.13 update. I.e. it now compiles for 1.13.
This commit is contained in:
parent
3d515aab23
commit
0a1559511a
4
pom.xml
4
pom.xml
@ -2,7 +2,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||
<artifactId>mcMMO</artifactId>
|
||||
<version>1.5.10-SNAPSHOT</version>
|
||||
<version>1.6.0-SNAPSHOT</version>
|
||||
<name>mcMMO</name>
|
||||
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
||||
<issueManagement>
|
||||
@ -135,7 +135,7 @@
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
<version>1.12.1-R0.1-SNAPSHOT</version>
|
||||
<version>1.13-pre7-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
@ -1,16 +1,15 @@
|
||||
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.SkillType;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.skills.herbalism.Herbalism;
|
||||
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 {
|
||||
private String greenTerraLength;
|
||||
@ -87,8 +86,8 @@ public class HerbalismCommand extends SkillCommand {
|
||||
protected void permissionsCheck(Player player) {
|
||||
hasHylianLuck = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.HYLIAN_LUCK);
|
||||
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);
|
||||
canGreenThumbBlocks = Permissions.greenThumbBlock(player, Material.DIRT) || Permissions.greenThumbBlock(player, Material.COBBLESTONE) || Permissions.greenThumbBlock(player, Material.COBBLE_WALL) || Permissions.greenThumbBlock(player, Material.SMOOTH_BRICK);
|
||||
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.COBBLESTONE_WALL) || Permissions.greenThumbBlock(player, Material.STONE_BRICKS);
|
||||
canFarmersDiet = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FARMERS_DIET);
|
||||
canDoubleDrop = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.HERBALISM_DOUBLE_DROPS) && !skill.getDoubleDropsDisabled();
|
||||
canShroomThumb = Permissions.secondaryAbilityEnabled(player, SecondaryAbility.SHROOM_THUMB);
|
||||
|
@ -1,16 +1,10 @@
|
||||
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.SecondaryAbility;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
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.Tier;
|
||||
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.util.Permissions;
|
||||
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 {
|
||||
private String repairMasteryBonus;
|
||||
@ -49,7 +48,7 @@ public class RepairCommand extends SkillCommand {
|
||||
protected void dataCalculations(Player player, float skillValue, boolean isLucky) {
|
||||
// We're using pickaxes here, not the best but it works
|
||||
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 stoneRepairable = mcMMO.getRepairableManager().getRepairable(Material.STONE_PICKAXE);
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
package com.gmail.nossr50.config.treasure;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import com.gmail.nossr50.config.ConfigLoader;
|
||||
import com.gmail.nossr50.datatypes.treasure.*;
|
||||
import com.gmail.nossr50.util.EnchantmentUtils;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Material;
|
||||
@ -19,15 +19,9 @@ import org.bukkit.material.MaterialData;
|
||||
import org.bukkit.potion.PotionData;
|
||||
import org.bukkit.potion.PotionType;
|
||||
|
||||
import com.gmail.nossr50.config.ConfigLoader;
|
||||
import com.gmail.nossr50.datatypes.treasure.EnchantmentTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
|
||||
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;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class TreasureConfig extends ConfigLoader {
|
||||
|
||||
@ -143,14 +137,14 @@ public class TreasureConfig extends ConfigLoader {
|
||||
Material material;
|
||||
|
||||
if (materialName.contains("INK_SACK")) {
|
||||
material = Material.INK_SACK;
|
||||
material = Material.INK_SAC;
|
||||
} else if (materialName.contains("COAL")) {
|
||||
material = Material.COAL;
|
||||
} 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))
|
||||
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;
|
||||
} else {
|
||||
material = Material.matchMaterial(materialName);
|
||||
@ -323,9 +317,9 @@ public class TreasureConfig extends ConfigLoader {
|
||||
}
|
||||
if (dropper.equals("Flowers")) {
|
||||
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;
|
||||
}
|
||||
if (dropper.equals("Pots")) {
|
||||
|
@ -1,22 +1,5 @@
|
||||
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.datatypes.MobHealthbarType;
|
||||
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.skills.AbilityType;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.database.UUIDUpdateAsyncTask;
|
||||
import com.gmail.nossr50.util.Misc;
|
||||
|
||||
import org.apache.tomcat.jdbc.pool.DataSource;
|
||||
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 {
|
||||
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 {
|
||||
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(2, statsPerPage);
|
||||
resultSet = statement.executeQuery();
|
||||
@ -1132,7 +1120,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
return DatabaseType.SQL;
|
||||
}
|
||||
|
||||
private void checkNameUniqueness(final Statement statement) throws SQLException {
|
||||
private void checkNameUniqueness(final Statement statement) {
|
||||
ResultSet resultSet = null;
|
||||
try {
|
||||
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;
|
||||
|
||||
try {
|
||||
@ -1292,7 +1280,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
}
|
||||
|
||||
if (!names.isEmpty()) {
|
||||
new UUIDUpdateAsyncTask(mcMMO.p, names).run();;
|
||||
new UUIDUpdateAsyncTask(mcMMO.p, names).run();
|
||||
}
|
||||
} finally {
|
||||
massUpdateLock.unlock();
|
||||
@ -1415,7 +1403,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
public enum PoolIdentifier {
|
||||
MISC,
|
||||
LOAD,
|
||||
SAVE;
|
||||
SAVE
|
||||
}
|
||||
|
||||
public void resetMobHealthSettings() {
|
||||
|
@ -21,7 +21,7 @@ public enum MaterialType {
|
||||
return Material.LEATHER;
|
||||
|
||||
case WOOD:
|
||||
return Material.WOOD;
|
||||
return Material.OAK_WOOD;
|
||||
|
||||
case STONE:
|
||||
return Material.COBBLESTONE;
|
||||
|
@ -1,12 +1,12 @@
|
||||
package com.gmail.nossr50.events.fake;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Fish;
|
||||
import org.bukkit.entity.FishHook;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.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);
|
||||
}
|
||||
}
|
||||
|
@ -1,37 +1,5 @@
|
||||
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.Config;
|
||||
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.FakeEntityDamageEvent;
|
||||
import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.party.PartyManager;
|
||||
import com.gmail.nossr50.runnables.skills.BleedTimerTask;
|
||||
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.skills.CombatUtils;
|
||||
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 {
|
||||
private final mcMMO plugin;
|
||||
@ -122,8 +108,7 @@ public class EntityListener implements Listener {
|
||||
else if (isTracked) {
|
||||
mcMMO.getPlaceStore().setTrue(block);
|
||||
}
|
||||
}
|
||||
else if ((block.getType() == Material.REDSTONE_ORE || block.getType() == Material.GLOWING_REDSTONE_ORE) && (event.getTo() == Material.REDSTONE_ORE || event.getTo() == Material.GLOWING_REDSTONE_ORE)) {
|
||||
} else if ((block.getType() == Material.REDSTONE_ORE)) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
@ -578,7 +563,7 @@ public class EntityListener implements Listener {
|
||||
*/
|
||||
case BEETROOT:
|
||||
case BREAD: /* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */
|
||||
case CARROT_ITEM: /*
|
||||
case CARROT: /*
|
||||
* RESTORES 2 HUNGER - RESTORES 4 1/2 HUNGER @
|
||||
* 1000
|
||||
*/
|
||||
@ -586,7 +571,7 @@ public class EntityListener implements Listener {
|
||||
* RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @
|
||||
* 1000
|
||||
*/
|
||||
case MUSHROOM_SOUP: /*
|
||||
case MUSHROOM_STEW: /*
|
||||
* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @
|
||||
* 1000
|
||||
*/
|
||||
@ -605,13 +590,13 @@ public class EntityListener implements Listener {
|
||||
* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER
|
||||
* @ 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)) {
|
||||
event.setFoodLevel(UserManager.getPlayer(player).getHerbalismManager().farmersDiet(Herbalism.farmersDietRankLevel2, newFoodLevel));
|
||||
}
|
||||
return;
|
||||
|
||||
case COOKED_FISH: /*
|
||||
case COOKED_SALMON: /*
|
||||
* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @
|
||||
* 1000
|
||||
*/
|
||||
@ -620,7 +605,7 @@ public class EntityListener implements Listener {
|
||||
}
|
||||
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)) {
|
||||
event.setFoodLevel(UserManager.getPlayer(player).getFishingManager().handleFishermanDiet(Fishing.fishermansDietRankLevel2, newFoodLevel));
|
||||
}
|
||||
|
@ -1,38 +1,5 @@
|
||||
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.ChatManagerFactory;
|
||||
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.SkillType;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.party.ShareHandler;
|
||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||
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.taming.TamingManager;
|
||||
import com.gmail.nossr50.skills.unarmed.Unarmed;
|
||||
import com.gmail.nossr50.util.BlockUtils;
|
||||
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.*;
|
||||
import com.gmail.nossr50.util.adapter.SoundAdapter;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
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.ItemStack;
|
||||
|
||||
public class PlayerListener implements Listener {
|
||||
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:
|
||||
Item fishingCatch = (Item) event.getCaught();
|
||||
|
||||
if (Config.getInstance().getFishingOverrideTreasures() && fishingCatch.getItemStack().getType() != Material.RAW_FISH) {
|
||||
fishingCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
|
||||
if (Config.getInstance().getFishingOverrideTreasures() && fishingCatch.getItemStack().getType() != Material.SALMON) {
|
||||
fishingCatch.setItemStack(new ItemStack(Material.SALMON, 1));
|
||||
}
|
||||
|
||||
if (Permissions.vanillaXpBoost(player, SkillType.FISHING)) {
|
||||
@ -242,7 +213,7 @@ public class PlayerListener implements Listener {
|
||||
return;
|
||||
|
||||
case IN_GROUND:
|
||||
Block block = player.getTargetBlock((HashSet<Material>) null, 100);
|
||||
Block block = player.getTargetBlock(null, 100);
|
||||
|
||||
if (fishingManager.canIceFish(block)) {
|
||||
event.setCancelled(true);
|
||||
@ -554,22 +525,20 @@ public class PlayerListener implements Listener {
|
||||
/* GREEN THUMB CHECK */
|
||||
HerbalismManager herbalismManager = mcMMOPlayer.getHerbalismManager();
|
||||
|
||||
if (heldItem.getType() == Material.INK_SACK) {
|
||||
if (DyeColor.WHITE == ((Dye) heldItem.getData()).getColor()) {
|
||||
switch (blockState.getType()) {
|
||||
case BEETROOT_BLOCK:
|
||||
case CARROT:
|
||||
case COCOA:
|
||||
case CROPS:
|
||||
case NETHER_WARTS:
|
||||
case POTATO:
|
||||
mcMMO.getPlaceStore().setFalse(blockState);
|
||||
}
|
||||
}
|
||||
if (heldItem.getType() == Material.BONE_MEAL) {
|
||||
switch (blockState.getType()) {
|
||||
case BEETROOTS:
|
||||
case CARROT:
|
||||
case COCOA:
|
||||
case WHEAT:
|
||||
case NETHER_WART_BLOCK:
|
||||
case POTATO:
|
||||
mcMMO.getPlaceStore().setFalse(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)) {
|
||||
blockState.update(true);
|
||||
|
@ -1,19 +1,5 @@
|
||||
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.Config;
|
||||
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.database.DatabaseManager;
|
||||
import com.gmail.nossr50.database.DatabaseManagerFactory;
|
||||
import com.gmail.nossr50.listeners.BlockListener;
|
||||
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.listeners.*;
|
||||
import com.gmail.nossr50.party.PartyManager;
|
||||
import com.gmail.nossr50.runnables.CheckDateTask;
|
||||
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.SimpleSalvageableManager;
|
||||
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
||||
import com.gmail.nossr50.util.ChimaeraWing;
|
||||
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.*;
|
||||
import com.gmail.nossr50.util.blockmeta.chunkmeta.ChunkManager;
|
||||
import com.gmail.nossr50.util.blockmeta.chunkmeta.ChunkManagerFactory;
|
||||
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.upgrade.UpgradeManager;
|
||||
import com.google.common.base.Charsets;
|
||||
|
||||
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 {
|
||||
/* Managers */
|
||||
@ -439,10 +427,10 @@ public class mcMMO extends JavaPlugin {
|
||||
|
||||
if (Config.getInstance().getFluxPickaxeEnabled()) {
|
||||
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.STONE_PICKAXE));
|
||||
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.WOOD_PICKAXE));
|
||||
getServer().addRecipe(SmeltingManager.getFluxPickaxeRecipe(Material.WOODEN_PICKAXE));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,39 +1,5 @@
|
||||
package com.gmail.nossr50.skills.fishing;
|
||||
|
||||
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.Config;
|
||||
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.secondaryabilities.SecondaryAbilityWeightedActivationCheckEvent;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.skills.KrakenAttackTask;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
import com.gmail.nossr50.skills.fishing.Fishing.Tier;
|
||||
import com.gmail.nossr50.util.BlockUtils;
|
||||
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.*;
|
||||
import com.gmail.nossr50.util.adapter.SoundAdapter;
|
||||
import com.gmail.nossr50.util.skills.CombatUtils;
|
||||
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 {
|
||||
private final long FISHING_COOLDOWN_SECONDS = 1000L;
|
||||
@ -104,7 +81,7 @@ public class FishingManager extends SkillManager {
|
||||
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();
|
||||
|
||||
@ -170,7 +147,7 @@ public class FishingManager extends SkillManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
Block targetBlock = getPlayer().getTargetBlock((HashSet<Material>) BlockUtils.getTransparentBlocks(), 100);
|
||||
Block targetBlock = getPlayer().getTargetBlock(BlockUtils.getTransparentBlocks(), 100);
|
||||
|
||||
if (!targetBlock.isLiquid()) {
|
||||
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.
|
||||
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;
|
||||
}
|
||||
|
||||
@ -260,16 +237,16 @@ public class FishingManager extends SkillManager {
|
||||
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
|
||||
block.setType(Material.STATIONARY_WATER);
|
||||
block.setType(Material.WATER);
|
||||
|
||||
for (int x = -1; x <= 1; x++) {
|
||||
for (int z = -1; z <= 1; z++) {
|
||||
Block relative = block.getRelative(x, 0, z);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
public void masterAngler(Fish hook) {
|
||||
public void masterAngler(FishHook hook) {
|
||||
Player player = getPlayer();
|
||||
Location location = hook.getLocation();
|
||||
double biteChance = hook.getBiteChance();
|
||||
@ -401,14 +378,14 @@ public class FishingManager extends SkillManager {
|
||||
Player targetPlayer = (Player) target;
|
||||
|
||||
switch (drop.getType()) {
|
||||
case SKULL_ITEM:
|
||||
case PLAYER_HEAD:
|
||||
drop.setDurability((short) 3);
|
||||
SkullMeta skullMeta = (SkullMeta) drop.getItemMeta();
|
||||
skullMeta.setOwner(targetPlayer.getName());
|
||||
skullMeta.setOwningPlayer(targetPlayer);
|
||||
drop.setItemMeta(skullMeta);
|
||||
break;
|
||||
|
||||
case BED_BLOCK:
|
||||
case BEDROCK:
|
||||
if (TreasureConfig.getInstance().getInventoryStealEnabled()) {
|
||||
PlayerInventory inventory = targetPlayer.getInventory();
|
||||
int length = inventory.getContents().length;
|
||||
@ -439,20 +416,13 @@ public class FishingManager extends SkillManager {
|
||||
case SHEEP:
|
||||
Sheep sheep = (Sheep) target;
|
||||
|
||||
if (drop.getType() == Material.WOOL) {
|
||||
if (drop.getType().name().endsWith("WOOL")) {
|
||||
if (sheep.isSheared()) {
|
||||
return;
|
||||
}
|
||||
|
||||
drop = new Wool(sheep.getColor()).toItemStack(drop.getAmount());
|
||||
sheep.setSheared(true);
|
||||
}
|
||||
break;
|
||||
case WITHER_SKELETON:
|
||||
if(drop.getType() == Material.SKULL_ITEM){
|
||||
drop.setDurability((short) 1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -1,18 +1,14 @@
|
||||
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.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
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.LinkedHashSet;
|
||||
import java.util.List;
|
||||
|
||||
public class Herbalism {
|
||||
|
||||
@ -32,12 +28,12 @@ public class Herbalism {
|
||||
*/
|
||||
protected static boolean convertGreenTerraBlocks(BlockState blockState) {
|
||||
switch (blockState.getType()) {
|
||||
case COBBLE_WALL :
|
||||
blockState.setRawData((byte) 0x1);
|
||||
case COBBLESTONE_WALL:
|
||||
blockState.setType(Material.MOSSY_COBBLESTONE_WALL);
|
||||
return true;
|
||||
|
||||
case SMOOTH_BRICK :
|
||||
((SmoothBrick) blockState.getData()).setMaterial(Material.MOSSY_COBBLESTONE);
|
||||
case STONE_BRICKS:
|
||||
blockState.setType(Material.MOSSY_STONE_BRICKS);
|
||||
return true;
|
||||
|
||||
case DIRT :
|
||||
@ -124,7 +120,7 @@ public class Herbalism {
|
||||
if (blockType == Material.CHORUS_PLANT) {
|
||||
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);
|
||||
|
||||
dropAmount = blocks.size();
|
||||
@ -167,7 +163,7 @@ public class Herbalism {
|
||||
case DIRT :
|
||||
case GRASS :
|
||||
case GRASS_PATH :
|
||||
blockState.setType(Material.MYCEL);
|
||||
blockState.setType(Material.MYCELIUM);
|
||||
return true;
|
||||
|
||||
default :
|
||||
|
@ -1,8 +1,18 @@
|
||||
package com.gmail.nossr50.skills.herbalism;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import com.gmail.nossr50.config.Config;
|
||||
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.Location;
|
||||
import org.bukkit.Material;
|
||||
@ -17,27 +27,8 @@ import org.bukkit.material.Crops;
|
||||
import org.bukkit.material.NetherWarts;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
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;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class HerbalismManager extends SkillManager {
|
||||
public HerbalismManager(McMMOPlayer mcMMOPlayer) {
|
||||
@ -52,7 +43,7 @@ public class HerbalismManager extends SkillManager {
|
||||
Player player = getPlayer();
|
||||
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) {
|
||||
@ -104,7 +95,7 @@ public class HerbalismManager extends SkillManager {
|
||||
}
|
||||
|
||||
PlayerInventory playerInventory = player.getInventory();
|
||||
ItemStack seed = new ItemStack(Material.SEEDS);
|
||||
ItemStack seed = new ItemStack(Material.WHEAT_SEEDS);
|
||||
|
||||
if (!playerInventory.containsAtLeast(seed, 1)) {
|
||||
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.GTe.NeedMore"));
|
||||
@ -123,7 +114,7 @@ public class HerbalismManager extends SkillManager {
|
||||
public void herbalismBlockCheck(BlockState blockState) {
|
||||
Player player = getPlayer();
|
||||
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
|
||||
if (oneBlockPlant && mcMMO.getPlaceStore().isTrue(blockState)) {
|
||||
@ -279,23 +270,23 @@ public class HerbalismManager extends SkillManager {
|
||||
Material seed = null;
|
||||
|
||||
switch (blockState.getType()) {
|
||||
case CARROT:
|
||||
seed = Material.CARROT_ITEM;
|
||||
case CARROTS:
|
||||
seed = Material.CARROT;
|
||||
break;
|
||||
|
||||
case CROPS:
|
||||
seed = Material.SEEDS;
|
||||
case WHEAT:
|
||||
seed = Material.WHEAT_SEEDS;
|
||||
break;
|
||||
|
||||
case NETHER_WARTS:
|
||||
seed = Material.NETHER_STALK;
|
||||
case NETHER_WART_BLOCK:
|
||||
seed = Material.NETHER_WART;
|
||||
break;
|
||||
|
||||
case POTATO:
|
||||
seed = Material.POTATO_ITEM;
|
||||
case POTATOES:
|
||||
seed = Material.POTATO;
|
||||
break;
|
||||
|
||||
case BEETROOT_BLOCK:
|
||||
case BEETROOTS:
|
||||
seed = Material.BEETROOT_SEEDS;
|
||||
break;
|
||||
|
||||
@ -331,8 +322,8 @@ public class HerbalismManager extends SkillManager {
|
||||
|
||||
case POTATO:
|
||||
case CARROT:
|
||||
case BEETROOT_BLOCK:
|
||||
case CROPS:
|
||||
case BEETROOTS:
|
||||
case WHEAT:
|
||||
Crops crops = (Crops) blockState.getData();
|
||||
|
||||
if (greenTerra) {
|
||||
@ -357,7 +348,7 @@ public class HerbalismManager extends SkillManager {
|
||||
|
||||
return true;
|
||||
|
||||
case NETHER_WARTS:
|
||||
case NETHER_WART_BLOCK:
|
||||
NetherWarts warts = (NetherWarts) blockState.getData();
|
||||
|
||||
if (greenTerra || greenThumbStage > 2) {
|
||||
|
@ -1,14 +1,11 @@
|
||||
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.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.Misc;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockState;
|
||||
|
||||
public class Mining {
|
||||
|
||||
@ -36,31 +33,56 @@ public class Mining {
|
||||
Material blockType = blockState.getType();
|
||||
|
||||
switch (blockType) {
|
||||
case ENDER_STONE:
|
||||
case GOLD_ORE:
|
||||
case HARD_CLAY:
|
||||
case END_STONE:
|
||||
case TERRACOTTA:
|
||||
case CLAY:
|
||||
case IRON_ORE:
|
||||
case MOSSY_COBBLESTONE:
|
||||
case NETHERRACK:
|
||||
case OBSIDIAN:
|
||||
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);
|
||||
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 DIAMOND_ORE:
|
||||
case EMERALD_ORE:
|
||||
case GLOWSTONE:
|
||||
case LAPIS_ORE:
|
||||
case PACKED_ICE:
|
||||
case QUARTZ_ORE:
|
||||
case NETHER_QUARTZ_ORE:
|
||||
case REDSTONE_ORE:
|
||||
case STONE:
|
||||
case PRISMARINE:
|
||||
@ -85,10 +107,10 @@ public class Mining {
|
||||
case COAL_ORE:
|
||||
case DIAMOND_ORE:
|
||||
case EMERALD_ORE:
|
||||
case ENDER_STONE:
|
||||
case END_STONE:
|
||||
case GLOWSTONE:
|
||||
case GOLD_ORE:
|
||||
case HARD_CLAY:
|
||||
case TERRACOTTA:
|
||||
case IRON_ORE:
|
||||
case LAPIS_ORE:
|
||||
case MOSSY_COBBLESTONE:
|
||||
@ -97,18 +119,43 @@ public class Mining {
|
||||
case PACKED_ICE:
|
||||
case REDSTONE_ORE:
|
||||
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 QUARTZ_ORE:
|
||||
case NETHER_QUARTZ_ORE:
|
||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
||||
return;
|
||||
|
||||
case GLOWING_REDSTONE_ORE:
|
||||
if (Config.getInstance().getDoubleDropsEnabled(SkillType.MINING, Material.REDSTONE_ORE)) {
|
||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
||||
}
|
||||
return;
|
||||
|
||||
default:
|
||||
if (mcMMO.getModManager().isCustomMiningBlock(blockState)) {
|
||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
||||
|
@ -1,17 +1,5 @@
|
||||
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.datatypes.player.McMMOPlayer;
|
||||
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.XPGainReason;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.skills.AbilityCooldownTask;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
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.Permissions;
|
||||
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 MiningManager(McMMOPlayer mcMMOPlayer) {
|
||||
@ -71,7 +69,7 @@ public class MiningManager extends SkillManager {
|
||||
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;
|
||||
}
|
||||
|
||||
@ -94,7 +92,7 @@ public class MiningManager extends SkillManager {
|
||||
*/
|
||||
public void remoteDetonation() {
|
||||
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()) {
|
||||
return;
|
||||
|
@ -1,15 +1,5 @@
|
||||
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.datatypes.player.McMMOPlayer;
|
||||
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.ToolType;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
import com.gmail.nossr50.util.EventUtils;
|
||||
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.player.UserManager;
|
||||
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 UnarmedManager(McMMOPlayer mcMMOPlayer) {
|
||||
@ -64,19 +62,12 @@ public class UnarmedManager extends SkillManager {
|
||||
MaterialData data = blockState.getData();
|
||||
|
||||
switch (blockState.getType()) {
|
||||
case SMOOTH_BRICK:
|
||||
case STONE_BRICKS:
|
||||
if (!Unarmed.blockCrackerSmoothBrick) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Yes, this is awkward, but it's the *right* way to do it.
|
||||
SmoothBrick smoothBrick = (SmoothBrick) data;
|
||||
|
||||
if (smoothBrick.getMaterial() != Material.STONE) {
|
||||
return false;
|
||||
}
|
||||
|
||||
smoothBrick.setMaterial(Material.COBBLESTONE);
|
||||
blockState.setType(Material.CRACKED_STONE_BRICKS);
|
||||
return true;
|
||||
|
||||
default:
|
||||
|
@ -1,9 +1,13 @@
|
||||
package com.gmail.nossr50.skills.woodcutting;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
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.TreeSpecies;
|
||||
import org.bukkit.block.BlockFace;
|
||||
@ -11,14 +15,9 @@ import org.bukkit.block.BlockState;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.material.Tree;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
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;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public final class Woodcutting {
|
||||
public static int leafBlowerUnlockLevel = AdvancedConfig.getInstance().getLeafBlowUnlockLevel();
|
||||
@ -29,7 +28,7 @@ public final class Woodcutting {
|
||||
protected enum ExperienceGainMethod {
|
||||
DEFAULT,
|
||||
TREE_FELLER,
|
||||
};
|
||||
}
|
||||
|
||||
private Woodcutting() {}
|
||||
|
||||
@ -58,20 +57,7 @@ public final class Woodcutting {
|
||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
||||
}
|
||||
else {
|
||||
//TODO Remove this workaround when casting to Tree works again
|
||||
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;
|
||||
}
|
||||
}
|
||||
TreeSpecies species = new Tree(blockState.getType()).getSpecies();
|
||||
|
||||
if (Config.getInstance().getWoodcuttingDoubleDropsEnabled(species)) {
|
||||
Misc.dropItems(Misc.getBlockCenter(blockState), blockState.getBlock().getDrops());
|
||||
|
@ -1,17 +1,5 @@
|
||||
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.player.McMMOPlayer;
|
||||
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.XPGainReason;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
import com.gmail.nossr50.skills.woodcutting.Woodcutting.ExperienceGainMethod;
|
||||
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.*;
|
||||
import com.gmail.nossr50.util.skills.CombatUtils;
|
||||
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 WoodcuttingManager(McMMOPlayer mcMMOPlayer) {
|
||||
@ -54,8 +48,8 @@ public class WoodcuttingManager extends SkillManager {
|
||||
int xp = Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.DEFAULT);
|
||||
|
||||
switch (blockState.getType()) {
|
||||
case HUGE_MUSHROOM_1:
|
||||
case HUGE_MUSHROOM_2:
|
||||
case BROWN_MUSHROOM_BLOCK:
|
||||
case RED_MUSHROOM_BLOCK:
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -123,7 +117,7 @@ public class WoodcuttingManager extends SkillManager {
|
||||
|
||||
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);
|
||||
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
||||
}
|
||||
@ -141,29 +135,16 @@ public class WoodcuttingManager extends SkillManager {
|
||||
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
||||
}
|
||||
else {
|
||||
//TODO Remove this workaround when casting to Tree works again
|
||||
if (blockState.getData() instanceof Tree) {
|
||||
Tree tree = (Tree) blockState.getData();
|
||||
tree.setDirection(BlockFace.UP);
|
||||
|
||||
if (BlockUtils.isLog(blockState)) {
|
||||
if (canGetDoubleDrops()) {
|
||||
Woodcutting.checkForDoubleDrop(blockState);
|
||||
}
|
||||
xp += Woodcutting.getExperienceFromLog(blockState, ExperienceGainMethod.TREE_FELLER);
|
||||
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
||||
}
|
||||
|
||||
switch (material) {
|
||||
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;
|
||||
if (BlockUtils.isLeaves(blockState)) {
|
||||
Misc.dropItems(Misc.getBlockCenter(blockState), block.getDrops());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,22 +1,14 @@
|
||||
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.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.skills.repair.Repair;
|
||||
import com.gmail.nossr50.skills.salvage.Salvage;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockState;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
||||
public final class BlockUtils {
|
||||
|
||||
@ -43,32 +35,54 @@ public final class BlockUtils {
|
||||
*/
|
||||
public static boolean canActivateAbilities(BlockState blockState) {
|
||||
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 BOOKSHELF :
|
||||
case BURNING_FURNACE :
|
||||
case CAKE_BLOCK :
|
||||
case CAKE:
|
||||
case CHEST :
|
||||
case DISPENSER :
|
||||
case ENCHANTMENT_TABLE :
|
||||
case ENCHANTING_TABLE:
|
||||
case ENDER_CHEST :
|
||||
case FENCE_GATE :
|
||||
case OAK_FENCE_GATE:
|
||||
case ACACIA_FENCE_GATE :
|
||||
case DARK_OAK_FENCE_GATE :
|
||||
case SPRUCE_FENCE_GATE :
|
||||
case BIRCH_FENCE_GATE :
|
||||
case JUNGLE_FENCE_GATE :
|
||||
case FURNACE :
|
||||
case IRON_DOOR_BLOCK :
|
||||
case JUKEBOX :
|
||||
case LEVER :
|
||||
case NOTE_BLOCK :
|
||||
case STONE_BUTTON :
|
||||
case WOOD_BUTTON :
|
||||
case TRAP_DOOR :
|
||||
case OAK_BUTTON:
|
||||
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 WOODEN_DOOR :
|
||||
case WORKBENCH :
|
||||
case CRAFTING_TABLE:
|
||||
case BEACON :
|
||||
case ANVIL :
|
||||
case DROPPER :
|
||||
@ -76,12 +90,13 @@ public final class BlockUtils {
|
||||
case TRAPPED_CHEST :
|
||||
case IRON_DOOR :
|
||||
case IRON_TRAPDOOR :
|
||||
case OAK_DOOR:
|
||||
case ACACIA_DOOR :
|
||||
case SPRUCE_DOOR :
|
||||
case BIRCH_DOOR :
|
||||
case JUNGLE_DOOR :
|
||||
case DARK_OAK_DOOR :
|
||||
case FENCE :
|
||||
case OAK_FENCE:
|
||||
case ACACIA_FENCE :
|
||||
case DARK_OAK_FENCE :
|
||||
case BIRCH_FENCE :
|
||||
@ -101,7 +116,7 @@ public final class BlockUtils {
|
||||
case PINK_SHULKER_BOX :
|
||||
case PURPLE_SHULKER_BOX :
|
||||
case RED_SHULKER_BOX :
|
||||
case SILVER_SHULKER_BOX :
|
||||
case LIGHT_GRAY_SHULKER_BOX:
|
||||
case WHITE_SHULKER_BOX :
|
||||
case YELLOW_SHULKER_BOX :
|
||||
return false;
|
||||
@ -136,11 +151,11 @@ public final class BlockUtils {
|
||||
case GRASS_PATH :
|
||||
return true;
|
||||
|
||||
case SMOOTH_BRICK :
|
||||
return ((SmoothBrick) blockState.getData()).getMaterial() == Material.STONE;
|
||||
case STONE_BRICKS:
|
||||
return true;
|
||||
|
||||
case COBBLE_WALL :
|
||||
return blockState.getRawData() == (byte) 0x0;
|
||||
case COBBLESTONE_WALL:
|
||||
return true;
|
||||
|
||||
default :
|
||||
return false;
|
||||
@ -212,8 +227,12 @@ public final class BlockUtils {
|
||||
*/
|
||||
public static boolean isLeaves(BlockState blockState) {
|
||||
switch (blockState.getType()) {
|
||||
case LEAVES :
|
||||
case LEAVES_2 :
|
||||
case OAK_LEAVES:
|
||||
case ACACIA_LEAVES:
|
||||
case BIRCH_LEAVES:
|
||||
case DARK_OAK_LEAVES:
|
||||
case JUNGLE_LEAVES:
|
||||
case SPRUCE_LEAVES:
|
||||
return true;
|
||||
|
||||
default :
|
||||
@ -252,7 +271,7 @@ public final class BlockUtils {
|
||||
case DIRT :
|
||||
case GRASS :
|
||||
case GRASS_PATH :
|
||||
case SOIL :
|
||||
case FARMLAND:
|
||||
return false;
|
||||
|
||||
default :
|
||||
@ -270,8 +289,8 @@ public final class BlockUtils {
|
||||
*/
|
||||
public static boolean affectedByBlockCracker(BlockState blockState) {
|
||||
switch (blockState.getType()) {
|
||||
case SMOOTH_BRICK :
|
||||
return ((SmoothBrick) blockState.getData()).getMaterial() == Material.STONE;
|
||||
case STONE_BRICKS:
|
||||
return true;
|
||||
|
||||
default :
|
||||
return false;
|
||||
@ -313,7 +332,7 @@ public final class BlockUtils {
|
||||
public static boolean isPistonPiece(BlockState blockState) {
|
||||
Material type = blockState.getType();
|
||||
|
||||
return type == Material.PISTON_MOVING_PIECE || type == Material.AIR;
|
||||
return type == Material.MOVING_PISTON || type == Material.AIR;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,17 +1,5 @@
|
||||
package com.gmail.nossr50.util;
|
||||
|
||||
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.player.McMMOPlayer;
|
||||
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.unarmed.McMMOPlayerDisarmEvent;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
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 static McMMOPlayerAbilityActivateEvent callPlayerAbilityActivateEvent(Player player, SkillType skill) {
|
||||
@ -252,7 +251,7 @@ public class EventUtils {
|
||||
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);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
|
@ -1,27 +1,14 @@
|
||||
package com.gmail.nossr50.util;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
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 com.gmail.nossr50.commands.skills.AprilCommand;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
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;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.FireworkEffect.Type;
|
||||
import org.bukkit.Statistic;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
import org.bukkit.entity.EntityType;
|
||||
@ -30,14 +17,9 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerStatisticIncrementEvent;
|
||||
import org.bukkit.inventory.meta.FireworkMeta;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.commands.skills.AprilCommand;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
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;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public final class HolidayManager {
|
||||
private ArrayList<String> hasCelebrated;
|
||||
@ -95,7 +77,7 @@ public final class HolidayManager {
|
||||
return FakeSkillType.CLIMBING;
|
||||
case FLY_ONE_CM:
|
||||
return FakeSkillType.FLYING;
|
||||
case DIVE_ONE_CM:
|
||||
case WALK_UNDER_WATER_ONE_CM:
|
||||
return FakeSkillType.DIVING;
|
||||
case PIG_ONE_CM:
|
||||
return FakeSkillType.PIGGY;
|
||||
@ -107,7 +89,7 @@ public final class HolidayManager {
|
||||
|
||||
public final Set<Statistic> movementStatistics = EnumSet.of(
|
||||
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);
|
||||
|
||||
static {
|
||||
|
@ -1,20 +1,15 @@
|
||||
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.CoalType;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.FurnaceRecipe;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.Recipe;
|
||||
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 {
|
||||
private ItemUtils() {}
|
||||
@ -48,10 +43,10 @@ public final class ItemUtils {
|
||||
|
||||
switch (type) {
|
||||
case DIAMOND_SWORD:
|
||||
case GOLD_SWORD:
|
||||
case GOLDEN_SWORD:
|
||||
case IRON_SWORD:
|
||||
case STONE_SWORD:
|
||||
case WOOD_SWORD:
|
||||
case WOODEN_SWORD:
|
||||
return true;
|
||||
|
||||
default:
|
||||
@ -70,10 +65,10 @@ public final class ItemUtils {
|
||||
|
||||
switch (type) {
|
||||
case DIAMOND_HOE:
|
||||
case GOLD_HOE:
|
||||
case GOLDEN_HOE:
|
||||
case IRON_HOE:
|
||||
case STONE_HOE:
|
||||
case WOOD_HOE:
|
||||
case WOODEN_HOE:
|
||||
return true;
|
||||
|
||||
default:
|
||||
@ -91,11 +86,11 @@ public final class ItemUtils {
|
||||
Material type = item.getType();
|
||||
|
||||
switch (type) {
|
||||
case DIAMOND_SPADE:
|
||||
case GOLD_SPADE:
|
||||
case IRON_SPADE:
|
||||
case STONE_SPADE:
|
||||
case WOOD_SPADE:
|
||||
case DIAMOND_SHOVEL:
|
||||
case GOLDEN_SHOVEL:
|
||||
case IRON_SHOVEL:
|
||||
case STONE_SHOVEL:
|
||||
case WOODEN_SHOVEL:
|
||||
return true;
|
||||
|
||||
default:
|
||||
@ -114,10 +109,10 @@ public final class ItemUtils {
|
||||
|
||||
switch (type) {
|
||||
case DIAMOND_AXE:
|
||||
case GOLD_AXE:
|
||||
case GOLDEN_AXE:
|
||||
case IRON_AXE:
|
||||
case STONE_AXE:
|
||||
case WOOD_AXE:
|
||||
case WOODEN_AXE:
|
||||
return true;
|
||||
|
||||
default:
|
||||
@ -136,10 +131,10 @@ public final class ItemUtils {
|
||||
|
||||
switch (type) {
|
||||
case DIAMOND_PICKAXE:
|
||||
case GOLD_PICKAXE:
|
||||
case GOLDEN_PICKAXE:
|
||||
case IRON_PICKAXE:
|
||||
case STONE_PICKAXE:
|
||||
case WOOD_PICKAXE:
|
||||
case WOODEN_PICKAXE:
|
||||
return true;
|
||||
|
||||
default:
|
||||
@ -172,7 +167,7 @@ public final class ItemUtils {
|
||||
|
||||
switch (type) {
|
||||
case DIAMOND_HELMET:
|
||||
case GOLD_HELMET:
|
||||
case GOLDEN_HELMET:
|
||||
case IRON_HELMET:
|
||||
case CHAINMAIL_HELMET:
|
||||
case LEATHER_HELMET:
|
||||
@ -194,7 +189,7 @@ public final class ItemUtils {
|
||||
|
||||
switch (type) {
|
||||
case DIAMOND_CHESTPLATE:
|
||||
case GOLD_CHESTPLATE:
|
||||
case GOLDEN_CHESTPLATE:
|
||||
case IRON_CHESTPLATE:
|
||||
case CHAINMAIL_CHESTPLATE:
|
||||
case LEATHER_CHESTPLATE:
|
||||
@ -216,7 +211,7 @@ public final class ItemUtils {
|
||||
|
||||
switch (type) {
|
||||
case DIAMOND_LEGGINGS:
|
||||
case GOLD_LEGGINGS:
|
||||
case GOLDEN_LEGGINGS:
|
||||
case IRON_LEGGINGS:
|
||||
case CHAINMAIL_LEGGINGS:
|
||||
case LEATHER_LEGGINGS:
|
||||
@ -238,7 +233,7 @@ public final class ItemUtils {
|
||||
|
||||
switch (type) {
|
||||
case DIAMOND_BOOTS:
|
||||
case GOLD_BOOTS:
|
||||
case GOLDEN_BOOTS:
|
||||
case IRON_BOOTS:
|
||||
case CHAINMAIL_BOOTS:
|
||||
case LEATHER_BOOTS:
|
||||
@ -296,10 +291,10 @@ public final class ItemUtils {
|
||||
*/
|
||||
public static boolean isGoldArmor(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case GOLD_BOOTS:
|
||||
case GOLD_CHESTPLATE:
|
||||
case GOLD_HELMET:
|
||||
case GOLD_LEGGINGS:
|
||||
case GOLDEN_BOOTS:
|
||||
case GOLDEN_CHESTPLATE:
|
||||
case GOLDEN_HELMET:
|
||||
case GOLDEN_LEGGINGS:
|
||||
return true;
|
||||
|
||||
default:
|
||||
@ -385,7 +380,7 @@ public final class ItemUtils {
|
||||
case STONE_AXE:
|
||||
case STONE_HOE:
|
||||
case STONE_PICKAXE:
|
||||
case STONE_SPADE:
|
||||
case STONE_SHOVEL:
|
||||
case STONE_SWORD:
|
||||
return true;
|
||||
|
||||
@ -402,11 +397,11 @@ public final class ItemUtils {
|
||||
*/
|
||||
public static boolean isWoodTool(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case WOOD_AXE:
|
||||
case WOOD_HOE:
|
||||
case WOOD_PICKAXE:
|
||||
case WOOD_SPADE:
|
||||
case WOOD_SWORD:
|
||||
case WOODEN_AXE:
|
||||
case WOODEN_HOE:
|
||||
case WOODEN_PICKAXE:
|
||||
case WOODEN_SHOVEL:
|
||||
case WOODEN_SWORD:
|
||||
return true;
|
||||
|
||||
default:
|
||||
@ -423,7 +418,7 @@ public final class ItemUtils {
|
||||
public static boolean isStringTool(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case BOW:
|
||||
case CARROT_STICK:
|
||||
case CARROT_ON_A_STICK:
|
||||
case FISHING_ROD:
|
||||
return true;
|
||||
|
||||
@ -440,11 +435,11 @@ public final class ItemUtils {
|
||||
*/
|
||||
public static boolean isGoldTool(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case GOLD_AXE:
|
||||
case GOLD_HOE:
|
||||
case GOLD_PICKAXE:
|
||||
case GOLD_SPADE:
|
||||
case GOLD_SWORD:
|
||||
case GOLDEN_AXE:
|
||||
case GOLDEN_HOE:
|
||||
case GOLDEN_PICKAXE:
|
||||
case GOLDEN_SHOVEL:
|
||||
case GOLDEN_SWORD:
|
||||
return true;
|
||||
|
||||
default:
|
||||
@ -465,7 +460,7 @@ public final class ItemUtils {
|
||||
case IRON_AXE:
|
||||
case IRON_HOE:
|
||||
case IRON_PICKAXE:
|
||||
case IRON_SPADE:
|
||||
case IRON_SHOVEL:
|
||||
case IRON_SWORD:
|
||||
case SHEARS:
|
||||
return true;
|
||||
@ -486,7 +481,7 @@ public final class ItemUtils {
|
||||
case DIAMOND_AXE:
|
||||
case DIAMOND_HOE:
|
||||
case DIAMOND_PICKAXE:
|
||||
case DIAMOND_SPADE:
|
||||
case DIAMOND_SHOVEL:
|
||||
case DIAMOND_SWORD:
|
||||
return true;
|
||||
|
||||
@ -506,7 +501,7 @@ public final class ItemUtils {
|
||||
case ENCHANTED_BOOK:
|
||||
case SHEARS:
|
||||
case FISHING_ROD:
|
||||
case CARROT_STICK:
|
||||
case CARROT_ON_A_STICK:
|
||||
case FLINT_AND_STEEL:
|
||||
return true;
|
||||
|
||||
@ -568,12 +563,10 @@ public final class ItemUtils {
|
||||
case REDSTONE:
|
||||
case GLOWSTONE_DUST: // Should we also have Glowstone here?
|
||||
case QUARTZ:
|
||||
case QUARTZ_ORE:
|
||||
case NETHER_QUARTZ_ORE:
|
||||
case LAPIS_LAZULI:
|
||||
return true;
|
||||
|
||||
case INK_SACK:
|
||||
return ((Dye) item.getData()).getColor() == DyeColor.BLUE;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@ -588,33 +581,30 @@ public final class ItemUtils {
|
||||
public static boolean isHerbalismDrop(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case WHEAT:
|
||||
case SEEDS:
|
||||
case CARROT_ITEM:
|
||||
case WHEAT_SEEDS:
|
||||
case CARROT:
|
||||
case CHORUS_FRUIT:
|
||||
case CHORUS_FLOWER:
|
||||
case POTATO_ITEM:
|
||||
case POTATO:
|
||||
case BEETROOT:
|
||||
case BEETROOT_SEEDS:
|
||||
case NETHER_WARTS:
|
||||
case NETHER_WART:
|
||||
case BROWN_MUSHROOM:
|
||||
case RED_MUSHROOM:
|
||||
case RED_ROSE:
|
||||
case YELLOW_FLOWER:
|
||||
case ROSE_RED:
|
||||
case DANDELION_YELLOW:
|
||||
case CACTUS:
|
||||
case SUGAR_CANE:
|
||||
case MELON:
|
||||
case MELON_SEEDS:
|
||||
case PUMPKIN:
|
||||
case PUMPKIN_SEEDS:
|
||||
case WATER_LILY:
|
||||
case LILY_PAD:
|
||||
case VINE:
|
||||
case LONG_GRASS:
|
||||
case DOUBLE_PLANT:
|
||||
case TALL_GRASS:
|
||||
case COCOA_BEANS:
|
||||
return true;
|
||||
|
||||
case INK_SACK:
|
||||
return ((Dye) item.getData()).getColor() == DyeColor.BROWN;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@ -630,19 +620,34 @@ public final class ItemUtils {
|
||||
switch (item.getType()) {
|
||||
case STRING:
|
||||
case FEATHER:
|
||||
case RAW_CHICKEN:
|
||||
case CHICKEN:
|
||||
case COOKED_CHICKEN:
|
||||
case LEATHER:
|
||||
case RAW_BEEF:
|
||||
case BEEF:
|
||||
case COOKED_BEEF:
|
||||
case PORK:
|
||||
case GRILLED_PORK:
|
||||
case WOOL:
|
||||
case PORKCHOP:
|
||||
case COOKED_PORKCHOP:
|
||||
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 SNOW_BALL:
|
||||
case SNOWBALL:
|
||||
case BLAZE_ROD:
|
||||
case SPIDER_EYE:
|
||||
case SULPHUR:
|
||||
case GUNPOWDER:
|
||||
case ENDER_PEARL:
|
||||
case GHAST_TEAR:
|
||||
case MAGMA_CREAM:
|
||||
@ -653,14 +658,10 @@ public final class ItemUtils {
|
||||
case ROTTEN_FLESH:
|
||||
case GOLD_NUGGET:
|
||||
case EGG:
|
||||
case ROSE_RED:
|
||||
case COAL:
|
||||
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:
|
||||
return false;
|
||||
}
|
||||
@ -674,11 +675,30 @@ public final class ItemUtils {
|
||||
*/
|
||||
public static boolean isWoodcuttingDrop(ItemStack item) {
|
||||
switch (item.getType()) {
|
||||
case LOG:
|
||||
case LOG_2:
|
||||
case LEAVES:
|
||||
case LEAVES_2:
|
||||
case SAPLING:
|
||||
case ACACIA_LOG:
|
||||
case BIRCH_LOG:
|
||||
case DARK_OAK_LOG:
|
||||
case JUNGLE_LOG:
|
||||
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:
|
||||
return true;
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
package com.gmail.nossr50.util;
|
||||
|
||||
import org.bukkit.material.MaterialData;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.material.MaterialData;
|
||||
|
||||
public final class MaterialUtils {
|
||||
private MaterialUtils() {}
|
||||
@ -11,11 +10,10 @@ public final class MaterialUtils {
|
||||
switch (data.getItemType()) {
|
||||
case COAL_ORE:
|
||||
case DIAMOND_ORE:
|
||||
case GLOWING_REDSTONE_ORE:
|
||||
case NETHER_QUARTZ_ORE:
|
||||
case GOLD_ORE:
|
||||
case IRON_ORE:
|
||||
case LAPIS_ORE:
|
||||
case QUARTZ_ORE:
|
||||
case REDSTONE_ORE:
|
||||
case EMERALD_ORE:
|
||||
return true;
|
||||
|
@ -1,23 +1,12 @@
|
||||
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.skills.AbilityType;
|
||||
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 {
|
||||
|
||||
@ -53,284 +42,6 @@ public class StringUtils {
|
||||
}
|
||||
|
||||
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(" ", "_");
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,21 @@
|
||||
package com.gmail.nossr50.util.skills;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
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.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
@ -16,22 +29,8 @@ import org.bukkit.material.MaterialData;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
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;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SkillUtils {
|
||||
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;
|
||||
}
|
||||
else if (ItemUtils.isWoodTool(inHand)) {
|
||||
return Material.WOOD;
|
||||
return Material.OAK_WOOD;
|
||||
}
|
||||
else if (ItemUtils.isLeatherArmor(inHand)) {
|
||||
return Material.LEATHER;
|
||||
|
Loading…
Reference in New Issue
Block a user