mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-02 00:30:07 +01:00
commit
6f95d6b60d
2
pom.xml
2
pom.xml
@ -2,7 +2,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||||
<artifactId>mcMMO</artifactId>
|
<artifactId>mcMMO</artifactId>
|
||||||
<version>1.2.08</version>
|
<version>1.2.09-dev</version>
|
||||||
<name>mcMMO</name>
|
<name>mcMMO</name>
|
||||||
<url>https://github.com/TheYeti/mcMMO</url>
|
<url>https://github.com/TheYeti/mcMMO</url>
|
||||||
<issueManagement>
|
<issueManagement>
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.gmail.nossr50;
|
package com.gmail.nossr50;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.*;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
@ -352,17 +353,42 @@ public class Combat
|
|||||||
Skills.XpCheckSkill(SkillType.ARCHERY, attacker);
|
Skills.XpCheckSkill(SkillType.ARCHERY, attacker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void dealDamage(Entity target, int dmg){
|
|
||||||
if(target instanceof Player){
|
/**
|
||||||
((Player) target).damage(dmg);
|
* Attempt to damage target for value dmg with reason CUSTOM
|
||||||
}
|
*
|
||||||
if(target instanceof Animals){
|
* @param target LivingEntity which to attempt to damage
|
||||||
((Animals) target).damage(dmg);
|
* @param dmg Amount of damage to attempt to do
|
||||||
}
|
*/
|
||||||
if(target instanceof Monster){
|
public static void dealDamage(LivingEntity target, int dmg){
|
||||||
((Monster) target).damage(dmg);
|
EntityDamageEvent ede = new EntityDamageEvent(target, EntityDamageEvent.DamageCause.CUSTOM, dmg);
|
||||||
}
|
Bukkit.getPluginManager().callEvent(ede);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attempt to damage target for value dmg with reason cause
|
||||||
|
*
|
||||||
|
* @param target LivingEntity which to attempt to damage
|
||||||
|
* @param dmg Amount of damage to attempt to do
|
||||||
|
* @param cause DamageCause to pass to damage event
|
||||||
|
*/
|
||||||
|
public static void dealDamage(LivingEntity target, int dmg, DamageCause cause) {
|
||||||
|
EntityDamageEvent ede = new EntityDamageEvent(target, cause, dmg);
|
||||||
|
Bukkit.getPluginManager().callEvent(ede);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attempt to damage target for value dmg with reason ENTITY_ATTACK with damager attacker
|
||||||
|
*
|
||||||
|
* @param target LivingEntity which to attempt to damage
|
||||||
|
* @param dmg Amount of damage to attempt to do
|
||||||
|
* @param attacker Player to pass to event as damager
|
||||||
|
*/
|
||||||
|
public static void dealDamage(LivingEntity target, int dmg, Player attacker) {
|
||||||
|
EntityDamageEvent ede = new EntityDamageByEntityEvent(attacker, target, EntityDamageEvent.DamageCause.ENTITY_ATTACK, dmg);
|
||||||
|
Bukkit.getPluginManager().callEvent(ede);
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean pvpAllowed(EntityDamageByEntityEvent event, World world)
|
public static boolean pvpAllowed(EntityDamageByEntityEvent event, World world)
|
||||||
{
|
{
|
||||||
if(!event.getEntity().getWorld().getPVP())
|
if(!event.getEntity().getWorld().getPVP())
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
package com.gmail.nossr50.events;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.SkillType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a user levels up in a skill
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class McMMOPlayerLevelUpEvent extends Event {
|
||||||
|
private Player player;
|
||||||
|
private SkillType skill;
|
||||||
|
private int levelsGained;
|
||||||
|
|
||||||
|
public McMMOPlayerLevelUpEvent(Player player, SkillType skill) {
|
||||||
|
this.player = player;
|
||||||
|
this.skill = skill;
|
||||||
|
this.levelsGained = 1; // Always 1 for now as we call in the loop where the levelups are calculated, could change later!
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Player leveling up
|
||||||
|
*/
|
||||||
|
public Player getPlayer() {
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return SkillType that is being leveled up
|
||||||
|
*/
|
||||||
|
public SkillType getSkill() {
|
||||||
|
return skill;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The number of levels gained in this event
|
||||||
|
*/
|
||||||
|
public int getLevelsGained() {
|
||||||
|
return levelsGained;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Rest of file is required boilerplate for custom events **/
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -17,6 +17,7 @@
|
|||||||
package com.gmail.nossr50.runnables;
|
package com.gmail.nossr50.runnables;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.*;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.Combat;
|
||||||
import com.gmail.nossr50.Users;
|
import com.gmail.nossr50.Users;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||||
@ -60,7 +61,7 @@ public class mcTimer implements Runnable
|
|||||||
*/
|
*/
|
||||||
if(thecount % 2 == 0 && PP.getBleedTicks() >= 1)
|
if(thecount % 2 == 0 && PP.getBleedTicks() >= 1)
|
||||||
{
|
{
|
||||||
player.damage(2);
|
Combat.dealDamage(player, 2);
|
||||||
PP.decreaseBleedTicks();
|
PP.decreaseBleedTicks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
|||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import com.gmail.nossr50.locale.mcLocale;
|
import com.gmail.nossr50.locale.mcLocale;
|
||||||
|
import com.gmail.nossr50.Combat;
|
||||||
import com.gmail.nossr50.Users;
|
import com.gmail.nossr50.Users;
|
||||||
import com.gmail.nossr50.m;
|
import com.gmail.nossr50.m;
|
||||||
import com.gmail.nossr50.mcPermissions;
|
import com.gmail.nossr50.mcPermissions;
|
||||||
@ -152,7 +153,7 @@ public class Axes {
|
|||||||
continue;
|
continue;
|
||||||
if(targets >= 1 && derp.getWorld().getPVP())
|
if(targets >= 1 && derp.getWorld().getPVP())
|
||||||
{
|
{
|
||||||
target.damage(event.getDamage() / 2);
|
Combat.dealDamage(target, event.getDamage() / 2, attacker);
|
||||||
target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!");
|
target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!");
|
||||||
targets--;
|
targets--;
|
||||||
continue;
|
continue;
|
||||||
@ -161,7 +162,7 @@ public class Axes {
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
LivingEntity target = (LivingEntity)derp;
|
LivingEntity target = (LivingEntity)derp;
|
||||||
target.damage(event.getDamage() / 2);
|
Combat.dealDamage(target, event.getDamage() / 2, attacker);
|
||||||
targets--;
|
targets--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import org.bukkit.event.player.PlayerFishEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.material.Wool;
|
import org.bukkit.material.Wool;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.Combat;
|
||||||
import com.gmail.nossr50.Users;
|
import com.gmail.nossr50.Users;
|
||||||
import com.gmail.nossr50.config.LoadProperties;
|
import com.gmail.nossr50.config.LoadProperties;
|
||||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||||
@ -671,7 +672,7 @@ public class Fishing {
|
|||||||
if(le instanceof Player)
|
if(le instanceof Player)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
le.damage(1);
|
Combat.dealDamage(le, 1, event.getPlayer());
|
||||||
World world = le.getWorld();
|
World world = le.getWorld();
|
||||||
|
|
||||||
/* Neutral Mobs */
|
/* Neutral Mobs */
|
||||||
|
@ -192,7 +192,7 @@ public class Repair {
|
|||||||
removeItem(player, rIron);
|
removeItem(player, rIron);
|
||||||
repairItem(player, enchants, enchantsLevel);
|
repairItem(player, enchants, enchantsLevel);
|
||||||
|
|
||||||
durabilityAfter = (short) (player.getItemInHand().getDurability()-getRepairAmount(is, player));
|
durabilityAfter = player.getItemInHand().getDurability();
|
||||||
dif = (short) (durabilityBefore - durabilityAfter);
|
dif = (short) (durabilityBefore - durabilityAfter);
|
||||||
if(m.isShovel(is))
|
if(m.isShovel(is))
|
||||||
dif = (short) (dif / 3);
|
dif = (short) (dif / 3);
|
||||||
@ -315,7 +315,7 @@ public class Repair {
|
|||||||
|
|
||||||
if(rank == 0)
|
if(rank == 0)
|
||||||
{
|
{
|
||||||
if(LoadProperties.mayLoseEnchants())
|
if(LoadProperties.mayLoseEnchants)
|
||||||
{
|
{
|
||||||
player.sendMessage(mcLocale.getString("Repair.LostEnchants"));
|
player.sendMessage(mcLocale.getString("Repair.LostEnchants"));
|
||||||
for(Enchantment x : enchants)
|
for(Enchantment x : enchants)
|
||||||
@ -328,7 +328,7 @@ public class Repair {
|
|||||||
|
|
||||||
boolean failure = false, downgrade = false;
|
boolean failure = false, downgrade = false;
|
||||||
|
|
||||||
if(LoadProperties.mayLoseEnchants())
|
if(LoadProperties.mayLoseEnchants)
|
||||||
{
|
{
|
||||||
for(Enchantment x : enchants)
|
for(Enchantment x : enchants)
|
||||||
{
|
{
|
||||||
@ -341,7 +341,7 @@ public class Repair {
|
|||||||
{
|
{
|
||||||
if(enchantsLvl[pos] > 1)
|
if(enchantsLvl[pos] > 1)
|
||||||
{
|
{
|
||||||
if(LoadProperties.mayDowngradeEnchants())
|
if(LoadProperties.mayDowngradeEnchants)
|
||||||
{
|
{
|
||||||
if(Math.random() * 100 <= getDowngradeChance(rank))
|
if(Math.random() * 100 <= getDowngradeChance(rank))
|
||||||
{
|
{
|
||||||
|
@ -18,6 +18,7 @@ package com.gmail.nossr50.skills;
|
|||||||
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -35,6 +36,7 @@ import com.gmail.nossr50.spout.SpoutStuff;
|
|||||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.PlayerStat;
|
import com.gmail.nossr50.datatypes.PlayerStat;
|
||||||
import com.gmail.nossr50.datatypes.SkillType;
|
import com.gmail.nossr50.datatypes.SkillType;
|
||||||
|
import com.gmail.nossr50.events.McMMOPlayerLevelUpEvent;
|
||||||
import com.gmail.nossr50.locale.mcLocale;
|
import com.gmail.nossr50.locale.mcLocale;
|
||||||
|
|
||||||
|
|
||||||
@ -326,6 +328,9 @@ public class Skills
|
|||||||
skillups++;
|
skillups++;
|
||||||
PP.removeXP(skillType, PP.getXpToLevel(skillType));
|
PP.removeXP(skillType, PP.getXpToLevel(skillType));
|
||||||
PP.skillUp(skillType, 1);
|
PP.skillUp(skillType, 1);
|
||||||
|
|
||||||
|
McMMOPlayerLevelUpEvent eventToFire = new McMMOPlayerLevelUpEvent(player, skillType);
|
||||||
|
Bukkit.getPluginManager().callEvent(eventToFire);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!LoadProperties.useMySQL)
|
if(!LoadProperties.useMySQL)
|
||||||
|
@ -151,7 +151,7 @@ public class Swords
|
|||||||
continue;
|
continue;
|
||||||
if(targets >= 1 && derp.getWorld().getPVP())
|
if(targets >= 1 && derp.getWorld().getPVP())
|
||||||
{
|
{
|
||||||
target.damage(event.getDamage() / 4);
|
Combat.dealDamage(target, event.getDamage() / 4, attacker);
|
||||||
target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!");
|
target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!");
|
||||||
Users.getProfile(target).addBleedTicks(5);
|
Users.getProfile(target).addBleedTicks(5);
|
||||||
targets--;
|
targets--;
|
||||||
@ -164,7 +164,7 @@ public class Swords
|
|||||||
pluginx.misc.addToBleedQue((LivingEntity)derp);
|
pluginx.misc.addToBleedQue((LivingEntity)derp);
|
||||||
|
|
||||||
LivingEntity target = (LivingEntity)derp;
|
LivingEntity target = (LivingEntity)derp;
|
||||||
target.damage(event.getDamage() / 4);
|
Combat.dealDamage(target, event.getDamage() / 4, attacker);
|
||||||
targets--;
|
targets--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -193,7 +193,7 @@ public class Swords
|
|||||||
{
|
{
|
||||||
if(Math.random() * 2000 <= 600)
|
if(Math.random() * 2000 <= 600)
|
||||||
{
|
{
|
||||||
Combat.dealDamage(f, event.getDamage() / 2);
|
Combat.dealDamage((LivingEntity) f, event.getDamage() / 2);
|
||||||
defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
|
defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
|
||||||
if(f instanceof Player)
|
if(f instanceof Player)
|
||||||
((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
|
((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
|
||||||
@ -201,7 +201,7 @@ public class Swords
|
|||||||
}
|
}
|
||||||
else if (Math.random() * 2000 <= PPd.getSkillLevel(SkillType.SWORDS))
|
else if (Math.random() * 2000 <= PPd.getSkillLevel(SkillType.SWORDS))
|
||||||
{
|
{
|
||||||
Combat.dealDamage(f, event.getDamage() / 2);
|
Combat.dealDamage((LivingEntity) f, event.getDamage() / 2);
|
||||||
defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
|
defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
|
||||||
if(f instanceof Player)
|
if(f instanceof Player)
|
||||||
((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
|
((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
|
||||||
@ -245,7 +245,7 @@ public class Swords
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
x.damage(2);
|
Combat.dealDamage(x, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.gmail.nossr50.skills;
|
package com.gmail.nossr50.skills;
|
||||||
|
|
||||||
import org.bukkit.craftbukkit.CraftOfflinePlayer;
|
|
||||||
import org.bukkit.entity.AnimalTamer;
|
import org.bukkit.entity.AnimalTamer;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
name: mcMMO
|
name: mcMMO
|
||||||
main: com.gmail.nossr50.mcMMO
|
main: com.gmail.nossr50.mcMMO
|
||||||
version: 1.2.08
|
version: 1.2.09-dev
|
||||||
softdepend: [Spout]
|
softdepend: [Spout]
|
||||||
author: TheYeti
|
author: TheYeti
|
||||||
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.
|
||||||
|
Loading…
Reference in New Issue
Block a user