Parcourir la source

Version 1.2.03 WIP

nossr50 il y a 13 ans
Parent
commit
59429f066d

+ 11 - 0
src/Changelog.txt

@@ -1,5 +1,16 @@
 Changelog:
 Changelog:
 #Versions without changelogs probably had very small misc fixes, like tweaks to the source code
 #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
 Version 1.2.01
 Added a setting to turn off abilities completely from config
 Added a setting to turn off abilities completely from config
 Added a setting to just turn off ability messages 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
 	    	} else
 	    	{
 	    	{
 	    		if(entity instanceof Enderman)
 	    		if(entity instanceof Enderman)
-					xp = (xpinc * 3);
+					xp = (xpinc * 2);
 		    	else if(entity instanceof Creeper)
 		    	else if(entity instanceof Creeper)
 					xp = (xpinc * 4);
 					xp = (xpinc * 4);
 		    	else if(entity instanceof Silverfish)
 		    	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,
 	xprate, mcability, mcmmo, mcc, mcrefresh, mcgod, stats, mmoedit, ptp, party, myspawn, whois, invite, accept, clearmyspawn, nWood,
 	nStone, nIron, nGold, nDiamond, locale;
 	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,
 	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,
 	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,
 	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.String", 200);
 	    	write("Experience.Excavation.Bucket", 100);
 	    	write("Experience.Excavation.Bucket", 100);
 	    	write("Experience.Excavation.Web", 150);
 	    	write("Experience.Excavation.Web", 150);
+	    	write("Experience.Fishing.Base", 800);
 	    	
 	    	
 	    	//write("Sorcery.Spells.Water.Thunder", 75);
 	    	//write("Sorcery.Spells.Water.Thunder", 75);
 	    	//write("Sorcery.Spells.Curative.Cure_Self.Mana_Cost", 5);
 	    	//write("Sorcery.Spells.Curative.Cure_Self.Mana_Cost", 5);
@@ -468,6 +469,8 @@ public class LoadProperties
 	        mstone = readInteger("Experience.Mining.Stone", 30);
 	        mstone = readInteger("Experience.Mining.Stone", 30);
 	        msandstone = readInteger("Experience.Mining.Sandstone", 30);
 	        msandstone = readInteger("Experience.Mining.Sandstone", 30);
 	        
 	        
+	        mfishing = readInteger("Experience.Fishing.Base", 800);
+	        
 	        greenTerraCooldown = readInteger("Abilities.Cooldowns.Green_Terra", 240);
 	        greenTerraCooldown = readInteger("Abilities.Cooldowns.Green_Terra", 240);
 	    	superBreakerCooldown = readInteger("Abilities.Cooldowns.Super_Breaker", 240);
 	    	superBreakerCooldown = readInteger("Abilities.Cooldowns.Super_Breaker", 240);
 	    	gigaDrillBreakerCooldown = readInteger("Abilities.Cooldowns.Giga_Drill_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
 	//TIMESTAMPS
 	//ATS = (Time of) Activation Time Stamp
 	//ATS = (Time of) Activation Time Stamp
 	//DATS = (Time of) Deactivation 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, 
 	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;
 	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)
 	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;
 			return;
 		
 		
+		//Setup a timestamp of when xp was given
+		xpGainATS = (int) (System.currentTimeMillis()/1000);
+		
 		double bonusModifier = 0;
 		double bonusModifier = 0;
 		String leaderName = "";
 		String leaderName = "";
 		
 		
@@ -1099,6 +1102,7 @@ public class PlayerProfile
 			skillsXp.put(SkillType.UNARMED, skillsXp.get(SkillType.UNARMED)-newvalue);
 			skillsXp.put(SkillType.UNARMED, skillsXp.get(SkillType.UNARMED)-newvalue);
 			skillsXp.put(SkillType.EXCAVATION, skillsXp.get(SkillType.EXCAVATION)-newvalue);
 			skillsXp.put(SkillType.EXCAVATION, skillsXp.get(SkillType.EXCAVATION)-newvalue);
 			skillsXp.put(SkillType.AXES, skillsXp.get(SkillType.AXES)-newvalue);
 			skillsXp.put(SkillType.AXES, skillsXp.get(SkillType.AXES)-newvalue);
+			skillsXp.put(SkillType.FISHING, skillsXp.get(SkillType.FISHING)-newvalue);
 		} else {
 		} else {
 			skillsXp.put(skillType, skillsXp.get(skillType)-newvalue);
 			skillsXp.put(skillType, skillsXp.get(skillType)-newvalue);
 		}
 		}
