Parcourir la source

Merge branch 'master' of github.com:mcMMO-Dev/mcMMO

Conflicts:
	Changelog.txt
nossr50 il y a 13 ans
Parent
commit
4e6cc5ffa0

+ 6 - 5
Changelog.txt

@@ -9,14 +9,15 @@ Key:
 
 Version 1.3.06-dev
  + Added permissions check to skill functions
- + Added API functions for obtaining offline profiles & profiles via player names
- + Changed Archery's Daze to deal 4 DMG on proc (2 Hearts)
- + Changed /addlevel command to work for offline users
+ + Added API functions for obtaining offline profiles & profiles via player names
  = Fixed mmoupdate not being useable from console
+ = Fixed bug with repairing wooden tools
  ! Changed mcremove to no longer kick players when they are removed from database
- ! Changed mcremove to work on offline users for FlatFile
+ ! Changed mcremove to work on offline users for FlatFile
  ! Changed PlayerProfile constructor to always take a boolean
- ! Changed getPlayerProfile function to work for online & offline users
+ ! Changed getPlayerProfile function to work for online & offline users
+ ! Changed Archery's Daze to deal 4 DMG on proc (2 Hearts)
+ ! Changed /addlevel command to work for offline users
 
 Version 1.3.05
  + Added Skill Shot to Archery which increases damage dealt by 10% every 50 skill levels (caps at 200%)

+ 1 - 0
src/main/java/com/gmail/nossr50/commands/mc/McabilityCommand.java

@@ -11,6 +11,7 @@ import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.locale.mcLocale;
 
 public class McabilityCommand implements CommandExecutor {
+
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         if (CommandHelper.noConsoleUsage(sender)) {

+ 45 - 36
src/main/java/com/gmail/nossr50/commands/mc/MccCommand.java

@@ -7,57 +7,66 @@ import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.mcPermissions;
+import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.locale.mcLocale;
 
+//TODO: Rework this whole thing. It's ugly.
 public class MccCommand implements CommandExecutor {
-	@Override
-	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 
-		if (!(sender instanceof Player)) {
-			sender.sendMessage("This command does not support console useage.");
-			return true;
-		}
+    @Override
+    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+        if (CommandHelper.noConsoleUsage(sender)) {
+            return true;
+        }
 
-		Player player = (Player) sender;
+        Player player = (Player) sender;
 
-		player.sendMessage(ChatColor.RED + "---[]" + ChatColor.YELLOW + "mcMMO Commands" + ChatColor.RED + "[]---"); //TODO: Needs more locale.
+        player.sendMessage(ChatColor.RED + "---[]" + ChatColor.YELLOW + "mcMMO Commands" + ChatColor.RED + "[]---"); //TODO: Needs more locale.
 
-		if (mcPermissions.getInstance().party(player)) {
-			player.sendMessage(mcLocale.getString("m.mccPartyCommands"));
-			player.sendMessage("/party " + mcLocale.getString("m.mccParty"));
-			player.sendMessage("/party q " + mcLocale.getString("m.mccPartyQ"));
+        if (mcPermissions.getInstance().party(player)) {
+            player.sendMessage(mcLocale.getString("m.mccPartyCommands"));
+            player.sendMessage("/party " + mcLocale.getString("m.mccParty"));
+            player.sendMessage("/party q " + mcLocale.getString("m.mccPartyQ"));
 
-			if (mcPermissions.getInstance().partyChat(player))
-				player.sendMessage("/p " + mcLocale.getString("m.mccPartyToggle"));
+            if (mcPermissions.getInstance().partyChat(player)) {
+                player.sendMessage("/p " + mcLocale.getString("m.mccPartyToggle"));
+            }
 
-			player.sendMessage("/invite " + mcLocale.getString("m.mccPartyInvite"));
-			player.sendMessage("/invite " + mcLocale.getString("m.mccPartyAccept"));
+            player.sendMessage("/invite " + mcLocale.getString("m.mccPartyInvite"));
+            player.sendMessage("/invite " + mcLocale.getString("m.mccPartyAccept"));
 
-			if (mcPermissions.getInstance().partyTeleport(player))
-				player.sendMessage("/ptp " + mcLocale.getString("m.mccPartyTeleport"));
-		}
-		player.sendMessage(mcLocale.getString("m.mccOtherCommands"));
-		player.sendMessage("/mcstats " + ChatColor.RED + mcLocale.getString("m.mccStats"));
-		player.sendMessage("/mctop <skillname> <page> " + ChatColor.RED + mcLocale.getString("m.mccLeaderboards"));
+            if (mcPermissions.getInstance().partyTeleport(player)) {
+                player.sendMessage("/ptp " + mcLocale.getString("m.mccPartyTeleport"));
+            }
+        }
 
-		if (mcPermissions.getInstance().mcAbility(player))
-			player.sendMessage("/mcability " + ChatColor.RED + mcLocale.getString("m.mccToggleAbility"));
+        player.sendMessage(mcLocale.getString("m.mccOtherCommands"));
+        player.sendMessage("/mcstats " + ChatColor.RED + mcLocale.getString("m.mccStats"));
+        player.sendMessage("/mctop <skillname> <page> " + ChatColor.RED + mcLocale.getString("m.mccLeaderboards"));
 
-		if (mcPermissions.getInstance().adminChat(player))
-			player.sendMessage("/a " + ChatColor.RED + mcLocale.getString("m.mccAdminToggle"));
+        if (mcPermissions.getInstance().mcAbility(player)) {
+            player.sendMessage("/mcability " + ChatColor.RED + mcLocale.getString("m.mccToggleAbility"));
+        }
 
-		if (mcPermissions.getInstance().inspect(player))
-			player.sendMessage("/inspect " + mcLocale.getString("m.mccInspect"));
+        if (mcPermissions.getInstance().adminChat(player)) {
+            player.sendMessage("/a " + ChatColor.RED + mcLocale.getString("m.mccAdminToggle"));
+        }
 
-		if (mcPermissions.getInstance().mmoedit(player))
-			player.sendMessage("/mmoedit " + mcLocale.getString("m.mccMmoedit"));
+        if (mcPermissions.getInstance().inspect(player)) {
+            player.sendMessage("/inspect " + mcLocale.getString("m.mccInspect"));
+        }
 
-		if (mcPermissions.getInstance().mcgod(player))
-			player.sendMessage("/mcgod " + ChatColor.RED + mcLocale.getString("m.mccMcGod"));
+        if (mcPermissions.getInstance().mmoedit(player)) {
+            player.sendMessage("/mmoedit " + mcLocale.getString("m.mccMmoedit"));
+        }
 
-		player.sendMessage(mcLocale.getString("m.mccSkillInfo"));
-		player.sendMessage("/mcmmo " + mcLocale.getString("m.mccModDescription"));
+        if (mcPermissions.getInstance().mcgod(player)) {
+            player.sendMessage("/mcgod " + ChatColor.RED + mcLocale.getString("m.mccMcGod"));
+        }
 
-		return true;
-	}
+        player.sendMessage(mcLocale.getString("m.mccSkillInfo"));
+        player.sendMessage("/mcmmo " + mcLocale.getString("m.mccModDescription"));
+
+        return true;
+    }
 }

