Merge branch 'master' of git://github.com/nossr50/mcMMO

This commit is contained in:
mcmmoPolish 2011-08-05 18:33:20 +02:00
commit cdcd93dc80
11 changed files with 344 additions and 209 deletions

View File

@ -1,5 +1,9 @@
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.0.51
Converted many big numbers to much smaller numbers reducing memory usage
XP Bars
Version 1.0.50 Version 1.0.50
New /xprate command for those with mcmmo.admin permissions! New /xprate command for those with mcmmo.admin permissions!
mcMMO now uses Spout instead of BukkitContrib mcMMO now uses Spout instead of BukkitContrib

View File

@ -83,7 +83,7 @@ public class Combat
PlayerProfile PPd = Users.getProfile(defender); PlayerProfile PPd = Users.getProfile(defender);
if(attacker != null && defender != null && LoadProperties.pvpxp) if(attacker != null && defender != null && LoadProperties.pvpxp)
{ {
if(System.currentTimeMillis() >= PPd.getRespawnATS() + 5000 if(System.currentTimeMillis() >= (PPd.getRespawnATS()*1000) + 5000
&& ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis() && ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis()
&& defender.getHealth() >= 1) && defender.getHealth() >= 1)
{ {

View File

@ -1,10 +1,13 @@
package com.gmail.nossr50.contrib; package com.gmail.nossr50.contrib;
import java.util.HashMap;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.getspout.spoutapi.SpoutManager; import org.getspout.spoutapi.SpoutManager;
import org.getspout.spoutapi.gui.GenericTexture;
import org.getspout.spoutapi.player.SpoutPlayer; import org.getspout.spoutapi.player.SpoutPlayer;
import org.getspout.spoutapi.sound.SoundEffect; import org.getspout.spoutapi.sound.SoundEffect;
import org.getspout.spoutapi.sound.SoundManager; import org.getspout.spoutapi.sound.SoundManager;
@ -16,6 +19,9 @@ import com.gmail.nossr50.datatypes.SkillType;
public class SpoutStuff public class SpoutStuff
{ {
public static HashMap<Player, GenericTexture> xpbars = new HashMap<Player, GenericTexture>();
public static HashMap<Player, GenericTexture> xpicons = new HashMap<Player, GenericTexture>();
public static void playSoundForPlayer(SoundEffect effect, Player player, Location location) public static void playSoundForPlayer(SoundEffect effect, Player player, Location location)
{ {
//Contrib stuff //Contrib stuff
@ -256,4 +262,134 @@ public class SpoutStuff
else else
return 5; return 5;
} }
public static Integer getXpInc(int skillxp, int xptolevel)
{
double percentage = (double) skillxp/xptolevel;
double inc = 0.0039370078740157;
return (int) (percentage/inc);
}
public static void updateXpBar(Player player)
{
PlayerProfile PP = Users.getProfile(player);
if(PP.getLastGained() != null)
{
int num = getXpInc(PP.getSkillXpLevel(PP.getLastGained()), PP.getXpToLevel(PP.getLastGained()));
xpbars.get(player).setUrl(getUrlBar(num)).setDirty(true);
xpicons.get(player).setUrl(getUrlIcon(PP.getLastGained())).setDirty(true);
((SpoutPlayer)player).getMainScreen().setDirty(true);
}
}
public static void updateXpBarFill(Player player)
{
PlayerProfile PP = Users.getProfile(player);
if(PP.getLastGained() != null)
{
if(PP.getXpBarInc() < 254)
xpbars.get(player).setUrl(getUrlBar(PP.getXpBarInc()+1)).setDirty(true);
else
xpbars.get(player).setUrl(getUrlBar(0)).setDirty(true);
PP.setXpBarInc(PP.getXpBarInc()+1);
xpicons.get(player).setUrl(getUrlIcon(PP.getLastGained())).setDirty(true);
((SpoutPlayer)player).getMainScreen().setDirty(true);
}
}
public static String getUrlBar(Integer number)
{
if(number.toString().toCharArray().length == 1)
{
return "http://dl.dropbox.com/u/18212134/xpbar/xpbar_inc00"+number+".png";
//return "file:///C:/Users/Rob/Dropbox/Public/xpbar/xpbar_inc00"+number+".png";
} else if (number.toString().toCharArray().length == 2)
{
return "http://dl.dropbox.com/u/18212134/xpbar/xpbar_inc0"+number+".png";
//return "file:///C:/Users/Rob/Dropbox/Public/xpbar/xpbar_inc0"+number+".png";
} else {
return "http://dl.dropbox.com/u/18212134/xpbar/xpbar_inc"+number+".png";
//return "file:///C:/Users/Rob/Dropbox/Public/xpbar/xpbar_inc"+number+".png";
}
}
public static String getUrlIcon(SkillType skillType)
{
String url = "http://dl.dropbox.com/u/18212134/xpbar/";
switch(skillType)
{
case SORCERY:
{
url+="Sorcery";
break;
}
case TAMING:
{
url+="Taming";
break;
}
case MINING:
{
url+="Mining";
break;
}
case WOODCUTTING:
{
url+="Woodcutting";
break;
}
case REPAIR:
{
url+="Repair";
break;
}
case HERBALISM:
{
url+="Herbalism";
break;
}
case ACROBATICS:
{
url+="Acrobatics";
break;
}
case SWORDS:
{
url+="Swords";
break;
}
case ARCHERY:
{
url+="Archery";
break;
}
case UNARMED:
{
url+="Unarmed";
break;
}
case EXCAVATION:
{
url+="Excavation";
break;
}
case AXES:
{
url+="Axes";
break;
}
}
url+=".png";
return url;
}
public static boolean shouldBeFilled(PlayerProfile PP)
{
return PP.getXpBarInc() < getXpInc(PP.getSkillXpLevel(PP.getLastGained()), PP.getXpToLevel(PP.getLastGained()));
}
} }

View File

@ -15,6 +15,7 @@ import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.contrib.SpoutStuff;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
@ -35,12 +36,14 @@ 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 long recentlyHurt = 0, archeryShotATS = 0, berserkATS = 0, berserkDATS = 0, gigaDrillBreakerATS = 0, gigaDrillBreakerDATS = 0, private int recentlyHurt = 0, archeryShotATS = 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;
private SkillType lastgained = null;
//MySQL STUFF //MySQL STUFF
private int lastlogin=0, userid = 0, bleedticks = 0; private int xpbarinc=0, lastlogin=0, userid = 0, bleedticks = 0;
//MAGIC STUFF //MAGIC STUFF
private int mana = 0; private int mana = 0;
@ -143,13 +146,13 @@ public class PlayerProfile
} }
else else
{ {
superBreakerDATS = Long.valueOf(cooldowns.get(1).get(0)) * 1000; superBreakerDATS = Integer.valueOf(cooldowns.get(1).get(0));
treeFellerDATS = Long.valueOf(cooldowns.get(1).get(1)) * 1000; treeFellerDATS = Integer.valueOf(cooldowns.get(1).get(1));
berserkDATS = Long.valueOf(cooldowns.get(1).get(2)) * 1000; berserkDATS = Integer.valueOf(cooldowns.get(1).get(2));
greenTerraDATS = Long.valueOf(cooldowns.get(1).get(3)) * 1000; greenTerraDATS = Integer.valueOf(cooldowns.get(1).get(3));
gigaDrillBreakerDATS = Long.valueOf(cooldowns.get(1).get(4)) * 1000; gigaDrillBreakerDATS = Integer.valueOf(cooldowns.get(1).get(4));
serratedStrikesDATS = Long.valueOf(cooldowns.get(1).get(5)) * 1000; serratedStrikesDATS = Integer.valueOf(cooldowns.get(1).get(5));
skullSplitterDATS = Long.valueOf(cooldowns.get(1).get(6)) * 1000; skullSplitterDATS = Integer.valueOf(cooldowns.get(1).get(6));
} }
HashMap<Integer, ArrayList<String>> stats = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics FROM "+LoadProperties.MySQLtablePrefix+"skills WHERE user_id = " + id); HashMap<Integer, ArrayList<String>> stats = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics FROM "+LoadProperties.MySQLtablePrefix+"skills WHERE user_id = " + id);
skills.put(SkillType.TAMING, Integer.valueOf(stats.get(1).get(0))); skills.put(SkillType.TAMING, Integer.valueOf(stats.get(1).get(0)));
@ -261,19 +264,19 @@ public class PlayerProfile
if(character.length > 25 && m.isInt(character[25])) if(character.length > 25 && m.isInt(character[25]))
skillsXp.put(SkillType.TAMING, Integer.valueOf(character[25])); skillsXp.put(SkillType.TAMING, Integer.valueOf(character[25]));
if(character.length > 26) if(character.length > 26)
berserkDATS = Long.valueOf(character[26]) * 1000; berserkDATS = Integer.valueOf(character[26]);
if(character.length > 27) if(character.length > 27)
gigaDrillBreakerDATS = Long.valueOf(character[27]) * 1000; gigaDrillBreakerDATS = Integer.valueOf(character[27]);
if(character.length > 28) if(character.length > 28)
treeFellerDATS = Long.valueOf(character[28]) * 1000; treeFellerDATS = Integer.valueOf(character[28]);
if(character.length > 29) if(character.length > 29)
greenTerraDATS = Long.valueOf(character[29]) * 1000; greenTerraDATS = Integer.valueOf(character[29]);
if(character.length > 30) if(character.length > 30)
serratedStrikesDATS = Long.valueOf(character[30]) * 1000; serratedStrikesDATS = Integer.valueOf(character[30]);
if(character.length > 31) if(character.length > 31)
skullSplitterDATS = Long.valueOf(character[31]) * 1000; skullSplitterDATS = Integer.valueOf(character[31]);
if(character.length > 32) if(character.length > 32)
superBreakerDATS = Long.valueOf(character[32]) * 1000; superBreakerDATS = Integer.valueOf(character[32]);
in.close(); in.close();
return true; return true;
} }
@ -295,13 +298,13 @@ public class PlayerProfile
mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+this.party+"' WHERE id = " +this.userid); mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+this.party+"' WHERE id = " +this.userid);
mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + this.myspawnworld + "', x = " +getX()+", y = "+getY()+", z = "+getZ()+" WHERE user_id = "+this.userid); mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + this.myspawnworld + "', x = " +getX()+", y = "+getY()+", z = "+getZ()+" WHERE user_id = "+this.userid);
mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"cooldowns SET " mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"cooldowns SET "
+" mining = "+(superBreakerDATS/1000) +" mining = "+(superBreakerDATS)
+", woodcutting = "+(treeFellerDATS/1000) +", woodcutting = "+(treeFellerDATS)
+", unarmed = "+(berserkDATS/1000) +", unarmed = "+(berserkDATS)
+", herbalism = "+(greenTerraDATS/1000) +", herbalism = "+(greenTerraDATS)
+", excavation = "+(gigaDrillBreakerDATS/1000) +", excavation = "+(gigaDrillBreakerDATS)
+", swords = " +(serratedStrikesDATS/1000) +", swords = " +(serratedStrikesDATS)
+", axes = "+(skullSplitterDATS/1000) +", axes = "+(skullSplitterDATS)
+" WHERE user_id = "+this.userid); +" WHERE user_id = "+this.userid);
mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET " mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET "
+" taming = "+skills.get(SkillType.TAMING) +" taming = "+skills.get(SkillType.TAMING)
@ -379,13 +382,13 @@ public class PlayerProfile
writer.append(skillsXp.get(SkillType.TAMING) + ":"); writer.append(skillsXp.get(SkillType.TAMING) + ":");
//Need to store the DATS of abilities nao //Need to store the DATS of abilities nao
//Berserk, Gigadrillbreaker, Tree Feller, Green Terra, Serrated Strikes, Skull Splitter, Super Breaker //Berserk, Gigadrillbreaker, Tree Feller, Green Terra, Serrated Strikes, Skull Splitter, Super Breaker
writer.append(String.valueOf(berserkDATS/1000)+":"); writer.append(String.valueOf(berserkDATS)+":");
writer.append(String.valueOf(gigaDrillBreakerDATS/1000)+":"); writer.append(String.valueOf(gigaDrillBreakerDATS)+":");
writer.append(String.valueOf(treeFellerDATS/1000)+":"); writer.append(String.valueOf(treeFellerDATS)+":");
writer.append(String.valueOf(greenTerraDATS/1000)+":"); writer.append(String.valueOf(greenTerraDATS)+":");
writer.append(String.valueOf(serratedStrikesDATS/1000)+":"); writer.append(String.valueOf(serratedStrikesDATS)+":");
writer.append(String.valueOf(skullSplitterDATS/1000)+":"); writer.append(String.valueOf(skullSplitterDATS)+":");
writer.append(String.valueOf(superBreakerDATS/1000)+":"); writer.append(String.valueOf(superBreakerDATS)+":");
writer.append("\r\n"); writer.append("\r\n");
} }
} }
@ -449,6 +452,22 @@ public class PlayerProfile
log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e); log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e);
} }
} }
public int getXpBarInc()
{
return xpbarinc;
}
public void setXpBarInc(int newvalue)
{
xpbarinc = newvalue;
}
public void setLastGained(SkillType newvalue)
{
lastgained = newvalue;
}
public SkillType getLastGained()
{
return lastgained;
}
public boolean getAdminChatMode() {return adminChatMode;} public boolean getAdminChatMode() {return adminChatMode;}
public boolean getPartyChatMode() {return partyChatMode;} public boolean getPartyChatMode() {return partyChatMode;}
@ -549,8 +568,9 @@ public class PlayerProfile
public long getMySpawnATS(){ public long getMySpawnATS(){
return mySpawnATS; return mySpawnATS;
} }
public void setMySpawnATS(long newvalue){ public void setMySpawnATS(long newvalue)
mySpawnATS = newvalue; {
mySpawnATS = (int) (newvalue/1000);
} }
public void decreaseBleedTicks() public void decreaseBleedTicks()
{ {
@ -569,13 +589,13 @@ public class PlayerProfile
* EXPLOIT PREVENTION * EXPLOIT PREVENTION
*/ */
public long getRespawnATS() {return respawnATS;} public long getRespawnATS() {return respawnATS;}
public void setRespawnATS(long newvalue) {respawnATS = newvalue;} public void setRespawnATS(long newvalue) {respawnATS = (int) (newvalue/1000);}
/* /*
* ARCHERY NERF STUFF * ARCHERY NERF STUFF
*/ */
public long getArcheryShotATS() {return archeryShotATS;} public long getArcheryShotATS() {return archeryShotATS;}
public void setArcheryShotATS(long newvalue) {archeryShotATS = newvalue;} public void setArcheryShotATS(long newvalue) {archeryShotATS = (int) (newvalue/1000);}
/* /*
* HOE PREPARATION * HOE PREPARATION
@ -590,7 +610,7 @@ public class PlayerProfile
return hoePreparationATS; return hoePreparationATS;
} }
public void setHoePreparationATS(long newvalue){ public void setHoePreparationATS(long newvalue){
hoePreparationATS = newvalue; hoePreparationATS = (int) (newvalue/1000);
} }
/* /*
@ -606,7 +626,7 @@ public class PlayerProfile
return swordsPreparationATS; return swordsPreparationATS;
} }
public void setSwordsPreparationATS(long newvalue){ public void setSwordsPreparationATS(long newvalue){
swordsPreparationATS = newvalue; swordsPreparationATS = (int) (newvalue/1000);
} }
/* /*
* SHOVEL PREPARATION * SHOVEL PREPARATION
@ -621,7 +641,7 @@ public class PlayerProfile
return shovelPreparationATS; return shovelPreparationATS;
} }
public void setShovelPreparationATS(long newvalue){ public void setShovelPreparationATS(long newvalue){
shovelPreparationATS = newvalue; shovelPreparationATS = (int) (newvalue/1000);
} }
/* /*
* FISTS PREPARATION * FISTS PREPARATION
@ -636,7 +656,7 @@ public class PlayerProfile
return fistsPreparationATS; return fistsPreparationATS;
} }
public void setFistsPreparationATS(long newvalue){ public void setFistsPreparationATS(long newvalue){
fistsPreparationATS = newvalue; fistsPreparationATS = (int) (newvalue/1000);
} }
/* /*
* AXE PREPARATION * AXE PREPARATION
@ -651,7 +671,7 @@ public class PlayerProfile
return axePreparationATS; return axePreparationATS;
} }
public void setAxePreparationATS(long newvalue){ public void setAxePreparationATS(long newvalue){
axePreparationATS = newvalue; axePreparationATS = (int) (newvalue/1000);
} }
/* /*
* PICKAXE PREPARATION * PICKAXE PREPARATION
@ -666,7 +686,7 @@ public class PlayerProfile
return pickaxePreparationATS; return pickaxePreparationATS;
} }
public void setPickaxePreparationATS(long newvalue){ public void setPickaxePreparationATS(long newvalue){
pickaxePreparationATS = newvalue; pickaxePreparationATS = (int) (newvalue/1000);
} }
/* /*
* GREEN TERRA MODE * GREEN TERRA MODE
@ -683,11 +703,11 @@ public class PlayerProfile
} }
public long getGreenTerraActivatedTimeStamp() {return greenTerraATS;} public long getGreenTerraActivatedTimeStamp() {return greenTerraATS;}
public void setGreenTerraActivatedTimeStamp(Long newvalue){ public void setGreenTerraActivatedTimeStamp(Long newvalue){
greenTerraATS = newvalue; greenTerraATS = (int) (newvalue/1000);
} }
public long getGreenTerraDeactivatedTimeStamp() {return greenTerraDATS;} public long getGreenTerraDeactivatedTimeStamp() {return greenTerraDATS;}
public void setGreenTerraDeactivatedTimeStamp(Long newvalue){ public void setGreenTerraDeactivatedTimeStamp(Long newvalue){
greenTerraDATS = newvalue; greenTerraDATS = (int) (newvalue/1000);
save(); save();
} }
/* /*
@ -705,11 +725,11 @@ public class PlayerProfile
} }
public long getBerserkActivatedTimeStamp() {return berserkATS;} public long getBerserkActivatedTimeStamp() {return berserkATS;}
public void setBerserkActivatedTimeStamp(Long newvalue){ public void setBerserkActivatedTimeStamp(Long newvalue){
berserkATS = newvalue; berserkATS = (int) (newvalue/1000);
} }
public long getBerserkDeactivatedTimeStamp() {return berserkDATS;} public long getBerserkDeactivatedTimeStamp() {return berserkDATS;}
public void setBerserkDeactivatedTimeStamp(Long newvalue){ public void setBerserkDeactivatedTimeStamp(Long newvalue){
berserkDATS = newvalue; berserkDATS = (int) (newvalue/1000);
save(); save();
} }
/* /*
@ -727,11 +747,11 @@ public class PlayerProfile
} }
public long getSkullSplitterActivatedTimeStamp() {return skullSplitterATS;} public long getSkullSplitterActivatedTimeStamp() {return skullSplitterATS;}
public void setSkullSplitterActivatedTimeStamp(Long newvalue){ public void setSkullSplitterActivatedTimeStamp(Long newvalue){
skullSplitterATS = newvalue; skullSplitterATS = (int) (newvalue/1000);
} }
public long getSkullSplitterDeactivatedTimeStamp() {return skullSplitterDATS;} public long getSkullSplitterDeactivatedTimeStamp() {return skullSplitterDATS;}
public void setSkullSplitterDeactivatedTimeStamp(Long newvalue){ public void setSkullSplitterDeactivatedTimeStamp(Long newvalue){
skullSplitterDATS = newvalue; skullSplitterDATS = (int) (newvalue/1000);
save(); save();
} }
/* /*
@ -749,11 +769,11 @@ public class PlayerProfile
} }
public long getSerratedStrikesActivatedTimeStamp() {return serratedStrikesATS;} public long getSerratedStrikesActivatedTimeStamp() {return serratedStrikesATS;}
public void setSerratedStrikesActivatedTimeStamp(Long newvalue){ public void setSerratedStrikesActivatedTimeStamp(Long newvalue){
serratedStrikesATS = newvalue; serratedStrikesATS = (int) (newvalue/1000);
} }
public long getSerratedStrikesDeactivatedTimeStamp() {return serratedStrikesDATS;} public long getSerratedStrikesDeactivatedTimeStamp() {return serratedStrikesDATS;}
public void setSerratedStrikesDeactivatedTimeStamp(Long newvalue){ public void setSerratedStrikesDeactivatedTimeStamp(Long newvalue){
serratedStrikesDATS = newvalue; serratedStrikesDATS = (int) (newvalue/1000);
save(); save();
} }
/* /*
@ -771,11 +791,11 @@ public class PlayerProfile
} }
public long getGigaDrillBreakerActivatedTimeStamp() {return gigaDrillBreakerATS;} public long getGigaDrillBreakerActivatedTimeStamp() {return gigaDrillBreakerATS;}
public void setGigaDrillBreakerActivatedTimeStamp(Long newvalue){ public void setGigaDrillBreakerActivatedTimeStamp(Long newvalue){
gigaDrillBreakerATS = newvalue; gigaDrillBreakerATS = (int) (newvalue/1000);
} }
public long getGigaDrillBreakerDeactivatedTimeStamp() {return gigaDrillBreakerDATS;} public long getGigaDrillBreakerDeactivatedTimeStamp() {return gigaDrillBreakerDATS;}
public void setGigaDrillBreakerDeactivatedTimeStamp(Long newvalue){ public void setGigaDrillBreakerDeactivatedTimeStamp(Long newvalue){
gigaDrillBreakerDATS = newvalue; gigaDrillBreakerDATS = (int) (newvalue/1000);
save(); save();
} }
/* /*
@ -793,11 +813,11 @@ public class PlayerProfile
} }
public long getTreeFellerActivatedTimeStamp() {return treeFellerATS;} public long getTreeFellerActivatedTimeStamp() {return treeFellerATS;}
public void setTreeFellerActivatedTimeStamp(Long newvalue){ public void setTreeFellerActivatedTimeStamp(Long newvalue){
treeFellerATS = newvalue; treeFellerATS = (int) (newvalue/1000);
} }
public long getTreeFellerDeactivatedTimeStamp() {return treeFellerDATS;} public long getTreeFellerDeactivatedTimeStamp() {return treeFellerDATS;}
public void setTreeFellerDeactivatedTimeStamp(Long newvalue){ public void setTreeFellerDeactivatedTimeStamp(Long newvalue){
treeFellerDATS = newvalue; treeFellerDATS = (int) (newvalue/1000);
save(); save();
} }
/* /*
@ -815,18 +835,18 @@ public class PlayerProfile
} }
public long getSuperBreakerActivatedTimeStamp() {return superBreakerATS;} public long getSuperBreakerActivatedTimeStamp() {return superBreakerATS;}
public void setSuperBreakerActivatedTimeStamp(Long newvalue){ public void setSuperBreakerActivatedTimeStamp(Long newvalue){
superBreakerATS = newvalue; superBreakerATS = (int) (newvalue/1000);
} }
public long getSuperBreakerDeactivatedTimeStamp() {return superBreakerDATS;} public long getSuperBreakerDeactivatedTimeStamp() {return superBreakerDATS;}
public void setSuperBreakerDeactivatedTimeStamp(Long newvalue){ public void setSuperBreakerDeactivatedTimeStamp(Long newvalue){
superBreakerDATS = newvalue; superBreakerDATS = (int) (newvalue/1000);
save(); save();
} }
public long getRecentlyHurt(){ public long getRecentlyHurt(){
return recentlyHurt; return recentlyHurt;
} }
public void setRecentlyHurt(long newvalue){ public void setRecentlyHurt(long newvalue){
recentlyHurt = newvalue; recentlyHurt = (int) (newvalue/1000);
} }
public void skillUp(SkillType skillType, int newvalue) public void skillUp(SkillType skillType, int newvalue)
{ {
@ -863,6 +883,14 @@ public class PlayerProfile
skillsXp.put(SkillType.SORCERY, skillsXp.get(SkillType.SORCERY)+newvalue); skillsXp.put(SkillType.SORCERY, skillsXp.get(SkillType.SORCERY)+newvalue);
} else { } else {
skillsXp.put(skillType, skillsXp.get(skillType)+newvalue); skillsXp.put(skillType, skillsXp.get(skillType)+newvalue);
SkillType prevLastGained = lastgained;
lastgained = skillType;
//In case of an xp bar switch
if(prevLastGained != skillType || prevLastGained == null)
xpbarinc = SpoutStuff.getXpInc(this.getSkillXpLevel(lastgained), this.getXpToLevel(lastgained));
} }
//save(); //save();
} }
@ -885,7 +913,7 @@ public class PlayerProfile
} else { } else {
skillsXp.put(skillType, skillsXp.get(skillType)-newvalue); skillsXp.put(skillType, skillsXp.get(skillType)-newvalue);
} }
save(); //save();
} }
public void acceptInvite() public void acceptInvite()
{ {

View File

@ -53,6 +53,7 @@ public class mcBlockListener extends BlockListener {
else if(block.getTypeId() == 17 || block.getTypeId() == 39 || block.getTypeId() == 40 || block.getTypeId() == 91 || block.getTypeId() == 86) else if(block.getTypeId() == 17 || block.getTypeId() == 39 || block.getTypeId() == 40 || block.getTypeId() == 91 || block.getTypeId() == 86)
plugin.misc.blockWatchList.add(block); plugin.misc.blockWatchList.add(block);
} }
if(block.getTypeId() == 42 && LoadProperties.anvilmessages) if(block.getTypeId() == 42 && LoadProperties.anvilmessages)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);

View File

@ -25,6 +25,7 @@ import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.contrib.SpoutStuff;
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;
@ -89,6 +90,14 @@ public class mcPlayerListener extends PlayerListener
//Discard the PlayerProfile object //Discard the PlayerProfile object
Users.removeUser(event.getPlayer()); Users.removeUser(event.getPlayer());
if(LoadProperties.spoutEnabled)
{
if(SpoutStuff.xpbars.containsKey(event.getPlayer()))
SpoutStuff.xpbars.remove(event.getPlayer());
if(SpoutStuff.xpicons.containsKey(event.getPlayer()))
SpoutStuff.xpicons.remove(event.getPlayer());
}
} }
public void onPlayerJoin(PlayerJoinEvent event) public void onPlayerJoin(PlayerJoinEvent event)
@ -120,7 +129,7 @@ public class mcPlayerListener extends PlayerListener
//Archery Nerf //Archery Nerf
if(player.getItemInHand().getTypeId() == 261 && LoadProperties.archeryFireRateLimit) if(player.getItemInHand().getTypeId() == 261 && LoadProperties.archeryFireRateLimit)
{ {
if(System.currentTimeMillis() < PP.getArcheryShotATS() + LoadProperties.archeryLimit) if(System.currentTimeMillis() < (PP.getArcheryShotATS()*1000) + LoadProperties.archeryLimit)
{ {
/* /*
if(m.hasArrows(player)) if(m.hasArrows(player))

View File

@ -0,0 +1,53 @@
package com.gmail.nossr50.listeners;
import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent;
import org.getspout.spoutapi.event.spout.SpoutListener;
import org.getspout.spoutapi.gui.GenericTexture;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.contrib.SpoutStuff;
public class mcSpoutListener extends SpoutListener
{
mcMMO plugin = null;
public mcSpoutListener(mcMMO pluginx)
{
plugin = pluginx;
}
public void onSpoutCraftEnable(SpoutCraftEnableEvent event)
{
if(event.getPlayer().isSpoutCraftEnabled())
{
GenericTexture xpbar = new GenericTexture();
GenericTexture xpicon = new GenericTexture();
xpicon.setUrl("http://dl.dropbox.com/u/18212134/xpbar/icon.png");
xpicon.setHeight(16).setWidth(32).setX(93).setY(2);
xpbar.setUrl("http://dl.dropbox.com/u/18212134/xpbar/xpbar_inc000.png");
xpbar.setX(110).setY(6).setHeight(8).setWidth(256);
SpoutStuff.xpbars.put(event.getPlayer(), xpbar);
SpoutStuff.xpicons.put(event.getPlayer(), xpicon);
event.getPlayer().getMainScreen().attachWidget(SpoutStuff.xpbars.get(event.getPlayer()));
event.getPlayer().getMainScreen().attachWidget(SpoutStuff.xpicons.get(event.getPlayer()));
event.getPlayer().getMainScreen().setDirty(true);
}
}
/*
public void onServerTick(ServerTickEvent event)
{
for(Player x : SpoutStuff.xpbars.keySet())
{
PlayerProfile PP = Users.getProfile(x);
if(PP.getLastGained() != null)
{
if(SpoutStuff.shouldBeFilled(PP))
SpoutStuff.updateXpBarFill(x);
}
}
}
*/
}

View File

@ -7,6 +7,7 @@ import com.gmail.nossr50.config.*;
import com.gmail.nossr50.listeners.mcBlockListener; import com.gmail.nossr50.listeners.mcBlockListener;
import com.gmail.nossr50.listeners.mcEntityListener; import com.gmail.nossr50.listeners.mcEntityListener;
import com.gmail.nossr50.listeners.mcPlayerListener; import com.gmail.nossr50.listeners.mcPlayerListener;
import com.gmail.nossr50.listeners.mcSpoutListener;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
import com.gmail.nossr50.skills.*; import com.gmail.nossr50.skills.*;
@ -66,9 +67,12 @@ public class mcMMO extends JavaPlugin
File file = new File(maindirectory + File.separator + "config.yml"); File file = new File(maindirectory + File.separator + "config.yml");
static File versionFile = new File(maindirectory + File.separator + "VERSION"); static File versionFile = new File(maindirectory + File.separator + "VERSION");
public static final Logger log = Logger.getLogger("Minecraft"); public static final Logger log = Logger.getLogger("Minecraft");
private final mcPlayerListener playerListener = new mcPlayerListener(this); private final mcPlayerListener playerListener = new mcPlayerListener(this);
private final mcBlockListener blockListener = new mcBlockListener(this); private final mcBlockListener blockListener = new mcBlockListener(this);
private final mcEntityListener entityListener = new mcEntityListener(this); private final mcEntityListener entityListener = new mcEntityListener(this);
private final mcSpoutListener spoutListener = new mcSpoutListener(this);
public boolean xpevent = false; public boolean xpevent = false;
int oldrate = 1; int oldrate = 1;
public static mcPermissions permissionHandler = new mcPermissions(); public static mcPermissions permissionHandler = new mcPermissions();
@ -80,7 +84,6 @@ public class mcMMO extends JavaPlugin
public static Database database = null; public static Database database = null;
public Mob mob = new Mob(); public Mob mob = new Mob();
public Misc misc = new Misc(this); public Misc misc = new Misc(this);
public Sorcery sorcery = new Sorcery(this);
//Config file stuff //Config file stuff
LoadProperties config = new LoadProperties(); LoadProperties config = new LoadProperties();
@ -145,6 +148,12 @@ public class mcMMO extends JavaPlugin
pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this); pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this);
pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this); pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this);
pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this); pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this);
//Spout Stuff
if(LoadProperties.spoutEnabled)
{
pm.registerEvent(Event.Type.CUSTOM_EVENT, spoutListener, Priority.Normal, this);
}
PluginDescriptionFile pdfFile = this.getDescription(); PluginDescriptionFile pdfFile = this.getDescription();
mcPermissions.initialize(getServer()); mcPermissions.initialize(getServer());