@@ -1130,6 +1134,7 @@ public class PlayerProfile
 			skills.put(SkillType.UNARMED, newvalue);
 			skills.put(SkillType.UNARMED, newvalue);
 			skills.put(SkillType.EXCAVATION, newvalue);
 			skills.put(SkillType.EXCAVATION, newvalue);
 			skills.put(SkillType.AXES, newvalue);
 			skills.put(SkillType.AXES, newvalue);
+			skills.put(skillType.FISHING, newvalue);
 			
 			
 			skillsXp.put(SkillType.TAMING, 0);
 			skillsXp.put(SkillType.TAMING, 0);
 			skillsXp.put(SkillType.MINING, 0);
 			skillsXp.put(SkillType.MINING, 0);
@@ -1142,6 +1147,7 @@ public class PlayerProfile
 			skillsXp.put(SkillType.UNARMED, 0);
 			skillsXp.put(SkillType.UNARMED, 0);
 			skillsXp.put(SkillType.EXCAVATION, 0);
 			skillsXp.put(SkillType.EXCAVATION, 0);
 			skillsXp.put(SkillType.AXES, 0);
 			skillsXp.put(SkillType.AXES, 0);
+			skillsXp.put(skillType.FISHING, newvalue);
 		} else {
 		} else {
 			skills.put(skillType, newvalue);
 			skills.put(skillType, newvalue);
 			skillsXp.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();
 				ItemStack[] inventory = player.getInventory().getContents();
     	    	for(ItemStack x : inventory){
     	    	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)
     	    			if(x.getAmount() >= LoadProperties.bonesConsumedByCOTW)
     	    			{
     	    			{
     	    				x.setAmount(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 org.bukkit.material.Wool;
 
 
 import com.gmail.nossr50.Users;
 import com.gmail.nossr50.Users;
+import com.gmail.nossr50.config.LoadProperties;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.mcLocale;
 import com.gmail.nossr50.locale.mcLocale;
@@ -152,30 +153,22 @@ public class Fishing {
 		{
 		{
 		case 1:
 		case 1:
 			getFishingResultsTier1(player, event);
 			getFishingResultsTier1(player, event);
-			Users.getProfile(player).addXP(SkillType.FISHING, 1500, player);
-			player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 1));
 			break;
 			break;
 		case 2:
 		case 2:
 			getFishingResultsTier2(player, event);
 			getFishingResultsTier2(player, event);
-			Users.getProfile(player).addXP(SkillType.FISHING, 1500, player);
-			player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 2));
 			break;
 			break;
 		case 3:
 		case 3:
 			getFishingResultsTier3(player, event);
 			getFishingResultsTier3(player, event);
-			Users.getProfile(player).addXP(SkillType.FISHING, 1500, player);
-			player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 3));
 			break;
 			break;
 		case 4:
 		case 4:
 			getFishingResultsTier4(player, event);
 			getFishingResultsTier4(player, event);
-			Users.getProfile(player).addXP(SkillType.FISHING, 1500, player);
-			player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 4));
 			break;
 			break;
 		case 5:
 		case 5:
 			getFishingResultsTier5(player, event);
 			getFishingResultsTier5(player, event);
-			Users.getProfile(player).addXP(SkillType.FISHING, 1500, player);
-			player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 5));
 			break;
 			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);
 		Skills.XpCheckSkill(SkillType.FISHING, player);
 	}
 	}
 	
 	

+ 1 - 1
src/plugin.yml

@@ -1,6 +1,6 @@
 name: mcMMO
 name: mcMMO
 main: com.gmail.nossr50.mcMMO
 main: com.gmail.nossr50.mcMMO
-version: 1.2.01
+version: 1.2.03
 softdepend: [Spout]
 softdepend: [Spout]
 author: nossr50
 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.
 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.