mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-22 13:16:45 +01:00
1.1.12
This commit is contained in:
parent
470089c9b2
commit
8596e10214
@ -1,5 +1,13 @@
|
||||
Changelog:
|
||||
#Versions without changelogs probably had very small misc fixes, like tweaks to the source code
|
||||
Version 1.1.12
|
||||
mcMMO now downloads files when you join the server to provide the best experience
|
||||
mcMMO now uses a brand new Party HUD by Rycochet (from his mmoParty plugin)
|
||||
Fixed the xpbar and xpicon settings in config to work properly
|
||||
Fixed infinite HP exploit with Herbalism
|
||||
Fixed bug where herbalism would heal out of the players normal health range
|
||||
Fixed bug where entering ':' into your party name caused stat loss among other things
|
||||
|
||||
Version 1.1.11
|
||||
mcMMO now properly cancels its Async taks when disabled
|
||||
Fixed newly generated configs using 2 instead of 1 for skill multipliers
|
||||
|
@ -1167,7 +1167,6 @@ public class Commands
|
||||
if(PP.inParty() && (!Pinstance.isParty(PP.getParty()) || !Pinstance.isInParty(player, PP)))
|
||||
{
|
||||
Pinstance.addToParty(player, PP, PP.getParty(), false);
|
||||
|
||||
}
|
||||
|
||||
if(args.length == 0 && !PP.inParty())
|
||||
|
@ -106,6 +106,7 @@ public class HUDmmo
|
||||
Color green = new Color(0, 1f, 0, 1f);
|
||||
Color background = new Color((float)LoadProperties.xpbackground_r, (float)LoadProperties.xpbackground_g, (float)LoadProperties.xpbackground_b, 1f);
|
||||
Color darkbg = new Color(0.2f, 0.2f, 0.2f, 1f);
|
||||
|
||||
xpicon = new GenericTexture();
|
||||
xpbar = new GenericGradient();
|
||||
xpfill = new GenericGradient();
|
||||
@ -129,12 +130,18 @@ public class HUDmmo
|
||||
xpbg.setWidth(126).setHeight(2).setX(150).setY(11);
|
||||
xpbg.setBottomColor(background).setTopColor(background).setPriority(RenderPriority.Low).setDirty(true);
|
||||
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbar);
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpfill);
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbg);
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericTexture)xpicon);
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_bg);
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_border);
|
||||
if(LoadProperties.xpbar)
|
||||
{
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbar);
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpfill);
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbg);
|
||||
if(LoadProperties.xpicon)
|
||||
{
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericTexture)xpicon);
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_bg);
|
||||
}
|
||||
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_border);
|
||||
}
|
||||
|
||||
sPlayer.getMainScreen().setDirty(true);
|
||||
}
|
||||
@ -144,7 +151,7 @@ public class HUDmmo
|
||||
//Setup xp bar
|
||||
xpbar = new GenericTexture();
|
||||
|
||||
if(LoadProperties.xpicon)
|
||||
if(LoadProperties.xpbar && LoadProperties.xpicon)
|
||||
{
|
||||
xpicon = new GenericTexture();
|
||||
|
||||
@ -157,11 +164,13 @@ public class HUDmmo
|
||||
sPlayer.getMainScreen().attachWidget(plugin, xpicon);
|
||||
}
|
||||
|
||||
((GenericTexture)xpbar).setUrl(LoadProperties.web_url+"HUD/Standard/xpbar_inc000.png");
|
||||
xpbar.setX(LoadProperties.xpbar_x).setY(LoadProperties.xpbar_y).setHeight(8).setWidth(256);
|
||||
|
||||
sPlayer.getMainScreen().attachWidget(plugin, xpbar);
|
||||
if(LoadProperties.xpbar)
|
||||
{
|
||||
((GenericTexture)xpbar).setUrl(LoadProperties.web_url+"HUD/Standard/xpbar_inc000.png");
|
||||
xpbar.setX(LoadProperties.xpbar_x).setY(LoadProperties.xpbar_y).setHeight(8).setWidth(256);
|
||||
|
||||
sPlayer.getMainScreen().attachWidget(plugin, xpbar);
|
||||
}
|
||||
sPlayer.getMainScreen().setDirty(true);
|
||||
}
|
||||
|
||||
@ -170,7 +179,7 @@ public class HUDmmo
|
||||
//Setup xp bar
|
||||
xpbar = new GenericTexture();
|
||||
|
||||
if(LoadProperties.xpicon)
|
||||
if(LoadProperties.xpbar && LoadProperties.xpicon)
|
||||
{
|
||||
xpicon = new GenericTexture();
|
||||
|
||||
@ -183,16 +192,22 @@ public class HUDmmo
|
||||
sPlayer.getMainScreen().attachWidget(plugin, xpicon);
|
||||
}
|
||||
|
||||
((GenericTexture)xpbar).setUrl(LoadProperties.web_url+"HUD/Standard/xpbar_inc000.png");
|
||||
xpbar.setX(center_x-64).setY(LoadProperties.xpbar_y).setHeight(4).setWidth(128);
|
||||
if(LoadProperties.xpbar)
|
||||
{
|
||||
((GenericTexture)xpbar).setUrl(LoadProperties.web_url+"HUD/Standard/xpbar_inc000.png");
|
||||
xpbar.setX(center_x-64).setY(LoadProperties.xpbar_y).setHeight(4).setWidth(128);
|
||||
|
||||
sPlayer.getMainScreen().attachWidget(plugin, xpbar);
|
||||
sPlayer.getMainScreen().attachWidget(plugin, xpbar);
|
||||
}
|
||||
|
||||
sPlayer.getMainScreen().setDirty(true);
|
||||
}
|
||||
|
||||
private void updateXpBarStandard(Player player, PlayerProfile PP)
|
||||
{
|
||||
if(!LoadProperties.xpbar)
|
||||
return;
|
||||
|
||||
SkillType theType = null;
|
||||
|
||||
if(PP.getXpBarLocked())
|
||||
@ -214,6 +229,8 @@ public class HUDmmo
|
||||
|
||||
private void updateXpBarRetro(Player player, PlayerProfile PP)
|
||||
{
|
||||
if(!LoadProperties.xpbar)
|
||||
return;
|
||||
SkillType theType = null;
|
||||
|
||||
if(PP.getXpBarLocked() && PP.getSkillLock() != null)
|
||||
|
@ -72,8 +72,6 @@ public class PlayerProfile
|
||||
}
|
||||
}
|
||||
|
||||
mana = getMaxMana();
|
||||
|
||||
playername = player.getName();
|
||||
if (LoadProperties.useMySQL)
|
||||
{
|
||||
@ -548,12 +546,6 @@ public class PlayerProfile
|
||||
{
|
||||
return mana;
|
||||
}
|
||||
public int getMaxMana()
|
||||
{
|
||||
if(skills.get(SkillType.SORCERY) < 50)
|
||||
return 5;
|
||||
return skills.get(SkillType.SORCERY) / 10;
|
||||
}
|
||||
public void setDyeChanged(Boolean bool)
|
||||
{
|
||||
dyeChanged = bool;
|
||||
@ -956,9 +948,6 @@ public class PlayerProfile
|
||||
case AXES:
|
||||
xp=(int) (xp/LoadProperties.axesxpmodifier);
|
||||
break;
|
||||
case SORCERY:
|
||||
xp=(int) (xp/LoadProperties.sorceryxpmodifier);
|
||||
break;
|
||||
}
|
||||
xp=xp*LoadProperties.xpGainMultiplier;
|
||||
skillsXp.put(skillType, skillsXp.get(skillType)+xp);
|
||||
@ -981,7 +970,6 @@ 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.SORCERY, skillsXp.get(SkillType.SORCERY)-newvalue);
|
||||
} else {
|
||||
skillsXp.put(skillType, skillsXp.get(skillType)-newvalue);
|
||||
}
|
||||
@ -1013,7 +1001,6 @@ public class PlayerProfile
|
||||
skills.put(SkillType.UNARMED, newvalue);
|
||||
skills.put(SkillType.EXCAVATION, newvalue);
|
||||
skills.put(SkillType.AXES, newvalue);
|
||||
skills.put(SkillType.SORCERY, newvalue);
|
||||
|
||||
skillsXp.put(SkillType.TAMING, 0);
|
||||
skillsXp.put(SkillType.MINING, 0);
|
||||
@ -1026,7 +1013,6 @@ public class PlayerProfile
|
||||
skillsXp.put(SkillType.UNARMED, 0);
|
||||
skillsXp.put(SkillType.EXCAVATION, 0);
|
||||
skillsXp.put(SkillType.AXES, 0);
|
||||
skillsXp.put(SkillType.SORCERY, 0);
|
||||
} else {
|
||||
skills.put(skillType, newvalue);
|
||||
skillsXp.put(skillType, newvalue);
|
||||
|
@ -10,7 +10,6 @@ public enum SkillType
|
||||
HERBALISM,
|
||||
MINING,
|
||||
REPAIR,
|
||||
SORCERY,
|
||||
SWORDS,
|
||||
TAMING,
|
||||
UNARMED,
|
||||
|
@ -205,6 +205,11 @@ public class mcPlayerListener extends PlayerListener
|
||||
/*
|
||||
* HERBALISM MODIFIERS
|
||||
*/
|
||||
if(action == Action.RIGHT_CLICK_BLOCK && !m.abilityBlockCheck(event.getClickedBlock()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(mcPermissions.getInstance().herbalism(player))
|
||||
{
|
||||
Herbalism.breadCheck(player, player.getItemInHand());
|
||||
|
@ -36,6 +36,8 @@ import org.bukkit.plugin.PluginDescriptionFile;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.getspout.spoutapi.SpoutManager;
|
||||
import org.getspout.spoutapi.player.FileManager;
|
||||
|
||||
|
||||
public class mcMMO extends JavaPlugin
|
||||
@ -140,6 +142,18 @@ public class mcMMO extends JavaPlugin
|
||||
{
|
||||
SpoutStuff.setupSpoutConfigs();
|
||||
SpoutStuff.registerCustomEvent();
|
||||
|
||||
FileManager FM = SpoutManager.getFileManager();
|
||||
FM.addToPreLoginCache(this, SpoutStuff.getFiles());
|
||||
|
||||
Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this,
|
||||
new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
mmoHelper.updateAll();
|
||||
}
|
||||
}, 20, 20);
|
||||
}
|
||||
|
||||
PluginDescriptionFile pdfFile = this.getDescription();
|
||||
@ -156,15 +170,6 @@ public class mcMMO extends JavaPlugin
|
||||
System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" );
|
||||
|
||||
Bukkit.getServer().getScheduler().scheduleAsyncRepeatingTask(this, mcMMO_Timer, 0, 20);
|
||||
|
||||
Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this,
|
||||
new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
mmoHelper.updateAll();
|
||||
}
|
||||
}, 20, 20);
|
||||
}
|
||||
|
||||
public PlayerProfile getPlayerProfile(Player player)
|
||||
|
@ -143,7 +143,7 @@ public class Party
|
||||
|
||||
for(Player p : Bukkit.getServer().getOnlinePlayers())
|
||||
{
|
||||
if(p.isOnline() && player != null && p != null)
|
||||
if(p.isOnline())
|
||||
{
|
||||
if(inSameParty(player, p))
|
||||
{
|
||||
@ -214,12 +214,16 @@ public class Party
|
||||
}
|
||||
|
||||
public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite) {
|
||||
newParty = newParty.replace(":", ".");
|
||||
addToParty(player, PP, newParty, invite, null);
|
||||
}
|
||||
|
||||
|
||||
public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite, String password)
|
||||
{
|
||||
//Fix for FFS
|
||||
newParty = newParty.replace(":", ".");
|
||||
|
||||
//Don't care about passwords on invites
|
||||
if(!invite)
|
||||
{
|
||||
@ -373,8 +377,13 @@ public class Party
|
||||
}
|
||||
|
||||
public boolean isPartyLeader(Player player, String partyName) {
|
||||
if(this.partyPlayers.get(partyName).get(player.getName()) == null) return false;
|
||||
return this.partyPlayers.get(partyName).get(player.getName());
|
||||
if(this.partyPlayers.get(partyName) != null)
|
||||
{
|
||||
if(this.partyPlayers.get(partyName).get(player.getName()) == null) return false;
|
||||
return this.partyPlayers.get(partyName).get(player.getName());
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isPartyLocked(String partyName) {
|
||||
|
@ -309,66 +309,82 @@ public class Herbalism
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
int herbalism = PP.getSkillLevel(SkillType.HERBALISM);
|
||||
if(is.getTypeId() == 297)
|
||||
int heal = 0;
|
||||
if(is.getTypeId() == 297)
|
||||
{
|
||||
if(herbalism >= 50 && herbalism < 150)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 1);
|
||||
heal = 1;
|
||||
} else if (herbalism >= 150 && herbalism < 250)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 2);
|
||||
heal = 2;
|
||||
} else if (herbalism >= 250 && herbalism < 350)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 3);
|
||||
heal = 3;
|
||||
} else if (herbalism >= 350 && herbalism < 450)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 4);
|
||||
heal = 4;
|
||||
} else if (herbalism >= 450 && herbalism < 550)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 5);
|
||||
heal = 5;
|
||||
} else if (herbalism >= 550 && herbalism < 650)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 6);
|
||||
heal = 6;
|
||||
} else if (herbalism >= 650 && herbalism < 750)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 7);
|
||||
heal = 7;
|
||||
} else if (herbalism >= 750)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 8);
|
||||
heal = 8;
|
||||
}
|
||||
|
||||
if(player.getHealth()+heal > 20)
|
||||
{
|
||||
player.setHealth(20);
|
||||
}
|
||||
else
|
||||
player.setHealth(player.getHealth()+heal);
|
||||
}
|
||||
}
|
||||
public static void stewCheck(Player player, ItemStack is)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
int herbalism = PP.getSkillLevel(SkillType.HERBALISM);
|
||||
int heal = 0;
|
||||
if(is.getTypeId() == 282)
|
||||
{
|
||||
if(herbalism >= 50 && herbalism < 150)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 1);
|
||||
heal = 1;
|
||||
} else if (herbalism >= 150 && herbalism < 250)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 2);
|
||||
heal = 2;
|
||||
} else if (herbalism >= 250 && herbalism < 350)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 3);
|
||||
heal = 3;
|
||||
} else if (herbalism >= 350 && herbalism < 450)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 4);
|
||||
heal = 4;
|
||||
} else if (herbalism >= 450 && herbalism < 550)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 5);
|
||||
heal = 5;
|
||||
} else if (herbalism >= 550 && herbalism < 650)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 6);
|
||||
heal = 6;
|
||||
} else if (herbalism >= 650 && herbalism < 750)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 7);
|
||||
heal = 7;
|
||||
} else if (herbalism >= 750)
|
||||
{
|
||||
player.setHealth(player.getHealth() + 8);
|
||||
heal = 8;
|
||||
}
|
||||
|
||||
if(player.getHealth()+heal > 20)
|
||||
{
|
||||
player.setHealth(20);
|
||||
}
|
||||
else
|
||||
player.setHealth(player.getHealth()+heal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.gmail.nossr50.spout;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
@ -61,6 +62,46 @@ public class SpoutStuff
|
||||
keypress = Keyboard.KEY_M;
|
||||
}
|
||||
}
|
||||
public static ArrayList<String> getFiles()
|
||||
{
|
||||
ArrayList<String> files = new ArrayList<String>();
|
||||
int x = 0;
|
||||
|
||||
//XP BAR
|
||||
while(x < 255)
|
||||
{
|
||||
if(x < 10)
|
||||
{
|
||||
files.add(LoadProperties.web_url+"HUD/Standard/xpbar_inc00"+x+".png");
|
||||
} else if (x < 100)
|
||||
{
|
||||
files.add(LoadProperties.web_url+"HUD/Standard/xpbar_inc0"+x+".png");
|
||||
} else
|
||||
{
|
||||
files.add(LoadProperties.web_url+"HUD/Standard/xpbar_inc"+x+".png");
|
||||
}
|
||||
x++;
|
||||
}
|
||||
|
||||
//Standard XP Icons
|
||||
for(SkillType y : SkillType.values())
|
||||
{
|
||||
if(y == SkillType.ALL)
|
||||
continue;
|
||||
files.add(LoadProperties.web_url+"HUD/Standard/"+m.getCapitalized(y.toString())+".png");
|
||||
files.add(LoadProperties.web_url+"HUD/Retro/"+m.getCapitalized(y.toString())+"_r.png");
|
||||
}
|
||||
|
||||
//Blank icons
|
||||
files.add(LoadProperties.web_url+"HUD/Standard/Icon.png");
|
||||
files.add(LoadProperties.web_url+"HUD/Retro/Icon_r.png");
|
||||
//Repair SFX
|
||||
files.add(LoadProperties.web_url+"/Sound/repair.wav");
|
||||
//Level SFX
|
||||
files.add(LoadProperties.web_url+"/Sound/level.wav");
|
||||
|
||||
return files;
|
||||
}
|
||||
public static void registerCustomEvent()
|
||||
{
|
||||
Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutListener, Priority.Normal, plugin);
|
||||
@ -86,8 +127,6 @@ public class SpoutStuff
|
||||
return new Color((float)LoadProperties.mining_r, (float)LoadProperties.mining_g, (float)LoadProperties.mining_b, 1f);
|
||||
case REPAIR:
|
||||
return new Color((float)LoadProperties.repair_r, (float)LoadProperties.repair_g, (float)LoadProperties.repair_b, 1f);
|
||||
case SORCERY:
|
||||
return new Color(0.3f, 0.3f, 0.75f, 1f);
|
||||
case SWORDS:
|
||||
return new Color((float)LoadProperties.swords_r, (float)LoadProperties.swords_g, (float)LoadProperties.swords_b, 1f);
|
||||
case TAMING:
|
||||
@ -311,9 +350,6 @@ public class SpoutStuff
|
||||
Material mat = null;
|
||||
switch(skillType)
|
||||
{
|
||||
case SORCERY:
|
||||
mat = Material.PORTAL;
|
||||
break;
|
||||
case TAMING:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
|
@ -200,21 +200,19 @@ public class mmoHelper
|
||||
Widget[] bars = container.getChildren();
|
||||
for (String name : Party.getInstance().getPartyMembersByName(player).meFirst(player.getName()))
|
||||
{
|
||||
if(Bukkit.getServer().getPlayer(name).isOnline())
|
||||
GenericLivingEntity bar;
|
||||
if (index >= bars.length)
|
||||
{
|
||||
GenericLivingEntity bar;
|
||||
if (index >= bars.length) {
|
||||
container.addChild(bar = new GenericLivingEntity());
|
||||
} else {
|
||||
bar = (GenericLivingEntity)bars[index];
|
||||
}
|
||||
bar.setEntity(name, Party.getInstance().isPartyLeader(player, Users.getProfile(player).getParty()) ? ChatColor.GREEN + "@" : "");
|
||||
bar.setTargets(show_pets ? getPets(Bukkit.getServer().getPlayer(name)) : null);
|
||||
index++;
|
||||
container.addChild(bar = new GenericLivingEntity());
|
||||
} else {
|
||||
bar = (GenericLivingEntity)bars[index];
|
||||
}
|
||||
bar.setEntity(name, Party.getInstance().isPartyLeader(Bukkit.getServer().getPlayer(name), Users.getProfile(Bukkit.getServer().getPlayer(name)).getParty()) ? ChatColor.GREEN + "@" : "");
|
||||
bar.setTargets(show_pets ? getPets(Bukkit.getServer().getPlayer(name)) : null);
|
||||
index++;
|
||||
}
|
||||
while (index < bars.length) {
|
||||
container.removeChild(bars[index--]);
|
||||
container.removeChild(bars[index++]);
|
||||
}
|
||||
container.updateLayout();
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
name: mcMMO
|
||||
main: com.gmail.nossr50.mcMMO
|
||||
version: 1.1.11
|
||||
version: 1.1.12
|
||||
softdepend: [Spout]
|
||||
commands:
|
||||
mchud:
|
||||
|
Loading…
Reference in New Issue
Block a user