diff --git a/src/Changelog.txt b/src/Changelog.txt index b7c0fa1f4..184965543 100644 --- a/src/Changelog.txt +++ b/src/Changelog.txt @@ -1,5 +1,16 @@ Changelog: #Versions without changelogs probably had very small misc fixes, like tweaks to the source code +Version 1.2.03 +Fixed problems with mmoedit and fishing + +Version 1.2.02 +Added measures to prevent easy xp from hacks that cause a ridiculous amount of clicks per second +Fixed bug where Call Of The Wild used only 1 bone to summon +Reduced Endermen XP from 3x to 2x +The number of bonus fish caught from fishing has been reduced +Fishing XP reduced from 1500 to 800 +Fishing XP is now configurable in the config file + Version 1.2.01 Added a setting to turn off abilities completely from config Added a setting to just turn off ability messages from config diff --git a/src/com/gmail/nossr50/Combat.java b/src/com/gmail/nossr50/Combat.java index 9df5bd91f..971173bea 100644 --- a/src/com/gmail/nossr50/Combat.java +++ b/src/com/gmail/nossr50/Combat.java @@ -390,7 +390,7 @@ public class Combat } else { if(entity instanceof Enderman) - xp = (xpinc * 3); + xp = (xpinc * 2); else if(entity instanceof Creeper) xp = (xpinc * 4); else if(entity instanceof Silverfish) diff --git a/src/com/gmail/nossr50/config/LoadProperties.java b/src/com/gmail/nossr50/config/LoadProperties.java index 9d67d3b6c..f23269e6b 100644 --- a/src/com/gmail/nossr50/config/LoadProperties.java +++ b/src/com/gmail/nossr50/config/LoadProperties.java @@ -34,7 +34,7 @@ public class LoadProperties xprate, mcability, mcmmo, mcc, mcrefresh, mcgod, stats, mmoedit, ptp, party, myspawn, whois, invite, accept, clearmyspawn, nWood, nStone, nIron, nGold, nDiamond, locale; - public static int mwatch, xpbar_x, xpbar_y, xpicon_x, xpicon_y, mstring, mbucket, mweb, + public static int mfishing, mwatch, xpbar_x, xpbar_y, xpicon_x, xpicon_y, mstring, mbucket, mweb, chimaeraId, msandstone, mcocoa, water_thunder, cure_self, cure_other, mslimeballs, mbones, msulphur, mslowsand, mmushroom2, mglowstone2, mmelon, mmusic, mdiamond2, mbase, mapple, meggs, mcake, mpine, mbirch, mspruce, mcactus, mmushroom, mflower, msugar, mpumpkin, mwheat, mgold, mdiamond, miron, mredstone, mlapis, mobsidian, mnetherrack, mglowstone, mcoal, mstone, MySQLport, @@ -255,6 +255,7 @@ public class LoadProperties write("Experience.Excavation.String", 200); write("Experience.Excavation.Bucket", 100); write("Experience.Excavation.Web", 150); + write("Experience.Fishing.Base", 800); //write("Sorcery.Spells.Water.Thunder", 75); //write("Sorcery.Spells.Curative.Cure_Self.Mana_Cost", 5); @@ -468,6 +469,8 @@ public class LoadProperties mstone = readInteger("Experience.Mining.Stone", 30); msandstone = readInteger("Experience.Mining.Sandstone", 30); + mfishing = readInteger("Experience.Fishing.Base", 800); + greenTerraCooldown = readInteger("Abilities.Cooldowns.Green_Terra", 240); superBreakerCooldown = readInteger("Abilities.Cooldowns.Super_Breaker", 240); gigaDrillBreakerCooldown = readInteger("Abilities.Cooldowns.Giga_Drill_Breaker", 240); diff --git a/src/com/gmail/nossr50/datatypes/PlayerProfile.java b/src/com/gmail/nossr50/datatypes/PlayerProfile.java index 1ece9b04b..80e0ca230 100644 --- a/src/com/gmail/nossr50/datatypes/PlayerProfile.java +++ b/src/com/gmail/nossr50/datatypes/PlayerProfile.java @@ -57,7 +57,7 @@ public class PlayerProfile //TIMESTAMPS //ATS = (Time of) Activation Time Stamp //DATS = (Time of) Deactivation Time Stamp - private int recentlyHurt = 0, berserkATS = 0, berserkDATS = 0, gigaDrillBreakerATS = 0, gigaDrillBreakerDATS = 0, + private int xpGainATS = 0, recentlyHurt = 0, berserkATS = 0, berserkDATS = 0, gigaDrillBreakerATS = 0, gigaDrillBreakerDATS = 0, respawnATS = 0, mySpawnATS = 0, greenTerraATS = 0, greenTerraDATS = 0, superBreakerATS = 0, superBreakerDATS = 0, serratedStrikesATS = 0, serratedStrikesDATS = 0, treeFellerATS = 0, treeFellerDATS = 0, skullSplitterATS = 0, skullSplitterDATS = 0, hoePreparationATS = 0, axePreparationATS = 0, pickaxePreparationATS = 0, fistsPreparationATS = 0, shovelPreparationATS = 0, swordsPreparationATS = 0; @@ -992,9 +992,12 @@ public class PlayerProfile */ public void addXP(SkillType skillType, int newvalue, Player thisplayer) { - if(thisplayer.getGameMode() == GameMode.CREATIVE) + if(System.currentTimeMillis() < ((xpGainATS*1000)+250) || thisplayer.getGameMode() == GameMode.CREATIVE) return; + //Setup a timestamp of when xp was given + xpGainATS = (int) (System.currentTimeMillis()/1000); + double bonusModifier = 0; String leaderName = ""; @@ -1099,6 +1102,7 @@ public class PlayerProfile skillsXp.put(SkillType.UNARMED, skillsXp.get(SkillType.UNARMED)-newvalue); skillsXp.put(SkillType.EXCAVATION, skillsXp.get(SkillType.EXCAVATION)-newvalue); skillsXp.put(SkillType.AXES, skillsXp.get(SkillType.AXES)-newvalue); + skillsXp.put(SkillType.FISHING, skillsXp.get(SkillType.FISHING)-newvalue); } else { skillsXp.put(skillType, skillsXp.get(skillType)-newvalue); } @@ -1130,6 +1134,7 @@ public class PlayerProfile skills.put(SkillType.UNARMED, newvalue); skills.put(SkillType.EXCAVATION, newvalue); skills.put(SkillType.AXES, newvalue); + skills.put(skillType.FISHING, newvalue); skillsXp.put(SkillType.TAMING, 0); skillsXp.put(SkillType.MINING, 0); @@ -1142,6 +1147,7 @@ public class PlayerProfile skillsXp.put(SkillType.UNARMED, 0); skillsXp.put(SkillType.EXCAVATION, 0); skillsXp.put(SkillType.AXES, 0); + skillsXp.put(skillType.FISHING, newvalue); } else { skills.put(skillType, newvalue); skillsXp.put(skillType, newvalue); diff --git a/src/com/gmail/nossr50/listeners/mcPlayerListener.java b/src/com/gmail/nossr50/listeners/mcPlayerListener.java index 76011415d..2411d72ef 100644 --- a/src/com/gmail/nossr50/listeners/mcPlayerListener.java +++ b/src/com/gmail/nossr50/listeners/mcPlayerListener.java @@ -274,7 +274,7 @@ public class mcPlayerListener extends PlayerListener ItemStack[] inventory = player.getInventory().getContents(); for(ItemStack x : inventory){ - if(x != null && x.getType() == Material.BONE){ + if(x != null && x.getAmount() > LoadProperties.bonesConsumedByCOTW-1 && x.getType() == Material.BONE){ if(x.getAmount() >= LoadProperties.bonesConsumedByCOTW) { x.setAmount(x.getAmount() - LoadProperties.bonesConsumedByCOTW); diff --git a/src/com/gmail/nossr50/skills/Fishing.java b/src/com/gmail/nossr50/skills/Fishing.java index 88875495d..4345d63b6 100644 --- a/src/com/gmail/nossr50/skills/Fishing.java +++ b/src/com/gmail/nossr50/skills/Fishing.java @@ -18,6 +18,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.material.Wool; import com.gmail.nossr50.Users; +import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.locale.mcLocale; @@ -152,30 +153,22 @@ public class Fishing { { case 1: getFishingResultsTier1(player, event); - Users.getProfile(player).addXP(SkillType.FISHING, 1500, player); - player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 1)); break; case 2: getFishingResultsTier2(player, event); - Users.getProfile(player).addXP(SkillType.FISHING, 1500, player); - player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 2)); break; case 3: getFishingResultsTier3(player, event); - Users.getProfile(player).addXP(SkillType.FISHING, 1500, player); - player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 3)); break; case 4: getFishingResultsTier4(player, event); - Users.getProfile(player).addXP(SkillType.FISHING, 1500, player); - player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 4)); break; case 5: getFishingResultsTier5(player, event); - Users.getProfile(player).addXP(SkillType.FISHING, 1500, player); - player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 5)); break; } + player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 1)); + Users.getProfile(player).addXP(SkillType.FISHING, LoadProperties.mfishing, player); Skills.XpCheckSkill(SkillType.FISHING, player); } diff --git a/src/plugin.yml b/src/plugin.yml index 184b0de94..23ae701ef 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: mcMMO main: com.gmail.nossr50.mcMMO -version: 1.2.01 +version: 1.2.03 softdepend: [Spout] author: nossr50 description: mcMMO takes core Minecraft game mechanics and expands them to add an extensive RPG experience, the goal of the project has always been a quality RPG experience. Everything in mcMMO is carefully thought out and is constantly improving. mcMMO adds eleven skills to train in and level in, while also offering a high level of customization for server admins. There are countless features, including custom sounds, graphical elements, and more added when running mcMMO in conjunction with Spout. I carefully read feedback and evaluate the mechanics of mcMMO in every update to provide an ever-evolving experience.