+ 25 - 30
src/main/java/com/gmail/nossr50/commands/mc/McgodCommand.java

@@ -1,43 +1,38 @@
 package com.gmail.nossr50.commands.mc;
 
-import org.bukkit.ChatColor;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;
 import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.Users;
-import com.gmail.nossr50.mcPermissions;
+import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.locale.mcLocale;
 
 public class McgodCommand implements CommandExecutor {
-	@Override
-	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
-
-		if (!(sender instanceof Player)) {
-			sender.sendMessage("This command does not support console useage."); //TODO: Needs more locale.
-			return true;
-		}
-
-		Player player = (Player) sender;
-		PlayerProfile PP = Users.getProfile(player);
-
-		if (!mcPermissions.getInstance().mcgod(player)) {
-			player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
-			return true;
-		}
-
-        if (mcPermissions.getInstance().mcgod(player)) {
-			if (PP.getGodMode()) {
-				player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeDisabled"));
-				PP.toggleGodMode();
-			} else {
-				player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeEnabled"));
-				PP.toggleGodMode();
-			}
-		}
-
-		return true;
-	}
+
+    @Override
+    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+        if (CommandHelper.noConsoleUsage(sender)) {
+            return true;
+        }
+
+        if (CommandHelper.noCommandPermissions(sender, "mcmmo.tools.mcgod")) {
+            return true;
+        }
+
+        PlayerProfile PP = Users.getProfile((Player) sender);
+
+        if (PP.getGodMode()) {
+            sender.sendMessage(mcLocale.getString("mcPlayerListener.GodModeDisabled"));
+        }
+        else {
+            sender.sendMessage(mcLocale.getString("mcPlayerListener.GodModeEnabled"));
+        }
+
+        PP.toggleGodMode();
+
+        return true;
+    }
 }

