Package org.mcsg.survivalgames.stats

Source Code of org.mcsg.survivalgames.stats.PlayerStatsSession

package org.mcsg.survivalgames.stats;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;

import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.mcsg.survivalgames.GameManager;
import org.mcsg.survivalgames.SettingsManager;



public class PlayerStatsSession {


    public Player player;
    public int kills = 0,death = 0,gameno, arenaid, points = 0;
    public int finish = 0;
    long time = 0;
    int ksbon = 0;
    long lastkill = 0;
    int kslevel  = 0;
    int score = 0;
    int position = 0;
    int pppoints = 0;

    private ArrayList<Player>killed = new ArrayList<Player>();


    private HashMap<Integer, Integer>kslist = new HashMap<Integer, Integer>();







    public PlayerStatsSession(Player p, int arenaid ){
        this.player = p;
        this.arenaid = arenaid;


        kslist.put(1, 0);
        kslist.put(2, 0);
        kslist.put(3, 0);
        kslist.put(4, 0);
        kslist.put(5, 0);


    }

    public void setGameID(int gameid){
        this.gameno = gameid;
    }


    public int addKill(Player p){
        killed.add(p);
        kills++;
        checkKS();
        lastkill = new Date().getTime();
        return kslevel;
    }

    public void win(long time){
        position = 1;
        this.time  = time;
    }

    public void died(int pos, long time){
        this.time = time;
        death=1;
        position = pos;
        pppoints = GameManager.getInstance().getGame(arenaid).getInactivePlayers();
    }

    public void setTime(long time){
        this.time = time;
    }

    public void addkillStreak(int ks){

        ksbon = ksbon + ( SettingsManager.getInstance().getConfig().getInt("stats.points.killstreak.base") * (SettingsManager.getInstance().getConfig().getInt("stats.points.killstreak.multiplier") + ks));
        int level = ks;
        if(level>5)level = 5;
        kslist.put(level, kslist.get(level)+1);
        if(level < 4){
            for(Player p: GameManager.getInstance().getGame(arenaid).getAllPlayers()){
                p.sendMessage(SettingsManager.getInstance().getConfig().getString("stats.killstreak.level"+level).replace("{player}", player.getName()).replaceAll("(&([a-fk-or0-9]))", "\u00A7$2"));
            }
        }
        else{
            Bukkit.getServer().broadcastMessage(SettingsManager.getInstance().getConfig().getString("stats.killstreak.level"+level).replace("{player}", player.getName()).replaceAll("(&([a-fk-or0-9]))", "\u00A7$2"));
        }
        lastkill = new Date().getTime();


    }



    public void calcPoints(){
        FileConfiguration c = SettingsManager.getInstance().getConfig();
        int kpoints = kills * c.getInt("stats.points.kill");
        int ppoints = pppoints * c.getInt("stats.points.position");
        int kspoints = ksbon;

        points = kpoints + ppoints + kspoints + ksbon;
        //System.out.println(player+"  "+kpoints +" "+ppoints+" "+kspoints);

        if(position == 1){
            points = points + c.getInt("stats.points.win");
        }

    }

    public boolean checkKS(){
        if(15000 > new Date().getTime() - lastkill){
            kslevel++;
            addkillStreak(kslevel);

            return true;
        }

        kslevel = 0;
        return false;
    }


    public String createQuery(){
        calcPoints();
        String query= "INSERT INTO "+SettingsManager.getSqlPrefix()+"playerstats VALUES(NULL,";
        query = query + gameno+","+/*SettingsManager.getInstance().getConfig().getString("sql.server-prefix")+*/arenaid+",'"+player.getName()+"',"+points+","+position+","+kills+","+death+",";
        String killeds = "'";
        for(Player p:killed){
            killeds = killeds + ((killeds.length()>2)?":":"")+p.getName();
        }
        // killeds = killeds.replaceFirst(":", "");
        query = query + killeds +"',"+time;
        query = query + ","+kslist.get(1)+ ","+kslist.get(2)+ ","+kslist.get(3)+ ","+kslist.get(4)+ ","+kslist.get(5)+")";


       // System.out.println(query);

        return query;

    }

}
TOP

Related Classes of org.mcsg.survivalgames.stats.PlayerStatsSession

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.