nossr50 преди 13 години
родител
ревизия
59429f066d

+ 11 - 0
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

+ 1 - 1
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)

+ 4 - 1
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);

+ 8 - 2
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);

+ 1 - 1
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);

+ 3 - 10
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);
 	}
 	

+ 1 - 1
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.