View File

@ -61,45 +61,46 @@ public class Skills {
public static void watchCooldowns(Player player){ public static void watchCooldowns(Player player){
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(!PP.getGreenTerraInformed() && System.currentTimeMillis() - PP.getGreenTerraDeactivatedTimeStamp() >= (LoadProperties.greenTerraCooldown * 1000)){ if(!PP.getGreenTerraInformed() && System.currentTimeMillis() - (PP.getGreenTerraDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){
PP.setGreenTerraInformed(true); PP.setGreenTerraInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourGreenTerra")); player.sendMessage(mcLocale.getString("Skills.YourGreenTerra"));
} }
if(!PP.getTreeFellerInformed() && System.currentTimeMillis() - PP.getTreeFellerDeactivatedTimeStamp() >= (LoadProperties.greenTerraCooldown * 1000)){ if(!PP.getTreeFellerInformed() && System.currentTimeMillis() - (PP.getTreeFellerDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){
PP.setTreeFellerInformed(true); PP.setTreeFellerInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourTreeFeller")); player.sendMessage(mcLocale.getString("Skills.YourTreeFeller"));
} }
if(!PP.getSuperBreakerInformed() && System.currentTimeMillis() - PP.getSuperBreakerDeactivatedTimeStamp() >= (LoadProperties.superBreakerCooldown * 1000)){ if(!PP.getSuperBreakerInformed() && System.currentTimeMillis() - (PP.getSuperBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.superBreakerCooldown * 1000)){
PP.setSuperBreakerInformed(true); PP.setSuperBreakerInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourSuperBreaker")); player.sendMessage(mcLocale.getString("Skills.YourSuperBreaker"));
} }
if(!PP.getSerratedStrikesInformed() && System.currentTimeMillis() - PP.getSerratedStrikesDeactivatedTimeStamp() >= (LoadProperties.serratedStrikeCooldown * 1000)){ if(!PP.getSerratedStrikesInformed() && System.currentTimeMillis() - (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) >= (LoadProperties.serratedStrikeCooldown * 1000)){
PP.setSerratedStrikesInformed(true); PP.setSerratedStrikesInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourSerratedStrikes")); player.sendMessage(mcLocale.getString("Skills.YourSerratedStrikes"));
} }
if(!PP.getBerserkInformed() && System.currentTimeMillis() - PP.getBerserkDeactivatedTimeStamp() >= (LoadProperties.berserkCooldown * 1000)){ if(!PP.getBerserkInformed() && System.currentTimeMillis() - (PP.getBerserkDeactivatedTimeStamp()*1000) >= (LoadProperties.berserkCooldown * 1000)){
PP.setBerserkInformed(true); PP.setBerserkInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourBerserk")); player.sendMessage(mcLocale.getString("Skills.YourBerserk"));
} }
if(!PP.getSkullSplitterInformed() && System.currentTimeMillis() - PP.getSkullSplitterDeactivatedTimeStamp() >= (LoadProperties.skullSplitterCooldown * 1000)){ if(!PP.getSkullSplitterInformed() && System.currentTimeMillis() - (PP.getSkullSplitterDeactivatedTimeStamp()*1000) >= (LoadProperties.skullSplitterCooldown * 1000)){
PP.setSkullSplitterInformed(true); PP.setSkullSplitterInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourSkullSplitter")); player.sendMessage(mcLocale.getString("Skills.YourSkullSplitter"));
} }
if(!PP.getGigaDrillBreakerInformed() && System.currentTimeMillis() - PP.getGigaDrillBreakerDeactivatedTimeStamp() >= (LoadProperties.gigaDrillBreakerCooldown * 1000)){ if(!PP.getGigaDrillBreakerInformed() && System.currentTimeMillis() - (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.gigaDrillBreakerCooldown * 1000)){
PP.setGigaDrillBreakerInformed(true); PP.setGigaDrillBreakerInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourGigaDrillBreaker")); player.sendMessage(mcLocale.getString("Skills.YourGigaDrillBreaker"));
} }
} }
public static void hoeReadinessCheck(Player player){ public static void hoeReadinessCheck(Player player)
{
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(mcPermissions.getInstance().herbalismAbility(player) && m.isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){ if(mcPermissions.getInstance().herbalismAbility(player) && m.isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){
if(!PP.getGreenTerraMode() && !cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)){ if(!PP.getGreenTerraMode() && !cooldownOver(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)){
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)+"s)");
return; return;
} }
player.sendMessage(mcLocale.getString("Skills.ReadyHoe")); player.sendMessage(mcLocale.getString("Skills.ReadyHoe"));
PP.setHoePreparationATS(System.currentTimeMillis()); PP.setHoePreparationATS(System.currentTimeMillis()/1000);
PP.setHoePreparationMode(true); PP.setHoePreparationMode(true);
} }
} }
@ -107,27 +108,27 @@ public class Skills {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(PP != null) if(PP != null)
{ {
if(PP.getHoePreparationMode() && System.currentTimeMillis() - PP.getHoePreparationATS() >= 4000){ if(PP.getHoePreparationMode() && System.currentTimeMillis() - (PP.getHoePreparationATS()*1000) >= 4000){
PP.setHoePreparationMode(false); PP.setHoePreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerHoe")); player.sendMessage(mcLocale.getString("Skills.LowerHoe"));
} }
if(PP.getAxePreparationMode() && System.currentTimeMillis() - PP.getAxePreparationATS() >= 4000){ if(PP.getAxePreparationMode() && System.currentTimeMillis() - (PP.getAxePreparationATS()*1000) >= 4000){
PP.setAxePreparationMode(false); PP.setAxePreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerAxe")); player.sendMessage(mcLocale.getString("Skills.LowerAxe"));
} }
if(PP.getPickaxePreparationMode() && System.currentTimeMillis() - PP.getPickaxePreparationATS() >= 4000){ if(PP.getPickaxePreparationMode() && System.currentTimeMillis() - (PP.getPickaxePreparationATS()*1000) >= 4000){
PP.setPickaxePreparationMode(false); PP.setPickaxePreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerPickAxe")); player.sendMessage(mcLocale.getString("Skills.LowerPickAxe"));
} }
if(PP.getSwordsPreparationMode() && System.currentTimeMillis() - PP.getSwordsPreparationATS() >= 4000){ if(PP.getSwordsPreparationMode() && System.currentTimeMillis() - (PP.getSwordsPreparationATS()*1000) >= 4000){
PP.setSwordsPreparationMode(false); PP.setSwordsPreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerSword")); player.sendMessage(mcLocale.getString("Skills.LowerSword"));
} }
if(PP.getFistsPreparationMode() && System.currentTimeMillis() - PP.getFistsPreparationATS() >= 4000){ if(PP.getFistsPreparationMode() && System.currentTimeMillis() - (PP.getFistsPreparationATS()*1000) >= 4000){
PP.setFistsPreparationMode(false); PP.setFistsPreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerFists")); player.sendMessage(mcLocale.getString("Skills.LowerFists"));
} }
if(PP.getShovelPreparationMode() && System.currentTimeMillis() - PP.getShovelPreparationATS() >= 4000){ if(PP.getShovelPreparationMode() && System.currentTimeMillis() - (PP.getShovelPreparationATS()*1000) >= 4000){
PP.setShovelPreparationMode(false); PP.setShovelPreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerShovel")); player.sendMessage(mcLocale.getString("Skills.LowerShovel"));
} }
@ -136,7 +137,7 @@ public class Skills {
* HERBALISM ABILITY * HERBALISM ABILITY
*/ */
if(mcPermissions.getInstance().herbalismAbility(player)){ if(mcPermissions.getInstance().herbalismAbility(player)){
if(PP.getGreenTerraMode() && PP.getGreenTerraDeactivatedTimeStamp() <= System.currentTimeMillis()){ if(PP.getGreenTerraMode() && (PP.getGreenTerraDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setGreenTerraMode(false); PP.setGreenTerraMode(false);
PP.setGreenTerraInformed(false); PP.setGreenTerraInformed(false);
player.sendMessage(mcLocale.getString("Skills.GreenTerraOff")); player.sendMessage(mcLocale.getString("Skills.GreenTerraOff"));
@ -146,7 +147,7 @@ public class Skills {
* AXES ABILITY * AXES ABILITY
*/ */
if(mcPermissions.getInstance().axesAbility(player)){ if(mcPermissions.getInstance().axesAbility(player)){
if(PP.getSkullSplitterMode() && PP.getSkullSplitterDeactivatedTimeStamp() <= System.currentTimeMillis()){ if(PP.getSkullSplitterMode() && (PP.getSkullSplitterDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setSkullSplitterMode(false); PP.setSkullSplitterMode(false);
PP.setSkullSplitterInformed(false); PP.setSkullSplitterInformed(false);
player.sendMessage(mcLocale.getString("Skills.SkullSplitterOff")); player.sendMessage(mcLocale.getString("Skills.SkullSplitterOff"));
@ -156,7 +157,7 @@ public class Skills {
* WOODCUTTING ABILITY * WOODCUTTING ABILITY
*/ */
if(mcPermissions.getInstance().woodCuttingAbility(player)){ if(mcPermissions.getInstance().woodCuttingAbility(player)){
if(PP.getTreeFellerMode() && PP.getTreeFellerDeactivatedTimeStamp() <= System.currentTimeMillis()){ if(PP.getTreeFellerMode() && (PP.getTreeFellerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setTreeFellerMode(false); PP.setTreeFellerMode(false);
PP.setTreeFellerInformed(false); PP.setTreeFellerInformed(false);
player.sendMessage(mcLocale.getString("Skills.TreeFellerOff")); player.sendMessage(mcLocale.getString("Skills.TreeFellerOff"));
@ -166,7 +167,7 @@ public class Skills {
* MINING ABILITY * MINING ABILITY
*/ */
if(mcPermissions.getInstance().miningAbility(player)){ if(mcPermissions.getInstance().miningAbility(player)){
if(PP.getSuperBreakerMode() && PP.getSuperBreakerDeactivatedTimeStamp() <= System.currentTimeMillis()){ if(PP.getSuperBreakerMode() && (PP.getSuperBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setSuperBreakerMode(false); PP.setSuperBreakerMode(false);
PP.setSuperBreakerInformed(false); PP.setSuperBreakerInformed(false);
player.sendMessage(mcLocale.getString("Skills.SuperBreakerOff")); player.sendMessage(mcLocale.getString("Skills.SuperBreakerOff"));
@ -176,7 +177,7 @@ public class Skills {
* EXCAVATION ABILITY * EXCAVATION ABILITY
*/ */
if(mcPermissions.getInstance().excavationAbility(player)){ if(mcPermissions.getInstance().excavationAbility(player)){
if(PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerDeactivatedTimeStamp() <= System.currentTimeMillis()){ if(PP.getGigaDrillBreakerMode() && (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setGigaDrillBreakerMode(false); PP.setGigaDrillBreakerMode(false);
PP.setGigaDrillBreakerInformed(false); PP.setGigaDrillBreakerInformed(false);
player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOff")); player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOff"));
@ -186,7 +187,7 @@ public class Skills {
* SWORDS ABILITY * SWORDS ABILITY
*/ */
if(mcPermissions.getInstance().swordsAbility(player)){ if(mcPermissions.getInstance().swordsAbility(player)){
if(PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() <= System.currentTimeMillis()){ if(PP.getSerratedStrikesMode() && (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setSerratedStrikesMode(false); PP.setSerratedStrikesMode(false);
PP.setSerratedStrikesInformed(false); PP.setSerratedStrikesInformed(false);
player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOff")); player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOff"));
@ -196,7 +197,7 @@ public class Skills {
* UNARMED ABILITY * UNARMED ABILITY
*/ */
if(mcPermissions.getInstance().unarmedAbility(player)){ if(mcPermissions.getInstance().unarmedAbility(player)){
if(PP.getBerserkMode() && PP.getBerserkDeactivatedTimeStamp() <= System.currentTimeMillis()){ if(PP.getBerserkMode() && (PP.getBerserkDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setBerserkMode(false); PP.setBerserkMode(false);
PP.setBerserkInformed(false); PP.setBerserkInformed(false);
player.sendMessage(mcLocale.getString("Skills.BerserkOff")); player.sendMessage(mcLocale.getString("Skills.BerserkOff"));
@ -213,10 +214,10 @@ public class Skills {
return; return;
if(mcPermissions.getInstance().miningAbility(player) && m.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode()) if(mcPermissions.getInstance().miningAbility(player) && m.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode())
{ {
if(!PP.getSuperBreakerMode() && !cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)) if(!PP.getSuperBreakerMode() && !cooldownOver(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown)+"s)");
return; return;
} }
player.sendMessage(mcLocale.getString("Skills.ReadyPickAxe")); player.sendMessage(mcLocale.getString("Skills.ReadyPickAxe"));
@ -225,10 +226,10 @@ public class Skills {
} }
if(mcPermissions.getInstance().excavationAbility(player) && m.isShovel(player.getItemInHand()) && !PP.getShovelPreparationMode()) if(mcPermissions.getInstance().excavationAbility(player) && m.isShovel(player.getItemInHand()) && !PP.getShovelPreparationMode())
{ {
if(!PP.getGigaDrillBreakerMode() && !cooldownOver(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), LoadProperties.gigaDrillBreakerCooldown)) if(!PP.getGigaDrillBreakerMode() && !cooldownOver(player, (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000), LoadProperties.gigaDrillBreakerCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), LoadProperties.gigaDrillBreakerCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000), LoadProperties.gigaDrillBreakerCooldown)+"s)");
return; return;
} }
player.sendMessage(mcLocale.getString("Skills.ReadyShovel")); player.sendMessage(mcLocale.getString("Skills.ReadyShovel"));
@ -237,10 +238,10 @@ public class Skills {
} }
if(mcPermissions.getInstance().swordsAbility(player) && m.isSwords(player.getItemInHand()) && !PP.getSwordsPreparationMode()) if(mcPermissions.getInstance().swordsAbility(player) && m.isSwords(player.getItemInHand()) && !PP.getSwordsPreparationMode())
{ {
if(!PP.getSerratedStrikesMode() && !cooldownOver(player, PP.getSerratedStrikesDeactivatedTimeStamp(), LoadProperties.serratedStrikeCooldown)) if(!PP.getSerratedStrikesMode() && !cooldownOver(player, (PP.getSerratedStrikesDeactivatedTimeStamp()*1000), LoadProperties.serratedStrikeCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSerratedStrikesDeactivatedTimeStamp(), LoadProperties.serratedStrikeCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSerratedStrikesDeactivatedTimeStamp()*1000), LoadProperties.serratedStrikeCooldown)+"s)");
return; return;
} }
player.sendMessage(mcLocale.getString("Skills.ReadySword")); player.sendMessage(mcLocale.getString("Skills.ReadySword"));
@ -249,10 +250,10 @@ public class Skills {
} }
if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !PP.getFistsPreparationMode()) if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !PP.getFistsPreparationMode())
{ {
if(!PP.getBerserkMode() && !cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)) if(!PP.getBerserkMode() && !cooldownOver(player, (PP.getBerserkDeactivatedTimeStamp()*1000), LoadProperties.berserkCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getBerserkDeactivatedTimeStamp()*1000), LoadProperties.berserkCooldown)+"s)");
return; return;
} }
player.sendMessage(mcLocale.getString("Skills.ReadyFists")); player.sendMessage(mcLocale.getString("Skills.ReadyFists"));
@ -311,10 +312,11 @@ public class Skills {
if(LoadProperties.spoutEnabled && player instanceof SpoutPlayer) if(LoadProperties.spoutEnabled && player instanceof SpoutPlayer)
{ {
SpoutPlayer sPlayer = SpoutManager.getPlayerFromId(player.getEntityId()); SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
if(sPlayer.isSpoutCraftEnabled()) if(sPlayer.isSpoutCraftEnabled())
{ {
SpoutStuff.levelUpNotification(skillType, sPlayer); SpoutStuff.levelUpNotification(skillType, sPlayer);
PP.setXpBarInc(0);
} else } else
{ {
player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)}));
@ -322,7 +324,14 @@ public class Skills {
} }
else else
player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)}));
}
if(LoadProperties.spoutEnabled)
{
SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
if(sPlayer.isSpoutCraftEnabled())
{
SpoutStuff.updateXpBar(sPlayer);
}
} }
} }

View File

@ -1,115 +0,0 @@
package com.gmail.nossr50.skills;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import com.gmail.nossr50.Users;
import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale;
public class Sorcery
{
mcMMO plugin = null;
public Sorcery(mcMMO pluginx)
{
plugin = pluginx;
}
public Block getSpellTargetBlock(Player player)
{
List<Block> blocks = player.getLineOfSight(null, 25);
for(Block x : blocks)
{
Material y = Material.AIR;
if(x.getType() != y)
return x;
}
return null;
}
public void informSelected(String spellname, int cost, Player player)
{
player.sendMessage(mcLocale.getString("Sorcery.SpellSelected", new Object[] {spellname, cost}));
}
public void informSpell(String spellname, Player player)
{
PlayerProfile PP = Users.getProfile(player);
player.sendMessage(mcLocale.getString("Sorcery.HasCast") +" "+spellname+" "+ mcLocale.getString("Sorcery.Current_Mana")+ChatColor.YELLOW+"("+ChatColor.GRAY+PP.getCurrentMana()+ChatColor.YELLOW+"/"+ChatColor.GREEN+PP.getMaxMana()+ChatColor.YELLOW+")");
}
public void shoutSpell(String spellname, Player player)
{
for(Player x : plugin.getServer().getOnlinePlayers())
{
if(x == player)
continue;
if(m.getDistance(x.getLocation(), player.getLocation()) < 35)
{
x.sendMessage(ChatColor.GREEN+"-"+ChatColor.DARK_AQUA+"="+ChatColor.GOLD+spellname+ChatColor.DARK_AQUA+"="+ChatColor.GREEN+"-"
+" "+ChatColor.YELLOW+"["+ChatColor.DARK_RED+player.getName()+ChatColor.YELLOW+"]");
}
}
}
public void handleGreenDyeCycle(Player player)
{
PlayerProfile PP = Users.getProfile(player);
//The selector is used to account for permissions removing spells from this order.
//Check if player has access to curative spell
if(!hasCurativeSpellPermission(player))
PP.setDyeChanged(true);
switch(PP.getGreenDyeCycleSel())
{
case 0:
if(mcPermissions.getInstance().sorceryCurativeHealSelf(player))
{
PP.setDyeChanged(true);
PP.setGreenDyeCycleSel(1);
PP.setGreenDyeCycle(0);
informSelected(mcLocale.getString("Sorcery.Curative.Self"), LoadProperties.cure_self, player);
break;
}
else
{
PP.setGreenDyeCycleSel(1);
}
case 1:
if(mcPermissions.getInstance().sorceryCurativeHealOther(player))
{
PP.setDyeChanged(true);
PP.setGreenDyeCycleSel(0);
PP.setGreenDyeCycle(1);
informSelected(mcLocale.getString("Sorcery.Curative.Other"), LoadProperties.cure_other, player);
break;
}
else
{
PP.setGreenDyeCycleSel(0);
}
}
}
public boolean hasCurativeSpellPermission (Player player)
{
if(mcPermissions.getInstance().sorceryCurativeHealOther(player) == false
&& mcPermissions.getInstance().sorceryCurativeHealSelf(player) == false)
return false;
else
return true;
}
}

View File

@ -1,6 +1,7 @@
name: mcMMO name: mcMMO
main: com.gmail.nossr50.mcMMO main: com.gmail.nossr50.mcMMO
version: 1.0.50 version: 1.0.51 WIP
softdepend: [Spout]
commands: commands:
xprate: xprate:
description: Modify the xp rate or start an event description: Modify the xp rate or start an event