mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 22:56:45 +01:00
A WIP of 0.9 - Not recommended to use currently but it seems half-stable on my server.
This commit is contained in:
parent
2f6dbfccfc
commit
cb0960ee6e
@ -1,5 +1,7 @@
|
|||||||
package com.gmail.nossr50;
|
package com.gmail.nossr50;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -69,29 +71,34 @@ public class mcBlockListener extends BlockListener {
|
|||||||
/*
|
/*
|
||||||
* 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)){
|
mcWoodCutting.getInstance().treeFeller(block, player);
|
||||||
player.sendMessage(ChatColor.RED+"TIIIIIIIIIIIMBER");
|
|
||||||
mcWoodCutting.getInstance().treeFeller(block);
|
|
||||||
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());
|
||||||
|
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 > 6)
|
if(Math.random() * 10 > 8)
|
||||||
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//mcConfig.getInstance().removeTreeFeller(blockx);
|
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* NOTE TO SELF
|
||||||
|
* I NEED TO REMOVE TREE FELL BLOCKS FROM BEING WATCHED AFTER THIS CODE IS EXECUTED
|
||||||
|
* OR ELSE IT COULD BE A MEMORY LEAK SITUATION
|
||||||
|
*/
|
||||||
|
mcConfig.getInstance().clearTreeFeller();
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* EXCAVATION
|
* EXCAVATION
|
||||||
|
@ -32,6 +32,9 @@ public class mcConfig {
|
|||||||
public void removeBleedTrack(Entity entity){
|
public void removeBleedTrack(Entity entity){
|
||||||
bleedTracker.remove(entity);
|
bleedTracker.remove(entity);
|
||||||
}
|
}
|
||||||
|
public void clearTreeFeller(){
|
||||||
|
treeFeller.clear();
|
||||||
|
}
|
||||||
public void setBleedCount(Entity entity, Integer newvalue){
|
public void setBleedCount(Entity entity, Integer newvalue){
|
||||||
bleedTracker.add(entity);
|
bleedTracker.add(entity);
|
||||||
}
|
}
|
||||||
|
@ -69,6 +69,20 @@ 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(block != null){
|
||||||
|
if(!mcm.getInstance().abilityBlockCheck(block))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!mcUsers.getProfile(player).getTreeFellerMode() && mcUsers.getProfile(player).getTreeFellerCooldown() == 0){
|
||||||
|
player.sendMessage(ChatColor.GRAY+"You feel great strength enter you");
|
||||||
|
mcUsers.getProfile(player).setTreeFellerTicks(8);
|
||||||
|
mcUsers.getProfile(player).setTreeFellerMode(true);
|
||||||
|
}
|
||||||
|
if(!mcUsers.getProfile(player).getTreeFellerMode() && mcUsers.getProfile(player).getTreeFellerCooldown() >= 1){
|
||||||
|
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);
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.gmail.nossr50;
|
package com.gmail.nossr50;
|
||||||
|
import java.awt.Color;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.*;
|
||||||
|
|
||||||
public class mcTimer extends TimerTask{
|
public class mcTimer extends TimerTask{
|
||||||
@ -13,6 +15,7 @@ public class mcTimer extends TimerTask{
|
|||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
Player[] playerlist = plugin.getServer().getOnlinePlayers();
|
Player[] playerlist = plugin.getServer().getOnlinePlayers();
|
||||||
|
/*
|
||||||
if(thecount == 5 || thecount == 10 || thecount == 15 || thecount == 20){
|
if(thecount == 5 || thecount == 10 || thecount == 15 || thecount == 20){
|
||||||
for(Player player : playerlist){
|
for(Player player : playerlist){
|
||||||
if(player != null &&
|
if(player != null &&
|
||||||
@ -58,5 +61,29 @@ public class mcTimer extends TimerTask{
|
|||||||
thecount = 1;
|
thecount = 1;
|
||||||
}
|
}
|
||||||
mcCombat.getInstance().bleedSimulate();
|
mcCombat.getInstance().bleedSimulate();
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* TREE FELLER INTERACTIONS
|
||||||
|
*/
|
||||||
|
for(Player player : playerlist){
|
||||||
|
if(mcPermissions.getInstance().woodcuttingability(player)){
|
||||||
|
//Monitor the length of TreeFeller mode
|
||||||
|
if(mcUsers.getProfile(player).getTreeFellerMode()){
|
||||||
|
mcUsers.getProfile(player).decreaseTreeFellerTicks();
|
||||||
|
if(mcUsers.getProfile(player).getTreeFellerTicks() <= 0){
|
||||||
|
mcUsers.getProfile(player).setTreeFellerMode(false);
|
||||||
|
mcUsers.getProfile(player).setTreeFellerCooldown(120);
|
||||||
|
player.sendMessage(ChatColor.GRAY+"**You feel strength leaving you**");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Monitor the cooldown
|
||||||
|
if(!mcUsers.getProfile(player).getTreeFellerMode() && mcUsers.getProfile(player).getTreeFellerCooldown() >= 1){
|
||||||
|
mcUsers.getProfile(player).decreaseTreeFellerCooldown();
|
||||||
|
if(mcUsers.getProfile(player).getTreeFellerCooldown() == 0){
|
||||||
|
player.sendMessage(ChatColor.GREEN+"Your Tree Felling ability is refreshed!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,8 +156,8 @@ class PlayerList
|
|||||||
protected final Logger log = Logger.getLogger("Minecraft");
|
protected final Logger log = Logger.getLogger("Minecraft");
|
||||||
private String playerName, gather, wgather, woodcutting, repair, mining, party, myspawn, myspawnworld, unarmed, herbalism, excavation,
|
private String playerName, gather, wgather, woodcutting, repair, mining, party, myspawn, myspawnworld, unarmed, herbalism, excavation,
|
||||||
archery, swords, axes, invite, acrobatics, repairgather, unarmedgather, herbalismgather, excavationgather, archerygather, swordsgather, axesgather, acrobaticsgather;
|
archery, swords, axes, invite, acrobatics, repairgather, unarmedgather, herbalismgather, excavationgather, archerygather, swordsgather, axesgather, acrobaticsgather;
|
||||||
private boolean dead;
|
private boolean dead, treefellermode;
|
||||||
private int recentlyhurt = 0, bleedticks = 0;
|
private int recentlyhurt = 0, bleedticks = 0, treefellerticks = 0, treefellercooldown = 0;
|
||||||
Player thisplayer;
|
Player thisplayer;
|
||||||
char defaultColor;
|
char defaultColor;
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ class PlayerList
|
|||||||
//gather = "0";
|
//gather = "0";
|
||||||
party = null;
|
party = null;
|
||||||
dead = false;
|
dead = false;
|
||||||
|
treefellermode = false;
|
||||||
//Try to load the player and if they aren't found, append them
|
//Try to load the player and if they aren't found, append them
|
||||||
if(!load())
|
if(!load())
|
||||||
addPlayer();
|
addPlayer();
|
||||||
@ -433,6 +433,34 @@ class PlayerList
|
|||||||
public void setBleedTicks(Integer newvalue){
|
public void setBleedTicks(Integer newvalue){
|
||||||
bleedticks = newvalue;
|
bleedticks = newvalue;
|
||||||
}
|
}
|
||||||
|
public boolean getTreeFellerMode(){
|
||||||
|
return treefellermode;
|
||||||
|
}
|
||||||
|
public void setTreeFellerMode(Boolean bool){
|
||||||
|
treefellermode = bool;
|
||||||
|
}
|
||||||
|
public Integer getTreeFellerTicks(){
|
||||||
|
return treefellerticks;
|
||||||
|
}
|
||||||
|
public void setTreeFellerTicks(Integer newvalue){
|
||||||
|
treefellerticks = newvalue;
|
||||||
|
}
|
||||||
|
public void decreaseTreeFellerTicks(){
|
||||||
|
if(treefellerticks >= 1){
|
||||||
|
treefellerticks--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void setTreeFellerCooldown(Integer newvalue){
|
||||||
|
treefellercooldown = newvalue;
|
||||||
|
}
|
||||||
|
public int getTreeFellerCooldown(){
|
||||||
|
return treefellercooldown;
|
||||||
|
}
|
||||||
|
public void decreaseTreeFellerCooldown(){
|
||||||
|
if(treefellercooldown >= 1){
|
||||||
|
treefellercooldown--;
|
||||||
|
}
|
||||||
|
}
|
||||||
public Integer getRecentlyHurt(){
|
public Integer getRecentlyHurt(){
|
||||||
return recentlyhurt;
|
return recentlyhurt;
|
||||||
}
|
}
|
||||||
|
@ -34,8 +34,12 @@ public class mcWoodCutting {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void treeFeller(Block block){
|
public void treeFeller(Block block, Player player){
|
||||||
int radius = 1;
|
int radius = 1;
|
||||||
|
if(mcUsers.getProfile(player).getWoodCuttingGatherInt() >= 500)
|
||||||
|
radius++;
|
||||||
|
if(mcUsers.getProfile(player).getWoodCuttingGatherInt() >= 950)
|
||||||
|
radius++;
|
||||||
ArrayList<Block> blocklist = new ArrayList<Block>();
|
ArrayList<Block> blocklist = new ArrayList<Block>();
|
||||||
ArrayList<Block> toAdd = new ArrayList<Block>();
|
ArrayList<Block> toAdd = new ArrayList<Block>();
|
||||||
if(block != null)
|
if(block != null)
|
||||||
|
@ -35,6 +35,14 @@ public class mcm {
|
|||||||
return Math.sqrt(Math.pow(loca.getX() - locb.getX(), 2) + Math.pow(loca.getY() - locb.getY(), 2)
|
return Math.sqrt(Math.pow(loca.getX() - locb.getX(), 2) + Math.pow(loca.getY() - locb.getY(), 2)
|
||||||
+ Math.pow(loca.getZ() - locb.getZ(), 2));
|
+ Math.pow(loca.getZ() - locb.getZ(), 2));
|
||||||
}
|
}
|
||||||
|
public boolean abilityBlockCheck(Block block){
|
||||||
|
int i = block.getTypeId();
|
||||||
|
if(i == 58 || i == 61 || i == 42 || i == 71 || i == 64 || i == 84 || i == 324 || i == 330){
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
public boolean isBlockAround(Location loc, Integer radius, Integer typeid){
|
public boolean isBlockAround(Location loc, Integer radius, Integer typeid){
|
||||||
Block blockx = loc.getBlock();
|
Block blockx = loc.getBlock();
|
||||||
int ox = blockx.getX();
|
int ox = blockx.getX();
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
name: mcMMO
|
name: mcMMO
|
||||||
main: com.gmail.nossr50.mcMMO
|
main: com.gmail.nossr50.mcMMO
|
||||||
version: 0.8.16
|
version: 0.9 WIP
|
Loading…
Reference in New Issue
Block a user