+ 18 - 24
src/main/java/com/gmail/nossr50/commands/mc/McmmoCommand.java

@@ -1,10 +1,10 @@
 package com.gmail.nossr50.commands.mc;
 
 import org.bukkit.ChatColor;
+import org.bukkit.Material;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;
 import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
 import org.getspout.spoutapi.player.SpoutPlayer;
 
 import com.gmail.nossr50.config.LoadProperties;
@@ -12,32 +12,26 @@ import com.gmail.nossr50.locale.mcLocale;
 
 public class McmmoCommand implements CommandExecutor {
 
-	@Override
-	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+    @Override
+    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+        String description = mcLocale.getString("mcMMO.Description", new Object[] { "mcc" });
+        String[] mcSplit = description.split(",");
 
-		if (!(sender instanceof Player)) {
-			sender.sendMessage("This command does not support console useage."); //TODO: Needs more locale.
-			return true;
-		}
+        for (String x : mcSplit) {
+            sender.sendMessage(x);
+        }
 
-		Player player = (Player) sender;
+        if (LoadProperties.donateMessage) {
+            if (LoadProperties.spoutEnabled && sender instanceof SpoutPlayer) {
+                SpoutPlayer sPlayer = (SpoutPlayer) sender;
 
-		String description = mcLocale.getString("mcMMO.Description", new Object[] { "mcc" });
-		String[] mcSplit = description.split(",");
+                sPlayer.sendNotification(ChatColor.YELLOW + "[mcMMO]" + ChatColor.GOLD + " Donate!", ChatColor.GREEN + "nossr50@gmail.com", Material.DIAMOND);
+            }
 
-		for (String x : mcSplit) {
-			player.sendMessage(x);
-		}
+            sender.sendMessage(ChatColor.DARK_AQUA + "Donation Info:");
+            sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
+        }
 
-		if (LoadProperties.spoutEnabled && player instanceof SpoutPlayer) {
-			SpoutPlayer sPlayer = (SpoutPlayer) player;
-			if (LoadProperties.donateMessage)
-				sPlayer.sendMessage(ChatColor.YELLOW + "[mcMMO]"+ChatColor.GOLD+" Donate! Paypal "+ChatColor.GREEN+"nossr50@gmail.com"); //Where'd our notification go?
-		} else {
-			if (LoadProperties.donateMessage)
-			    player.sendMessage(ChatColor.YELLOW + "[mcMMO]"+ChatColor.GOLD+" Donate! Paypal "+ChatColor.GREEN+"nossr50@gmail.com");
-		}
-
-		return true;
-	}
+        return true;
+    }
 }

+ 5 - 5
src/main/java/com/gmail/nossr50/listeners/mcSpoutListener.java

