1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-12-31 21:37:57 +01:00

Get total players from each job instead of connecting to data base

divide from double value to have more accurate results
This commit is contained in:
Zrips 2017-01-09 15:09:02 +02:00
parent 4d1b78c99d
commit ba6bd23b7c
8 changed files with 55 additions and 56 deletions

View File

@ -799,6 +799,7 @@ public class Jobs extends JavaPlugin {
int numjobs = progression.size();
// no job
if (numjobs == 0) {
if (noneJob == null)
@ -816,7 +817,6 @@ public class Jobs extends JavaPlugin {
if (income != 0D || pointAmount != 0D) {
// jPlayer
Boost boost = pManager.getFinalBonus(jPlayer, Jobs.getNoneJob());
// Calculate income
@ -913,10 +913,8 @@ public class Jobs extends JavaPlugin {
player.giveExp(expInt);
}
}
Boost boost = Jobs.getPlayerManager().getFinalBonus(jPlayer, prog.getJob(), ent, victim);
// Debug.D(FinalBoost.getMoneyBoost() + " : " + FinalBoost.getPointsBoost() + " : " + FinalBoost.getExpBoost());
// Calculate income
if (income != 0D) {
@ -996,7 +994,6 @@ public class Jobs extends JavaPlugin {
else
expAmount = JobsExpGainEvent.getExp();
Debug.D("income: " + income);
FastPayment.clear();
FastPayment.put(jPlayer.getUserName(), new FastPayment(jPlayer, info, new BufferedPayment(jPlayer.getPlayer(), income, pointAmount, expAmount), prog
.getJob()));
@ -1049,23 +1046,16 @@ public class Jobs extends JavaPlugin {
}
}
} else if (type == ActionType.PLACE) {
Debug.D("place");
BlockProtection bp = Jobs.getBpManager().getBp(block.getLocation());
if (bp != null) {
Debug.D("bpp not null here");
Long time = bp.getTime();
if (time != -1) {
Debug.D("time is " + (time < System.currentTimeMillis()));
if (time < System.currentTimeMillis() && bp.getAction() != DBAction.DELETE) {
Jobs.getBpManager().remove(block);
return true;
}
Debug.D("place " + ((time > System.currentTimeMillis() || bp.isPaid()) && bp.getAction() != DBAction.DELETE));
if ((time > System.currentTimeMillis() || bp.isPaid()) && bp.getAction() != DBAction.DELETE) {
Debug.D("here mufyn");
int sec = Math.round((time - System.currentTimeMillis()) / 1000);
if (inform)
Jobs.getActionBar().send(player, Jobs.getLanguage().getMessage("message.blocktimer", "[time]", sec));

View File

@ -28,6 +28,7 @@ import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
@ -606,12 +607,14 @@ public class PlayerManager {
BoostMultiplier data = new BoostMultiplier();
if (player == null)
return data;
ItemStack iih = Jobs.getNms().getItemInMainHand(player);
if (iih == null || prog == null)
if (prog == null)
return data;
data = Jobs.getPlayerManager().getItemBoost(prog, iih);
ItemStack iih = Jobs.getNms().getItemInMainHand(player);
data = Jobs.getPlayerManager().getItemBoost(prog, iih);
for (ItemStack OneArmor : player.getInventory().getArmorContents()) {
BoostMultiplier armorboost = Jobs.getPlayerManager().getItemBoost(prog, OneArmor);
if (OneArmor == null || OneArmor.getType() == Material.AIR)
continue;
BoostMultiplier armorboost = Jobs.getPlayerManager().getItemBoost(prog, OneArmor);
data.add(armorboost);
}
return data;
@ -620,6 +623,8 @@ public class PlayerManager {
@SuppressWarnings("deprecation")
public BoostMultiplier getItemBoost(Job prog, ItemStack item) {
BoostMultiplier bonus = new BoostMultiplier();
if (prog.getItems().isEmpty())
return bonus;
if (item == null)
return bonus;
@ -673,14 +678,21 @@ public class PlayerManager {
}
public Boost getFinalBonus(JobsPlayer player, Job prog, Entity ent, LivingEntity victim) {
long time = System.nanoTime();
long last = System.nanoTime();
Boost boost = new Boost();
if (player == null || prog == null)
return boost;
Debug.D("Boost 1 : " + (System.nanoTime() - last));
last = System.nanoTime();
if (Jobs.getMcMMOlistener().mcMMOPresent)
boost.add(BoostOf.McMMO, new BoostMultiplier().add(Jobs.getMcMMOlistener().getMultiplier(player.getPlayer())));
Debug.D("Boost 2 : " + (System.nanoTime() - last));
last = System.nanoTime();
if (ent != null && ent instanceof Tameable) {
Tameable t = (Tameable) ent;
if (t.isTamed() && t.getOwner() instanceof Player) {
@ -694,15 +706,28 @@ public class PlayerManager {
}
}
Debug.D("Boost 3 : " + (System.nanoTime() - last));
last = System.nanoTime();
if (victim != null && victim.hasMetadata(this.getMobSpawnerMetadata()))
boost.add(BoostOf.NearSpawner, new BoostMultiplier().add(player.getVipSpawnerMultiplier()));
Debug.D("Boost 4 : " + (System.nanoTime() - last));
last = System.nanoTime();
boost.add(BoostOf.Permission, Jobs.getPlayerManager().getBoost(player, prog));
Debug.D("Boost 5 : " + (System.nanoTime() - last));
last = System.nanoTime();
boost.add(BoostOf.Global, prog.getBoost());
Debug.D("Boost 6 : " + (System.nanoTime() - last));
last = System.nanoTime();
if (Jobs.getGCManager().useDynamicPayment)
boost.add(BoostOf.Dynamic, new BoostMultiplier().add(prog.getBonus()));
Debug.D("Boost 7 : " + (System.nanoTime() - last));
last = System.nanoTime();
boost.add(BoostOf.Item, Jobs.getPlayerManager().getItemBoost(player.getPlayer(), prog));
Debug.D("Boost 8 : " + (System.nanoTime() - last));
last = System.nanoTime();
boost.add(BoostOf.Area, new BoostMultiplier().add(Jobs.getRestrictedAreaManager().getRestrictedMultiplier(player.getPlayer())));
Debug.D("Boost 9 : " + (System.nanoTime() - last));
last = System.nanoTime();
return boost;
}

View File

@ -55,7 +55,6 @@ public class BlockProtectionManager {
}
public void add(Block block, Integer cd, boolean paid) {
Debug.D("cd: " +cd);
if (cd == null)
return;
if (cd != -1)
@ -99,7 +98,6 @@ public class BlockProtectionManager {
chunks.put(chunk, Bpm);
regions.put(region, chunks);
map.put(loc.getWorld(), regions);
Debug.D("added new " + Bp.getAction());
return Bp;
}

View File

@ -23,6 +23,7 @@ import java.util.Collections;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import org.bukkit.inventory.ItemStack;
@ -156,13 +157,13 @@ public class Job {
now = Jobs.getGCManager().DynamicPaymentMaxBonus;
if (now < Jobs.getGCManager().DynamicPaymentMaxPenalty * -1)
now = Jobs.getGCManager().DynamicPaymentMaxPenalty * -1;
this.bonus = (now / 100);
this.bonus = (now / 100D);
}
public double getBonus() {
if (this.bonus == null)
updateBonus();
return this.bonus == null ? 1D : this.bonus;
return this.bonus == null ? 0D : this.bonus;
}
public List<String> getCmdOnJoin() {

View File

@ -32,6 +32,7 @@ import com.gamingmesh.jobs.Jobs;
import com.gamingmesh.jobs.dao.JobsDAO;
import com.gamingmesh.jobs.resources.jfep.Parser;
import com.gamingmesh.jobs.stuff.ChatColor;
import com.gamingmesh.jobs.stuff.Debug;
import com.gamingmesh.jobs.stuff.Perm;
public class JobsPlayer {

View File

@ -345,25 +345,11 @@ public abstract class JobsDAO {
* @return total amount of player currently working.
*/
public synchronized int getTotalPlayers() {
JobsConnection conn = getConnection();
if (conn == null)
return 0;
int count = 0;
PreparedStatement prest = null;
ResultSet res = null;
try {
prest = conn.prepareStatement("SELECT COUNT(*) FROM `" + prefix + "jobs`;");
res = prest.executeQuery();
while (res.next()) {
count = res.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(res);
close(prest);
int total = 0;
for (Job one : Jobs.getJobs()) {
total += one.getTotalPlayers();
}
return count;
return total;
}
/**
@ -1343,8 +1329,7 @@ public abstract class JobsDAO {
while (res.next()) {
Entry<String, PlayerInfo> info = Jobs.getPlayerManager().getPlayerInfoById(res.getInt("userid"));
if (info == null){
Debug.D("Continue " + res.getInt("userid"));
if (info == null) {
continue;
}

View File

@ -28,42 +28,43 @@ import java.util.logging.Logger;
public class JobsDrivers implements Driver {
private Driver driver;
public JobsDrivers(Driver driver) {
this.driver = driver;
this.driver = driver;
}
@Override
public Connection connect(String url, Properties info) throws SQLException {
return driver.connect(url, info);
return driver.connect(url, info);
}
@Override
public boolean acceptsURL(String url) throws SQLException {
return driver.acceptsURL(url);
return driver.acceptsURL(url);
}
@Override
public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException {
return driver.getPropertyInfo(url, info);
return driver.getPropertyInfo(url, info);
}
@Override
public int getMajorVersion() {
return driver.getMajorVersion();
return driver.getMajorVersion();
}
@Override
public int getMinorVersion() {
return driver.getMinorVersion();
return driver.getMinorVersion();
}
@Override
public boolean jdbcCompliant() {
return driver.jdbcCompliant();
return driver.jdbcCompliant();
}
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
return driver.getParentLogger();
}
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
return driver.getParentLogger();
}
}

View File

@ -247,11 +247,9 @@ public class JobsPaymentListener implements Listener {
//disabling plugin in world
if (event.getBlock() != null && !Jobs.getGCManager().canPerformActionInWorld(event.getBlock().getWorld()))
return;
// remove furnace metadata for broken block
Block block = event.getBlock();
if (block == null)
return;
if (block.getType() == Material.FURNACE && block.hasMetadata(this.furnaceOwnerMetadata))
block.removeMetadata(this.furnaceOwnerMetadata, this.plugin);
@ -334,11 +332,8 @@ public class JobsPaymentListener implements Listener {
if (Jobs.getGCManager().useBlockProtection) {
BlockProtection bp = Jobs.getBpManager().getBp(block.getLocation());
Debug.D("bp is null " + (bp == null));
if (bp == null || bp.getAction() == DBAction.DELETE)
Jobs.getBpManager().add(block, Jobs.getBpManager().getBlockDelayTime(block), false);
// else
// Debug.D("bp is " + bp.getId());
}
JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(player);
@ -803,6 +798,9 @@ public class JobsPaymentListener implements Listener {
pDamager = (Player) e.getDamager();
// Checking if killer is tamed animal
} else if (e.getDamager() instanceof Tameable) {
Tameable t = (Tameable) e.getDamager();
if (t.isTamed() && t.getOwner() instanceof Player)
pDamager = (Player) t.getOwner();
} else if (e.getDamager() instanceof Projectile) {
Projectile pr = (Projectile) e.getDamager();
if (pr.getShooter() instanceof Player)