mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-03-13 05:19:45 +01:00
116 lines
3.1 KiB
Java
116 lines
3.1 KiB
Java
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;
|
|
}
|
|
|
|
}
|