@@ -16,11 +16,11 @@ import com.gmail.nossr50.spout.SpoutStuff;
 public class mcSpoutListener implements Listener {
     //Why do we have this here? We never use it...
     mcMMO plugin = null;
-    
+
     public mcSpoutListener(mcMMO pluginx) {
         plugin = pluginx;
     }
-    
+
     /**
      * Monitor SpoutCraftEnable events.
      *
@@ -30,13 +30,13 @@ public class mcSpoutListener implements Listener {
     public void onSpoutCraftEnable(SpoutCraftEnableEvent event) {
         SpoutPlayer sPlayer = event.getPlayer();
         PlayerProfile PPs = Users.getProfile(sPlayer);
-        
+
         //TODO: Add custom titles based on skills
         if (LoadProperties.showPowerLevel) {
-            sPlayer.setTitle(sPlayer.getName()+ "\n" + ChatColor.YELLOW + "P" + ChatColor.GOLD + "lvl" 
+            sPlayer.setTitle(sPlayer.getName()+ "\n" + ChatColor.YELLOW + "P" + ChatColor.GOLD + "lvl"
         + ChatColor.WHITE+"." + ChatColor.GREEN + String.valueOf(PPs.getPowerLevel()));
         }
-        
+
         if (sPlayer.isSpoutCraftEnabled()) {
             SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer)); //Setup Party HUD stuff
             

+ 1 - 0
src/main/java/com/gmail/nossr50/skills/Repair.java

@@ -484,5 +484,6 @@ public class Repair {
         int slot = inventory.first(Material.WOOD);
         ItemStack item = inventory.getItem(slot);
         item.setAmount(item.getAmount() - 1);
+        inventory.setItem(slot, item);
     }
 }

+ 5 - 14
src/main/java/com/gmail/nossr50/skills/Skills.java

@@ -102,21 +102,12 @@ public class Skills {
         /* Woodcutting & Axes need to be treated differently.
          * Basically the tool always needs to ready and we check to see if the cooldown is over when the user takes action
          */
-        if (skill == SkillType.WOODCUTTING || skill == SkillType.AXES) {
-            if ((mcPermissions.getInstance().treeFeller(player) || mcPermissions.getInstance().skullSplitter(player)) && 
-                    tool.inHand(inHand) && !PP.getToolPreparationMode(tool)) {
-                if (LoadProperties.enableAbilityMessages) {
-                    player.sendMessage(tool.getRaiseTool());
+        if (ability.getPermissions(player) && tool.inHand(inHand) && !PP.getToolPreparationMode(tool)) {
+            if (skill != SkillType.WOODCUTTING && skill != SkillType.AXES) {
+                if (!PP.getAbilityMode(ability) && !cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown())) {
+                    player.sendMessage(mcLocale.getString("Skills.TooTired") + ChatColor.YELLOW + " (" + calculateTimeLeft(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown()) + "s)");
+                    return;
                 }
-
-                PP.setToolPreparationATS(tool, System.currentTimeMillis());
-                PP.setToolPreparationMode(tool, true);
-            }
-        }
-        else if (ability.getPermissions(player) && tool.inHand(inHand) && !PP.getToolPreparationMode(tool)) {
-            if (!PP.getAbilityMode(ability) && !cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown())) {
-                player.sendMessage(mcLocale.getString("Skills.TooTired") + ChatColor.YELLOW + " (" + calculateTimeLeft(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown()) + "s)");
-                return;
             }
 
             if (LoadProperties.enableAbilityMessages) {

+ 1 - 1
src/main/resources/locale/locale_en_us.properties

@@ -302,7 +302,7 @@ m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELL
 Combat.BeastLore=[[GREEN]]**BEAST LORE**
 Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]])
 Combat.BeastLoreHealth=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/{1})
-mcMMO.Description=[[DARK_AQUA]]About the [[YELLOW]]mcMMO[[DARK_AQUA]] Project:,[[GOLD]]mcMMO is an [[RED]]open source[[GOLD]] RPG mod created in February 2011,[[GOLD]]by [[BLUE]]nossr50[[GOLD]]. The goal is to provide a quality RPG experience.,[[DARK_AQUA]]Tips:,[[GOLD]] - [[GREEN]]Use [[RED]]/mcc[[GREEN]] to see commands,[[GOLD]] - [[GREEN]]Type [[RED]]/SKILLNAME[[GREEN]] to see detailed skill info,[[DARK_AQUA]]Developers:,[[GOLD]] - [[GREEN]]nossr50 [[BLUE]](Project Lead),[[GOLD]] - [[GREEN]]GJ [[BLUE]](Senior Developer),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](Developer),[[DARK_AQUA]]Useful Links:,[[GOLD]] - [[GREEN]]issues.mcmmo.org[[GOLD]] Bug Reporting,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,[[GOLD]] - [[GREEN]]http://bit.ly/H6XwFb[[GOLD]] Bukkit Forum Thread,[[DARK_AQUA]]Donation Info:
+mcMMO.Description=[[DARK_AQUA]]About the [[YELLOW]]mcMMO[[DARK_AQUA]] Project:,[[GOLD]]mcMMO is an [[RED]]open source[[GOLD]] RPG mod created in February 2011,[[GOLD]]by [[BLUE]]nossr50[[GOLD]]. The goal is to provide a quality RPG experience.,[[DARK_AQUA]]Tips:,[[GOLD]] - [[GREEN]]Use [[RED]]/mcc[[GREEN]] to see commands,[[GOLD]] - [[GREEN]]Type [[RED]]/SKILLNAME[[GREEN]] to see detailed skill info,[[DARK_AQUA]]Developers:,[[GOLD]] - [[GREEN]]nossr50 [[BLUE]](Project Lead),[[GOLD]] - [[GREEN]]GJ [[BLUE]](Senior Developer),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](Developer),[[DARK_AQUA]]Useful Links:,[[GOLD]] - [[GREEN]]issues.mcmmo.org[[GOLD]] Bug Reporting,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,[[GOLD]] - [[GREEN]]http://bit.ly/H6XwFb[[GOLD]] Bukkit Forum Thread
 Party.Locked=[[RED]]Party is locked, only party leader may invite.
 Party.IsntLocked=[[GRAY]]Party is not locked
 Party.Unlocked=[[GRAY]]Party is unlocked