mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-26 15:16:45 +01:00
All changes up to 0.8.17
This commit is contained in:
parent
cb0960ee6e
commit
afa9abfb91
@ -1,5 +1,11 @@
|
|||||||
Changelog:
|
Changelog:
|
||||||
#Versions without changelogs probably had very small misc fixes, like tweaks to the source code#
|
#Versions without changelogs probably had very small misc fixes, like tweaks to the source code#
|
||||||
|
Version 0.8.17
|
||||||
|
mcmmo.users moved to plugins/mcMMO/
|
||||||
|
Snowballs and Eggs will no longer trigger Ignition
|
||||||
|
Loot tables for excavation adjusted
|
||||||
|
Mining benefits now require the player to be holding a mining pick
|
||||||
|
Woodcutting benefits now require the player to be holding an axe
|
||||||
Version 0.8.16
|
Version 0.8.16
|
||||||
Moved configuration file to /plugins/mcMMO
|
Moved configuration file to /plugins/mcMMO
|
||||||
Arrows now have a chance to Ignite enemiesw
|
Arrows now have a chance to Ignite enemiesw
|
||||||
|
@ -22,17 +22,14 @@ public class mcBlockListener extends BlockListener {
|
|||||||
}
|
}
|
||||||
public void onBlockPlace(BlockPlaceEvent event) {
|
public void onBlockPlace(BlockPlaceEvent event) {
|
||||||
Block block;
|
Block block;
|
||||||
|
Player player = event.getPlayer();
|
||||||
if (event.getBlockReplacedState().getTypeId() == 78) {
|
if (event.getBlockReplacedState().getTypeId() == 78) {
|
||||||
block = event.getBlockAgainst();
|
block = event.getBlockAgainst();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
block = event.getBlock();
|
block = event.getBlock();
|
||||||
}
|
}
|
||||||
int x = block.getX();
|
if(player != null && mcm.getInstance().shouldBeWatched(block))
|
||||||
int y = block.getY();
|
|
||||||
int z = block.getZ();
|
|
||||||
String xyz = x+","+y+","+z;
|
|
||||||
if(mcm.getInstance().shouldBeWatched(block))
|
|
||||||
mcConfig.getInstance().addBlockWatch(block);
|
mcConfig.getInstance().addBlockWatch(block);
|
||||||
if(block.getTypeId() == 42 && mcLoadProperties.anvilmessages)
|
if(block.getTypeId() == 42 && mcLoadProperties.anvilmessages)
|
||||||
event.getPlayer().sendMessage(ChatColor.DARK_RED+"You have placed an anvil, anvils can repair tools and armor.");
|
event.getPlayer().sendMessage(ChatColor.DARK_RED+"You have placed an anvil, anvils can repair tools and armor.");
|
||||||
@ -41,12 +38,9 @@ public class mcBlockListener extends BlockListener {
|
|||||||
public void onBlockDamage(BlockDamageEvent event) {
|
public void onBlockDamage(BlockDamageEvent event) {
|
||||||
//STARTED(0), DIGGING(1), BROKEN(3), STOPPED(2);
|
//STARTED(0), DIGGING(1), BROKEN(3), STOPPED(2);
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
ItemStack inhand = player.getItemInHand();
|
||||||
//player.sendMessage("mcMMO DEBUG: EVENT-OK DMG LEVEL ("+event.getDamageLevel().getLevel()+")");
|
//player.sendMessage("mcMMO DEBUG: EVENT-OK DMG LEVEL ("+event.getDamageLevel().getLevel()+")");
|
||||||
Block block = event.getBlock();
|
Block block = event.getBlock();
|
||||||
int x = block.getX();
|
|
||||||
int y = block.getY();
|
|
||||||
int z = block.getZ();
|
|
||||||
String xyz = x+","+y+","+z;
|
|
||||||
Location loc = block.getLocation();
|
Location loc = block.getLocation();
|
||||||
int dmg = event.getDamageLevel().getLevel();
|
int dmg = event.getDamageLevel().getLevel();
|
||||||
/*
|
/*
|
||||||
@ -60,64 +54,64 @@ public class mcBlockListener extends BlockListener {
|
|||||||
* MINING
|
* MINING
|
||||||
*/
|
*/
|
||||||
if(player != null && dmg == 2 && !mcConfig.getInstance().isBlockWatched(block)){
|
if(player != null && dmg == 2 && !mcConfig.getInstance().isBlockWatched(block)){
|
||||||
if(mcPermissions.getInstance().mining(player))
|
if(mcm.getInstance().isMiningPick(inhand) && mcPermissions.getInstance().mining(player))
|
||||||
mcMining.getInstance().miningBlockCheck(player, block);
|
mcMining.getInstance().miningBlockCheck(player, block);
|
||||||
/*
|
/*
|
||||||
* WOOD CUTTING
|
* WOOD CUTTING
|
||||||
*/
|
*/
|
||||||
if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player)){
|
if(player != null && mcm.getInstance().isAxes(inhand) && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player)){
|
||||||
mcWoodCutting.getInstance().woodCuttingProcCheck(player, block, loc);
|
mcWoodCutting.getInstance().woodCuttingProcCheck(player, block, loc);
|
||||||
mcUsers.getProfile(player).addWoodcuttingGather(7);
|
mcUsers.getProfile(player).addWoodcuttingGather(7);
|
||||||
/*
|
/*
|
||||||
* IF PLAYER IS USING TREEFELLER
|
* IF PLAYER IS USING TREEFELLER
|
||||||
*/
|
*/
|
||||||
if(mcPermissions.getInstance().woodcuttingability(player) && mcUsers.getProfile(player).getTreeFellerMode() && block.getTypeId() == 17){
|
if(mcPermissions.getInstance().woodcuttingability(player) && mcUsers.getProfile(player).getTreeFellerMode() && block.getTypeId() == 17){
|
||||||
mcWoodCutting.getInstance().treeFeller(block, player);
|
mcWoodCutting.getInstance().treeFeller(block, player);
|
||||||
for(Block blockx : mcConfig.getInstance().getTreeFeller()){
|
for(Block blockx : mcConfig.getInstance().getTreeFeller()){
|
||||||
if(blockx != null){
|
if(blockx != null){
|
||||||
Material mat = Material.getMaterial(blockx.getTypeId());
|
Material mat = Material.getMaterial(blockx.getTypeId());
|
||||||
byte damage = 0;
|
byte damage = 0;
|
||||||
ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
|
ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
|
||||||
blockx.setTypeId(0);
|
blockx.setTypeId(0);
|
||||||
if(item.getTypeId() == 17){
|
if(item.getTypeId() == 17){
|
||||||
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
||||||
mcWoodCutting.getInstance().woodCuttingProcCheck(player, blockx, blockx.getLocation());
|
mcWoodCutting.getInstance().woodCuttingProcCheck(player, blockx, blockx.getLocation());
|
||||||
mcUsers.getProfile(player).addWoodcuttingGather(7);
|
mcUsers.getProfile(player).addWoodcuttingGather(7);
|
||||||
}
|
}
|
||||||
if(item.getTypeId() == 18){
|
if(item.getTypeId() == 18){
|
||||||
mat = Material.getMaterial(6);
|
mat = Material.getMaterial(6);
|
||||||
item = new ItemStack(mat, 1, (byte)0, damage);
|
item = new ItemStack(mat, 1, (byte)0, damage);
|
||||||
if(Math.random() * 10 > 8)
|
if(Math.random() * 10 > 8)
|
||||||
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* NOTE TO SELF
|
* NOTE TO SELF
|
||||||
* I NEED TO REMOVE TREE FELL BLOCKS FROM BEING WATCHED AFTER THIS CODE IS EXECUTED
|
* I NEED TO REMOVE TREE FELL BLOCKS FROM BEING WATCHED AFTER THIS CODE IS EXECUTED
|
||||||
* OR ELSE IT COULD BE A MEMORY LEAK SITUATION
|
* OR ELSE IT COULD BE A MEMORY LEAK SITUATION
|
||||||
*/
|
*/
|
||||||
mcConfig.getInstance().clearTreeFeller();
|
mcConfig.getInstance().clearTreeFeller();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* EXCAVATION
|
* EXCAVATION
|
||||||
*/
|
*/
|
||||||
if(mcPermissions.getInstance().excavation(player) && block != null && player != null)
|
if(mcPermissions.getInstance().excavation(player) && block != null && player != null)
|
||||||
mcExcavation.getInstance().excavationProcCheck(block, player);
|
mcExcavation.getInstance().excavationProcCheck(block, player);
|
||||||
/*
|
/*
|
||||||
* EXPLOIT COUNTERMEASURES
|
* EXPLOIT COUNTERMEASURES
|
||||||
*/
|
*/
|
||||||
mcConfig.getInstance().addBlockWatch(block);
|
mcConfig.getInstance().addBlockWatch(block);
|
||||||
if(player != null && mcUsers.getProfile(player).getWoodCuttingGatherInt() >= mcUsers.getProfile(player).getXpToLevel("woodcutting")){
|
if(player != null && mcUsers.getProfile(player).getWoodCuttingGatherInt() >= mcUsers.getProfile(player).getXpToLevel("woodcutting")){
|
||||||
int skillups = 0;
|
int skillups = 0;
|
||||||
while(mcUsers.getProfile(player).getWoodCuttingGatherInt() >= mcUsers.getProfile(player).getXpToLevel("woodcutting")){
|
while(mcUsers.getProfile(player).getWoodCuttingGatherInt() >= mcUsers.getProfile(player).getXpToLevel("woodcutting")){
|
||||||
skillups++;
|
skillups++;
|
||||||
mcUsers.getProfile(player).removeWoodCuttingGather(mcUsers.getProfile(player).getXpToLevel("woodcutting"));
|
mcUsers.getProfile(player).removeWoodCuttingGather(mcUsers.getProfile(player).getXpToLevel("woodcutting"));
|
||||||
mcUsers.getProfile(player).skillUpWoodCutting(1);
|
mcUsers.getProfile(player).skillUpWoodCutting(1);
|
||||||
}
|
}
|
||||||
player.sendMessage(ChatColor.YELLOW+"WoodCutting skill increased by "+skillups+"."+" Total ("+mcUsers.getProfile(player).getWoodCutting()+")");
|
player.sendMessage(ChatColor.YELLOW+"WoodCutting skill increased by "+skillups+"."+" Total ("+mcUsers.getProfile(player).getWoodCutting()+")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,19 +332,6 @@ public class mcCombat {
|
|||||||
*/
|
*/
|
||||||
if(y instanceof Player){
|
if(y instanceof Player){
|
||||||
Player attacker = (Player)y;
|
Player attacker = (Player)y;
|
||||||
if(Math.random() * 1500 <= mcUsers.getProfile(attacker).getArcheryInt()){
|
|
||||||
if(x instanceof Player){
|
|
||||||
Player Defender = (Player)x;
|
|
||||||
if(!mcParty.getInstance().inSameParty(attacker, Defender)){
|
|
||||||
event.getEntity().setFireTicks(120);
|
|
||||||
attacker.sendMessage(ChatColor.RED+"**IGNITION**");
|
|
||||||
Defender.sendMessage(ChatColor.DARK_RED+"You were struck by a burning arrow!");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
event.getEntity().setFireTicks(160);
|
|
||||||
attacker.sendMessage(ChatColor.RED+"**IGNITION**");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(event.getProjectile().toString().equals("CraftArrow") && mcPermissions.getInstance().archery(attacker)){
|
if(event.getProjectile().toString().equals("CraftArrow") && mcPermissions.getInstance().archery(attacker)){
|
||||||
if(!mcConfig.getInstance().isTracked(x) && event.getDamage() > 0){
|
if(!mcConfig.getInstance().isTracked(x) && event.getDamage() > 0){
|
||||||
mcConfig.getInstance().addArrowTrack(x, 0);
|
mcConfig.getInstance().addArrowTrack(x, 0);
|
||||||
@ -362,6 +349,19 @@ public class mcCombat {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(event.getDamage() > 0 && Math.random() * 1500 <= mcUsers.getProfile(attacker).getArcheryInt()){
|
||||||
|
if(x instanceof Player){
|
||||||
|
Player Defender = (Player)x;
|
||||||
|
if(!mcParty.getInstance().inSameParty(attacker, Defender)){
|
||||||
|
event.getEntity().setFireTicks(120);
|
||||||
|
attacker.sendMessage(ChatColor.RED+"**IGNITION**");
|
||||||
|
Defender.sendMessage(ChatColor.DARK_RED+"You were struck by a burning arrow!");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
event.getEntity().setFireTicks(160);
|
||||||
|
attacker.sendMessage(ChatColor.RED+"**IGNITION**");
|
||||||
|
}
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Defender is Monster
|
* Defender is Monster
|
||||||
*/
|
*/
|
||||||
|
@ -53,8 +53,17 @@ public class mcExcavation {
|
|||||||
loc.getWorld().dropItemNaturally(loc, is);
|
loc.getWorld().dropItemNaturally(loc, is);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(mcUsers.getProfile(player).getExcavationInt() > 150){
|
if(mcUsers.getProfile(player).getExcavationInt() > 350){
|
||||||
//CHANCE TO GET MUSIC
|
//CHANCE TO GET DIAMOND
|
||||||
|
if(mcLoadProperties.diamond == true && Math.random() * 750 > 749){
|
||||||
|
mcUsers.getProfile(player).addExcavationGather(100);
|
||||||
|
mat = Material.getMaterial(264);
|
||||||
|
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||||
|
loc.getWorld().dropItemNaturally(loc, is);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(mcUsers.getProfile(player).getExcavationInt() > 250){
|
||||||
|
//CHANCE TO GET YELLOW MUSIC
|
||||||
if(mcLoadProperties.music == true && Math.random() * 2000 > 1999){
|
if(mcLoadProperties.music == true && Math.random() * 2000 > 1999){
|
||||||
mcUsers.getProfile(player).addExcavationGather(300);
|
mcUsers.getProfile(player).addExcavationGather(300);
|
||||||
mat = Material.getMaterial(2256);
|
mat = Material.getMaterial(2256);
|
||||||
@ -64,16 +73,7 @@ public class mcExcavation {
|
|||||||
|
|
||||||
}
|
}
|
||||||
if(mcUsers.getProfile(player).getExcavationInt() > 350){
|
if(mcUsers.getProfile(player).getExcavationInt() > 350){
|
||||||
//CHANCE TO GET DIAMOND
|
//CHANCE TO GET GREEN MUSIC
|
||||||
if(mcLoadProperties.diamond == true && Math.random() * 500 > 499){
|
|
||||||
mcUsers.getProfile(player).addExcavationGather(100);
|
|
||||||
mat = Material.getMaterial(264);
|
|
||||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
|
||||||
loc.getWorld().dropItemNaturally(loc, is);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(mcUsers.getProfile(player).getExcavationInt() > 250){
|
|
||||||
//CHANCE TO GET MUSIC
|
|
||||||
if(mcLoadProperties.music == true && Math.random() * 2000 > 1999){
|
if(mcLoadProperties.music == true && Math.random() * 2000 > 1999){
|
||||||
mcUsers.getProfile(player).addExcavationGather(300);
|
mcUsers.getProfile(player).addExcavationGather(300);
|
||||||
mat = Material.getMaterial(2257);
|
mat = Material.getMaterial(2257);
|
||||||
@ -136,7 +136,7 @@ public class mcExcavation {
|
|||||||
}
|
}
|
||||||
//CHANCE TO GET BONES
|
//CHANCE TO GET BONES
|
||||||
if(mcLoadProperties.bones == true && mcUsers.getProfile(player).getExcavationInt() > 175){
|
if(mcLoadProperties.bones == true && mcUsers.getProfile(player).getExcavationInt() > 175){
|
||||||
if(Math.random() * 10 > 6){
|
if(Math.random() * 10 > 9){
|
||||||
mcUsers.getProfile(player).addExcavationGather(3);
|
mcUsers.getProfile(player).addExcavationGather(3);
|
||||||
mat = Material.getMaterial(352);
|
mat = Material.getMaterial(352);
|
||||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||||
|
@ -32,7 +32,7 @@ public class mcMMO extends JavaPlugin {
|
|||||||
|
|
||||||
//herp
|
//herp
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
mcMMO_Timer.schedule(new mcTimer(this), 0, (long)(2000));
|
//mcMMO_Timer.schedule(new mcTimer(this), 0, (long)(2000));
|
||||||
//Make the directory if it does not exist
|
//Make the directory if it does not exist
|
||||||
new File(maindirectory).mkdir();
|
new File(maindirectory).mkdir();
|
||||||
//Make the file if it does not exist
|
//Make the file if it does not exist
|
||||||
|
@ -26,7 +26,6 @@ public class mcMining {
|
|||||||
ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
|
ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
|
||||||
if(block.getTypeId() != 73 && block.getTypeId() != 74 && block.getTypeId() != 56 && block.getTypeId() != 21 && block.getTypeId() != 1 && block.getTypeId() != 16)
|
if(block.getTypeId() != 73 && block.getTypeId() != 74 && block.getTypeId() != 56 && block.getTypeId() != 21 && block.getTypeId() != 1 && block.getTypeId() != 16)
|
||||||
loc.getWorld().dropItemNaturally(loc, item);
|
loc.getWorld().dropItemNaturally(loc, item);
|
||||||
//hurrdurr
|
|
||||||
if(block.getTypeId() == 73 || block.getTypeId() == 74){
|
if(block.getTypeId() == 73 || block.getTypeId() == 74){
|
||||||
mat = Material.getMaterial(331);
|
mat = Material.getMaterial(331);
|
||||||
item = new ItemStack(mat, 1, (byte)0, damage);
|
item = new ItemStack(mat, 1, (byte)0, damage);
|
||||||
|
@ -69,6 +69,7 @@ public class mcPlayerListener extends PlayerListener {
|
|||||||
Block block = event.getBlockClicked();
|
Block block = event.getBlockClicked();
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
ItemStack is = player.getItemInHand();
|
ItemStack is = player.getItemInHand();
|
||||||
|
/*
|
||||||
if(mcPermissions.getInstance().woodcuttingability(player) && mcm.getInstance().isAxes(is)){
|
if(mcPermissions.getInstance().woodcuttingability(player) && mcm.getInstance().isAxes(is)){
|
||||||
if(block != null){
|
if(block != null){
|
||||||
if(!mcm.getInstance().abilityBlockCheck(block))
|
if(!mcm.getInstance().abilityBlockCheck(block))
|
||||||
@ -83,6 +84,7 @@ public class mcPlayerListener extends PlayerListener {
|
|||||||
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
|
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
if(mcPermissions.getInstance().herbalism(player)){
|
if(mcPermissions.getInstance().herbalism(player)){
|
||||||
//BREADCHECK, CHECKS HERBALISM SKILL FOR BREAD HP MODIFIERS
|
//BREADCHECK, CHECKS HERBALISM SKILL FOR BREAD HP MODIFIERS
|
||||||
mcHerbalism.getInstance().breadCheck(player, is);
|
mcHerbalism.getInstance().breadCheck(player, is);
|
||||||
|
@ -13,7 +13,7 @@ import org.bukkit.plugin.Plugin;
|
|||||||
public class mcUsers {
|
public class mcUsers {
|
||||||
private static volatile mcUsers instance;
|
private static volatile mcUsers instance;
|
||||||
protected static final Logger log = Logger.getLogger("Minecraft");
|
protected static final Logger log = Logger.getLogger("Minecraft");
|
||||||
String location = "mcmmo.users";
|
String location = "plugins/mcMMO/mcmmo.users";
|
||||||
public static PlayerList players = new PlayerList();
|
public static PlayerList players = new PlayerList();
|
||||||
private Properties properties = new Properties();
|
private Properties properties = new Properties();
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ class PlayerList
|
|||||||
Player thisplayer;
|
Player thisplayer;
|
||||||
char defaultColor;
|
char defaultColor;
|
||||||
|
|
||||||
String location = "mcmmo.users";
|
String location = "plugins/mcMMO/mcmmo.users";
|
||||||
|
|
||||||
|
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
|
@ -224,7 +224,13 @@ public class mcm {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public boolean isMiningPick(ItemStack is){
|
||||||
|
if(is.getTypeId() == 270 || is.getTypeId() == 274 || is.getTypeId() == 285 || is.getTypeId() == 257 || is.getTypeId() == 278){
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
public void mcmmoHelpCheck(String[] split, Player player, PlayerChatEvent event){
|
public void mcmmoHelpCheck(String[] split, Player player, PlayerChatEvent event){
|
||||||
if(split[0].equalsIgnoreCase("/woodcutting")){
|
if(split[0].equalsIgnoreCase("/woodcutting")){
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
name: mcMMO
|
name: mcMMO
|
||||||
main: com.gmail.nossr50.mcMMO
|
main: com.gmail.nossr50.mcMMO
|
||||||
version: 0.9 WIP
|
version: 0.8.17
|
Loading…
Reference in New Issue
Block a user