mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 22:56:45 +01:00
Another WIP
This commit is contained in:
parent
49b1e4ac45
commit
7114d04464
@ -1,6 +1,12 @@
|
||||
Changelog:
|
||||
#Versions without changelogs probably had very small misc fixes, like tweaks to the source code
|
||||
Version 1.1.14
|
||||
Improvements have been made with MySQL thanks to krinsdeath
|
||||
Added some experimental usage tracking, you can opt out of this in /plugins/stats/config.yml (Once its generated, may require 2 restarts)
|
||||
[1.8] Removed the bonus damage from Archery (I'll rework this skill soon)
|
||||
[1.8] Removed the food bonuses to healing Herbalism provided due to the change of eating in game mechanics
|
||||
[1.8] Swords no longer parry, no need to compete with in game mechanics
|
||||
[1.8] mcMMO no longer has an HP Regen system, no need to compete with in game mechanics
|
||||
mcMMO now transfers files between MC Server -> Client rather than Webserver -> Client (By default, you can change this..)
|
||||
Fixed a few problems with readying abilities for Woodcutting/Axes
|
||||
Changed the listener priority for OnEntityDamage from High to Monitor (Should make mcMMO compatible with Worldguards pvp regions among other things)
|
||||
@ -8,6 +14,7 @@ Added addXpOverride for modders, this will ignore skill modifiers
|
||||
Added an option for Excavation to require use of a shovel, on by default
|
||||
The option to change the weburl of mcMMO Images/Sounds has been removed, if you want to customize mcMMO images/sounds you can open mcMMO.jar and replace them there
|
||||
Made party/admin chat modes more compatible with chat plugins (vChat)
|
||||
Portuguese Brazil locale added (Code: pt_br)
|
||||
|
||||
Version 1.1.13
|
||||
Pets are removed from party bars
|
||||
|
@ -227,8 +227,6 @@ public class Combat
|
||||
*/
|
||||
if(event instanceof EntityDamageByEntityEvent && event.getEntity() instanceof Player)
|
||||
{
|
||||
Player defender = (Player)event.getEntity();
|
||||
Swords.parryCheck((EntityDamageByEntityEvent) event, defender);
|
||||
Swords.counterAttackChecks((EntityDamageByEntityEvent)event);
|
||||
Acrobatics.dodgeChecks((EntityDamageByEntityEvent)event);
|
||||
}
|
||||
@ -312,19 +310,6 @@ public class Combat
|
||||
if(mcPermissions.getInstance().archery(attacker))
|
||||
{
|
||||
Archery.trackArrows(pluginx, x, event, attacker);
|
||||
/*
|
||||
* DAMAGE MODIFIER
|
||||
*/
|
||||
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 50 && PPa.getSkillLevel(SkillType.ARCHERY) < 250)
|
||||
event.setDamage(event.getDamage()+1);
|
||||
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 250 && PPa.getSkillLevel(SkillType.ARCHERY) < 575)
|
||||
event.setDamage(event.getDamage()+2);
|
||||
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 575 && PPa.getSkillLevel(SkillType.ARCHERY) < 725)
|
||||
event.setDamage(event.getDamage()+3);
|
||||
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 725 && PPa.getSkillLevel(SkillType.ARCHERY) < 1000)
|
||||
event.setDamage(event.getDamage()+4);
|
||||
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000)
|
||||
event.setDamage(event.getDamage()+5);
|
||||
|
||||
/*
|
||||
* IGNITION
|
||||
|
@ -132,17 +132,6 @@ public class Commands
|
||||
player.sendMessage(mcLocale.getString("m.WoodCuttingTreeFellerLength", new Object[] {ticks}));
|
||||
}
|
||||
else if(label.equalsIgnoreCase("archery") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillArchery").toLowerCase())){
|
||||
Integer rank = 0;
|
||||
if(PP.getSkillLevel(SkillType.ARCHERY) >= 50)
|
||||
rank++;
|
||||
if(PP.getSkillLevel(SkillType.ARCHERY) >= 250)
|
||||
rank++;
|
||||
if(PP.getSkillLevel(SkillType.ARCHERY) >= 575)
|
||||
rank++;
|
||||
if(PP.getSkillLevel(SkillType.ARCHERY) >= 725)
|
||||
rank++;
|
||||
if(PP.getSkillLevel(SkillType.ARCHERY) >= 1000)
|
||||
rank++;
|
||||
float skillvalue = (float)PP.getSkillLevel(SkillType.ARCHERY);
|
||||
String percentage = String.valueOf((skillvalue / 1000) * 100);
|
||||
|
||||
@ -171,13 +160,11 @@ public class Commands
|
||||
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery1_0"), mcLocale.getString("m.EffectsArchery1_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery2_0"), mcLocale.getString("m.EffectsArchery2_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery3_0"), mcLocale.getString("m.EffectsArchery3_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery4_0"), mcLocale.getString("m.EffectsArchery4_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
|
||||
player.sendMessage(mcLocale.getString("m.ArcheryDazeChance", new Object[] {percentagedaze}));
|
||||
player.sendMessage(mcLocale.getString("m.ArcheryRetrieveChance", new Object[] {percentage}));
|
||||
player.sendMessage(mcLocale.getString("m.ArcheryIgnitionLength", new Object[] {(ignition / 20)}));
|
||||
player.sendMessage(mcLocale.getString("m.ArcheryDamagePlus", new Object[] {rank}));
|
||||
player.sendMessage(mcLocale.getString("m.ArcheryIgnitionLength", new Object[] {(ignition / 20)}));
|
||||
}
|
||||
else if(label.equalsIgnoreCase("axes") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillAxes"))){
|
||||
String percentage;
|
||||
@ -213,7 +200,7 @@ public class Commands
|
||||
}
|
||||
else if(label.equalsIgnoreCase("swords") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillSwords").toLowerCase())){
|
||||
int bleedrank = 2;
|
||||
String percentage, parrypercentage = null, counterattackpercentage;
|
||||
String percentage, counterattackpercentage;
|
||||
float skillvalue = (float)PP.getSkillLevel(SkillType.SWORDS);
|
||||
if(PP.getSkillLevel(SkillType.SWORDS) < 750){
|
||||
percentage = String.valueOf((skillvalue / 1000) * 100);
|
||||
@ -223,12 +210,6 @@ public class Commands
|
||||
if(skillvalue >= 750)
|
||||
bleedrank+=1;
|
||||
|
||||
if(PP.getSkillLevel(SkillType.SWORDS) <= 900){
|
||||
parrypercentage = String.valueOf((skillvalue / 3000) * 100);
|
||||
} else {
|
||||
parrypercentage = "30";
|
||||
}
|
||||
|
||||
if(PP.getSkillLevel(SkillType.SWORDS) <= 600){
|
||||
counterattackpercentage = String.valueOf((skillvalue / 2000) * 100);
|
||||
} else {
|
||||
@ -250,14 +231,12 @@ public class Commands
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords1_0"), mcLocale.getString("m.EffectsSwords1_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords2_0"), mcLocale.getString("m.EffectsSwords2_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords3_0"), mcLocale.getString("m.EffectsSwords3_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords4_0"), mcLocale.getString("m.EffectsSwords4_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords5_0"), mcLocale.getString("m.EffectsSwords5_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
|
||||
player.sendMessage(mcLocale.getString("m.SwordsCounterAttChance", new Object[] {counterattackpercentage}));
|
||||
player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] {bleedrank}));
|
||||
player.sendMessage(mcLocale.getString("m.SwordsTickNote"));
|
||||
player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] {percentage}));
|
||||
player.sendMessage(mcLocale.getString("m.SwordsParryChance", new Object[] {parrypercentage}));
|
||||
player.sendMessage(mcLocale.getString("m.SwordsSSLength", new Object[] {ticks}));
|
||||
|
||||
}
|
||||
@ -369,23 +348,6 @@ public class Commands
|
||||
player.sendMessage(mcLocale.getString("m.UnarmedBerserkLength", new Object[] {ticks}));
|
||||
}
|
||||
else if(label.equalsIgnoreCase("herbalism") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillHerbalism").toLowerCase())){
|
||||
int rank = 0;
|
||||
if(PP.getSkillLevel(SkillType.HERBALISM) >= 50)
|
||||
rank++;
|
||||
if (PP.getSkillLevel(SkillType.HERBALISM) >= 150)
|
||||
rank++;
|
||||
if (PP.getSkillLevel(SkillType.HERBALISM) >= 250)
|
||||
rank++;
|
||||
if (PP.getSkillLevel(SkillType.HERBALISM) >= 350)
|
||||
rank++;
|
||||
if (PP.getSkillLevel(SkillType.HERBALISM) >= 450)
|
||||
rank++;
|
||||
if (PP.getSkillLevel(SkillType.HERBALISM) >= 550)
|
||||
rank++;
|
||||
if (PP.getSkillLevel(SkillType.HERBALISM) >= 650)
|
||||
rank++;
|
||||
if (PP.getSkillLevel(SkillType.HERBALISM) >= 750)
|
||||
rank++;
|
||||
int bonus = 0;
|
||||
if(PP.getSkillLevel(SkillType.HERBALISM) >= 200)
|
||||
bonus++;
|
||||
@ -412,14 +374,12 @@ public class Commands
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism1_0"), mcLocale.getString("m.EffectsHerbalism1_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism2_0"), mcLocale.getString("m.EffectsHerbalism2_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism3_0"), mcLocale.getString("m.EffectsHerbalism3_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism4_0"), mcLocale.getString("m.EffectsHerbalism4_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism5_0"), mcLocale.getString("m.EffectsHerbalism5_1")}));
|
||||
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
|
||||
player.sendMessage(mcLocale.getString("m.HerbalismGreenTerraLength", new Object[] {ticks}));
|
||||
player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbChance", new Object[] {gpercentage}));
|
||||
player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbStage", new Object[] {bonus}));
|
||||
player.sendMessage(mcLocale.getString("m.HerbalismDoubleDropChance", new Object[] {percentage}));
|
||||
player.sendMessage(mcLocale.getString("m.HerbalismFoodPlus", new Object[] {rank}));
|
||||
player.sendMessage(mcLocale.getString("m.HerbalismDoubleDropChance", new Object[] {percentage}));
|
||||
}
|
||||
|
||||
else if(label.equalsIgnoreCase("excavation") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillExcavation").toLowerCase()))
|
||||
|
@ -1,76 +0,0 @@
|
||||
package com.gmail.nossr50.datatypes;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.bukkit.entity.*;
|
||||
|
||||
public class Mob
|
||||
{
|
||||
public HashMap<Integer, Short> mobDiff = new HashMap<Integer, Short>();
|
||||
public HashMap<Integer, Boolean> isAggressive = new HashMap<Integer, Boolean>();
|
||||
|
||||
public void assignDifficulty(Entity entity)
|
||||
{
|
||||
short x = 0;
|
||||
|
||||
if(entity.getLocation().getY() >= 45)
|
||||
{
|
||||
//LEVEL 2
|
||||
if(Math.random() * 100 > 50)
|
||||
{
|
||||
x = 0;
|
||||
}
|
||||
//LEVEL 3
|
||||
else
|
||||
{
|
||||
x = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
double y = Math.random() * 100;
|
||||
//HIGH CHANCE FOR 5's
|
||||
if(entity.getLocation().getY() < 20)
|
||||
{
|
||||
//ASSIGN INTO THE 5 RANKS
|
||||
if(y >= 0 && y < 50)
|
||||
x = 0;
|
||||
if(y >= 50 && y < 80)
|
||||
x = 1;
|
||||
if(y >= 80 && y < 95)
|
||||
x = 2;
|
||||
if(y >= 95 && y < 98)
|
||||
x = 3;
|
||||
if(y >= 98 && y <= 100)
|
||||
x = 4;
|
||||
}
|
||||
//HIGH CHANCE FOR 4's
|
||||
else
|
||||
{
|
||||
//ASSIGN INTO THE 5 RANKS
|
||||
if(y >= 0 && y < 50)
|
||||
x = 0;
|
||||
if(y >= 50 && y < 74)
|
||||
x = 1;
|
||||
if(y >= 74 && y < 89)
|
||||
x = 2;
|
||||
if(y >= 89 && y < 99)
|
||||
x = 3;
|
||||
if(y >= 99 && y <= 100)
|
||||
x = 4;
|
||||
}
|
||||
if(x > 1)
|
||||
{
|
||||
isAggressive.put(entity.getEntityId(), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(!mobDiff.containsKey(entity.getEntityId()))
|
||||
{
|
||||
mobDiff.put(entity.getEntityId(), x);
|
||||
//System.out.println("Mob "+entity.getEntityId()+" (DIFFICULTY) "+
|
||||
//(x +1)+"(DEPTH) "+entity.getLocation().getY());
|
||||
}
|
||||
}
|
||||
}
|
@ -2,7 +2,6 @@ package com.gmail.nossr50.listeners;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Monster;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
@ -12,7 +11,6 @@ import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.entity.EntityListener;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gmail.nossr50.Combat;
|
||||
@ -149,15 +147,9 @@ public class mcEntityListener extends EntityListener
|
||||
|
||||
public void onEntityDeath(EntityDeathEvent event)
|
||||
{
|
||||
|
||||
Entity x = event.getEntity();
|
||||
x.setFireTicks(0);
|
||||
|
||||
//cleanup mob diff
|
||||
if(plugin.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
|
||||
plugin.mob.mobDiff.remove(event.getEntity().getEntityId());
|
||||
|
||||
|
||||
//Remove bleed track
|
||||
if(plugin.misc.bleedTracker.contains((LivingEntity)x))
|
||||
plugin.misc.addToBleedRemovalQue((LivingEntity)x);
|
||||
@ -183,29 +175,9 @@ public class mcEntityListener extends EntityListener
|
||||
if(reason == SpawnReason.SPAWNER && !LoadProperties.xpGainsMobSpawners)
|
||||
{
|
||||
plugin.misc.mobSpawnerList.add(event.getEntity());
|
||||
} else
|
||||
{
|
||||
if(event.getEntity() instanceof Monster && !plugin.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
|
||||
plugin.mob.assignDifficulty(event.getEntity());
|
||||
}
|
||||
}
|
||||
|
||||
public void onEntityTarget(EntityTargetEvent event)
|
||||
{
|
||||
|
||||
int type = event.getEntity().getEntityId();
|
||||
//Make 3+ non-aggressive
|
||||
if(event.getEntity() instanceof Monster
|
||||
&& plugin.mob.mobDiff.containsKey(type)
|
||||
&& plugin.mob.isAggressive.containsKey(type))
|
||||
{
|
||||
if(plugin.mob.mobDiff.get(type) >= 2 && plugin.mob.isAggressive.get(type) == false)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
event.setTarget(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
public boolean isBow(ItemStack is){
|
||||
if (is.getTypeId() == 261){
|
||||
return true;
|
||||
|
@ -201,22 +201,6 @@ public class mcPlayerListener extends PlayerListener
|
||||
Skills.hoeReadinessCheck(player);
|
||||
Skills.abilityActivationCheck(player);
|
||||
}
|
||||
if(action == Action.RIGHT_CLICK_AIR || action == Action.RIGHT_CLICK_BLOCK)
|
||||
{
|
||||
/*
|
||||
* HERBALISM MODIFIERS
|
||||
*/
|
||||
if(action == Action.RIGHT_CLICK_BLOCK && !m.abilityBlockCheck(event.getClickedBlock()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(mcPermissions.getInstance().herbalism(player))
|
||||
{
|
||||
Herbalism.breadCheck(player, player.getItemInHand());
|
||||
Herbalism.stewCheck(player, player.getItemInHand());
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* ITEM CHECKS
|
||||
|
@ -1,10 +1,10 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import com.gmail.nossr50.datatypes.Mob;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.SkillType;
|
||||
import com.gmail.nossr50.command.Commands;
|
||||
import com.gmail.nossr50.config.*;
|
||||
import com.gmail.nossr50.runnables.mcTimer;
|
||||
import com.gmail.nossr50.spout.SpoutStuff;
|
||||
import com.gmail.nossr50.spout.mmoHelper;
|
||||
import com.gmail.nossr50.listeners.mcBlockListener;
|
||||
@ -14,6 +14,7 @@ import com.gmail.nossr50.party.Party;
|
||||
import com.gmail.nossr50.skills.*;
|
||||
import com.nijikokun.bukkit.Permissions.Permissions;
|
||||
|
||||
import org.blockface.bukkitstats.CallHome;
|
||||
import org.bukkit.Bukkit;
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedReader;
|
||||
@ -70,7 +71,6 @@ public class mcMMO extends JavaPlugin
|
||||
//private Timer mcMMO_SpellTimer = new Timer(true);
|
||||
|
||||
public static Database database = null;
|
||||
public Mob mob = new Mob();
|
||||
public Misc misc = new Misc(this);
|
||||
|
||||
//Config file stuff
|
||||
@ -135,7 +135,6 @@ public class mcMMO extends JavaPlugin
|
||||
pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Normal, this);
|
||||
|
||||
//Entity Stuff
|
||||
pm.registerEvent(Event.Type.ENTITY_TARGET, entityListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Monitor, this);
|
||||
pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this);
|
||||
@ -174,6 +173,7 @@ public class mcMMO extends JavaPlugin
|
||||
System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" );
|
||||
|
||||
Bukkit.getServer().getScheduler().scheduleAsyncRepeatingTask(this, mcMMO_Timer, 0, 20);
|
||||
CallHome.load(this); //Swearword's blockface usage statistics, only dials home once
|
||||
}
|
||||
|
||||
public PlayerProfile getPlayerProfile(Player player)
|
||||
|
@ -1,91 +0,0 @@
|
||||
package com.gmail.nossr50;
|
||||
import org.bukkit.entity.*;
|
||||
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.skills.Skills;
|
||||
import com.gmail.nossr50.skills.Swords;
|
||||
|
||||
|
||||
public class mcTimer implements Runnable
|
||||
{
|
||||
private final mcMMO plugin;
|
||||
int thecount = 1;
|
||||
|
||||
public mcTimer(final mcMMO plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
for(Player player : plugin.getServer().getOnlinePlayers())
|
||||
{
|
||||
if(player == null)
|
||||
continue;
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
|
||||
if(PP == null)
|
||||
continue;
|
||||
|
||||
/*
|
||||
* MONITOR SKILLS
|
||||
*/
|
||||
Skills.monitorSkills(player);
|
||||
|
||||
/*
|
||||
* COOLDOWN MONITORING
|
||||
*/
|
||||
Skills.watchCooldowns(player);
|
||||
|
||||
/*
|
||||
* PLAYER BLEED MONITORING
|
||||
*/
|
||||
if(thecount % 2 == 0 && PP.getBleedTicks() >= 1)
|
||||
{
|
||||
player.damage(2);
|
||||
PP.decreaseBleedTicks();
|
||||
}
|
||||
|
||||
if(LoadProperties.enableRegen && mcPermissions.getInstance().regeneration(player) && System.currentTimeMillis() >= PP.getRecentlyHurt() + 60000)
|
||||
{
|
||||
if(thecount == 20 || thecount == 40 || thecount == 60 || thecount == 80){
|
||||
if(player != null &&
|
||||
player.getHealth() > 0 && player.getHealth() < 20
|
||||
&& m.getPowerLevel(player) >= 1000){
|
||||
player.setHealth(m.calculateHealth(player.getHealth(), 1));
|
||||
}
|
||||
}
|
||||
if(thecount == 40 || thecount == 80){
|
||||
if(player != null &&
|
||||
player.getHealth() > 0 && player.getHealth() < 20
|
||||
&& m.getPowerLevel(player) >= 500
|
||||
&& m.getPowerLevel(player) < 1000){
|
||||
player.setHealth(m.calculateHealth(player.getHealth(), 1));
|
||||
}
|
||||
}
|
||||
if(thecount == 80)
|
||||
{
|
||||
if(player != null &&
|
||||
player.getHealth() > 0 && player.getHealth() < 20
|
||||
&& m.getPowerLevel(player) < 500){
|
||||
player.setHealth(m.calculateHealth(player.getHealth(), 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* NON-PLAYER BLEED MONITORING
|
||||
*/
|
||||
|
||||
if(thecount % 2 == 0)
|
||||
Swords.bleedSimulate(plugin);
|
||||
|
||||
//SETUP FOR HP REGEN/BLEED
|
||||
thecount++;
|
||||
if(thecount >= 81)
|
||||
thecount = 1;
|
||||
}
|
||||
}
|
@ -19,7 +19,7 @@ import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.locale.mcLocale;
|
||||
import com.gmail.nossr50.spout.ArrayListString;
|
||||
import com.gmail.nossr50.spout.util.ArrayListString;
|
||||
|
||||
|
||||
public class Party
|
||||
|
64
src/com/gmail/nossr50/runnables/mcTimer.java
Normal file
64
src/com/gmail/nossr50/runnables/mcTimer.java
Normal file
@ -0,0 +1,64 @@
|
||||
package com.gmail.nossr50.runnables;
|
||||
import org.bukkit.entity.*;
|
||||
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.skills.Skills;
|
||||
import com.gmail.nossr50.skills.Swords;
|
||||
|
||||
|
||||
public class mcTimer implements Runnable
|
||||
{
|
||||
private final mcMMO plugin;
|
||||
int thecount = 1;
|
||||
|
||||
public mcTimer(final mcMMO plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
for(Player player : plugin.getServer().getOnlinePlayers())
|
||||
{
|
||||
if(player == null)
|
||||
continue;
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
|
||||
if(PP == null)
|
||||
continue;
|
||||
|
||||
/*
|
||||
* MONITOR SKILLS
|
||||
*/
|
||||
Skills.monitorSkills(player);
|
||||
|
||||
/*
|
||||
* COOLDOWN MONITORING
|
||||
*/
|
||||
Skills.watchCooldowns(player);
|
||||
|
||||
/*
|
||||
* PLAYER BLEED MONITORING
|
||||
*/
|
||||
if(thecount % 2 == 0 && PP.getBleedTicks() >= 1)
|
||||
{
|
||||
player.damage(2);
|
||||
PP.decreaseBleedTicks();
|
||||
}
|
||||
|
||||
/*
|
||||
* NON-PLAYER BLEED MONITORING
|
||||
*/
|
||||
|
||||
if(thecount % 2 == 0)
|
||||
Swords.bleedSimulate(plugin);
|
||||
|
||||
//SETUP FOR HP REGEN/BLEED
|
||||
thecount++;
|
||||
if(thecount >= 81)
|
||||
thecount = 1;
|
||||
}
|
||||
}
|
||||
}
|
@ -52,7 +52,8 @@ public class Axes {
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx){
|
||||
public static void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx)
|
||||
{
|
||||
Entity x = event.getEntity();
|
||||
if(x instanceof Wolf){
|
||||
Wolf wolf = (Wolf)x;
|
||||
|
@ -305,86 +305,4 @@ public class Herbalism
|
||||
}
|
||||
Skills.XpCheckSkill(SkillType.HERBALISM, player);
|
||||
}
|
||||
public static void breadCheck(Player player, ItemStack is)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
int herbalism = PP.getSkillLevel(SkillType.HERBALISM);
|
||||
int heal = 0;
|
||||
if(is.getTypeId() == 297)
|
||||
{
|
||||
if(herbalism >= 50 && herbalism < 150)
|
||||
{
|
||||
heal = 1;
|
||||
} else if (herbalism >= 150 && herbalism < 250)
|
||||
{
|
||||
heal = 2;
|
||||
} else if (herbalism >= 250 && herbalism < 350)
|
||||
{
|
||||
heal = 3;
|
||||
} else if (herbalism >= 350 && herbalism < 450)
|
||||
{
|
||||
heal = 4;
|
||||
} else if (herbalism >= 450 && herbalism < 550)
|
||||
{
|
||||
heal = 5;
|
||||
} else if (herbalism >= 550 && herbalism < 650)
|
||||
{
|
||||
heal = 6;
|
||||
} else if (herbalism >= 650 && herbalism < 750)
|
||||
{
|
||||
heal = 7;
|
||||
} else if (herbalism >= 750)
|
||||
{
|
||||
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)
|
||||
{
|
||||
heal = 1;
|
||||
} else if (herbalism >= 150 && herbalism < 250)
|
||||
{
|
||||
heal = 2;
|
||||
} else if (herbalism >= 250 && herbalism < 350)
|
||||
{
|
||||
heal = 3;
|
||||
} else if (herbalism >= 350 && herbalism < 450)
|
||||
{
|
||||
heal = 4;
|
||||
} else if (herbalism >= 450 && herbalism < 550)
|
||||
{
|
||||
heal = 5;
|
||||
} else if (herbalism >= 550 && herbalism < 650)
|
||||
{
|
||||
heal = 6;
|
||||
} else if (herbalism >= 650 && herbalism < 750)
|
||||
{
|
||||
heal = 7;
|
||||
} else if (herbalism >= 750)
|
||||
{
|
||||
heal = 8;
|
||||
}
|
||||
|
||||
if(player.getHealth()+heal > 20)
|
||||
{
|
||||
player.setHealth(20);
|
||||
}
|
||||
else
|
||||
player.setHealth(player.getHealth()+heal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -157,41 +157,6 @@ public class Swords
|
||||
}
|
||||
}
|
||||
|
||||
public static void parryCheck(EntityDamageByEntityEvent event, Player defender)
|
||||
{
|
||||
Entity y = event.getDamager();
|
||||
PlayerProfile PPd = Users.getProfile(defender);
|
||||
if(defender != null && m.isSwords(defender.getItemInHand())
|
||||
&& mcPermissions.getInstance().swords(defender)){
|
||||
if(PPd.getSkillLevel(SkillType.SWORDS) >= 900)
|
||||
{
|
||||
if(Math.random() * 3000 <= 900)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
defender.sendMessage(ChatColor.GREEN+"**PARRIED**");
|
||||
defender.getItemInHand().setDurability((short) (defender.getItemInHand().getDurability() + 1));
|
||||
if(y instanceof Player)
|
||||
{
|
||||
Player attacker = (Player)y;
|
||||
attacker.sendMessage(ChatColor.GREEN+"**PARRIED**");
|
||||
}
|
||||
}
|
||||
} else
|
||||
{
|
||||
if(Math.random() * 3000 <= PPd.getSkillLevel(SkillType.SWORDS))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
defender.sendMessage(ChatColor.YELLOW+"*CLANG* SUCCESSFUL PARRY *CLANG*");
|
||||
defender.getItemInHand().setDurability((short) (defender.getItemInHand().getDurability() + 1));
|
||||
if(y instanceof Player)
|
||||
{
|
||||
Player attacker = (Player)y;
|
||||
attacker.sendMessage(ChatColor.DARK_RED+"**TARGET HAS PARRIED THAT ATTACK**");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void counterAttackChecks(EntityDamageByEntityEvent event)
|
||||
{
|
||||
//Don't want to counter attack arrows
|
||||
|
@ -38,6 +38,7 @@ import org.getspout.spoutapi.player.SpoutPlayer;
|
||||
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.party.Party;
|
||||
import com.gmail.nossr50.spout.util.GenericLivingEntity;
|
||||
|
||||
public class mmoHelper
|
||||
{
|
||||
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.gmail.nossr50.spout;
|
||||
package com.gmail.nossr50.spout.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -15,7 +15,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.gmail.nossr50.spout;
|
||||
package com.gmail.nossr50.spout.util;
|
||||
|
||||
import org.getspout.spoutapi.gui.GenericTexture;
|
||||
|
@ -14,13 +14,15 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.gmail.nossr50.spout;
|
||||
package com.gmail.nossr50.spout.util;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.getspout.spoutapi.gui.*;
|
||||
|
||||
import com.gmail.nossr50.spout.mmoHelper;
|
||||
|
||||
public class GenericLivingEntity extends GenericContainer {
|
||||
|
||||
private Container _bars;
|
113
src/org/blockface/bukkitstats/CallHome.java
Normal file
113
src/org/blockface/bukkitstats/CallHome.java
Normal file
@ -0,0 +1,113 @@
|
||||
/*
|
||||
* Copyright (c) 2011. SwearWord
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||
* software and associated documentation files (the "Software"), to deal in the Software
|
||||
* without restriction, including without limitation the rights to use the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* No modifications may be made to the Software. User must use the code as is.
|
||||
*
|
||||
* Users of any software implementing this Software must be made aware of this Software's
|
||||
* implementation. This Software may not be executed on uninformed clients.
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all copies
|
||||
* or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package org.blockface.bukkitstats;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.config.Configuration;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
/*
|
||||
@
|
||||
*/
|
||||
|
||||
public class CallHome{
|
||||
|
||||
private static Configuration cfg=null;
|
||||
|
||||
public static void load(Plugin plugin) {
|
||||
if(cfg==null) {
|
||||
if(!verifyConfig()) return;
|
||||
}
|
||||
if(cfg.getBoolean("opt-out",false)) return;
|
||||
plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin,new CallTask(plugin,cfg.getBoolean("list-server",true)),0L,20L*60L*10);
|
||||
System.out.println(plugin.getDescription().getName() + " is keeping usage stats an. To opt-out for whatever bizarre reason, check plugins/stats.");
|
||||
|
||||
}
|
||||
|
||||
private static Boolean verifyConfig() {
|
||||
Boolean ret = true;
|
||||
File config = new File("plugins/stats/config.yml");
|
||||
if(!config.getParentFile().exists()) config.getParentFile().mkdir();
|
||||
if(!config.exists()) try {
|
||||
config.createNewFile();
|
||||
ret = false;
|
||||
System.out.println("BukkitStats has initialized for the first time. To opt-out check plugins/stats");
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}
|
||||
cfg=new Configuration(config);
|
||||
cfg.load();
|
||||
cfg.getBoolean("opt-out",false);
|
||||
cfg.getBoolean("list-server", true);
|
||||
cfg.save();
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
class CallTask implements Runnable {
|
||||
private Plugin plugin;
|
||||
private int pub=1;
|
||||
|
||||
public CallTask(Plugin plugin,Boolean pub) {
|
||||
this.plugin = plugin;
|
||||
if(!pub) this.pub = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
if(postUrl().contains("Success")) return;
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
System.out.println("Could not call home.");
|
||||
}
|
||||
|
||||
private String postUrl() throws Exception {
|
||||
String url = String.format("http://usage.blockface.org/update.php?name=%s&build=%s&plugin=%s&port=%s&public=%s",
|
||||
plugin.getServer().getName(),
|
||||
plugin.getDescription().getVersion(),
|
||||
plugin.getDescription().getName(),
|
||||
plugin.getServer().getPort(),
|
||||
pub);
|
||||
URL oracle = new URL(url);
|
||||
URLConnection yc = oracle.openConnection();
|
||||
BufferedReader in = new BufferedReader(
|
||||
new InputStreamReader(
|
||||
yc.getInputStream()));
|
||||
String inputLine;
|
||||
while ((inputLine = in.readLine()) != null)
|
||||
inputLine += "";
|
||||
return inputLine;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user