mirror of
https://github.com/exituser/Brewery.git
synced 2026-09-17 06:38:56 +00:00
@@ -12,84 +12,87 @@ import org.bukkit.configuration.ConfigurationSection;
|
||||
import com.dre.brewery.Brew;
|
||||
|
||||
public class BPlayer {
|
||||
public static Map<String,BPlayer> players=new HashMap<String,BPlayer>();//Players name and BPlayer
|
||||
public static Map<String, BPlayer> players = new HashMap<String, BPlayer>();// Players
|
||||
// name
|
||||
// and
|
||||
// BPlayer
|
||||
|
||||
private int quality = 0;// = quality of drunkeness * drunkeness
|
||||
private int drunkeness = 0;// = amount of drunkeness
|
||||
private Vector push = new Vector(0,0,0);
|
||||
private Vector push = new Vector(0, 0, 0);
|
||||
private int time = 20;
|
||||
|
||||
public BPlayer(){
|
||||
public BPlayer() {
|
||||
}
|
||||
|
||||
//reading from file
|
||||
public BPlayer(String name,int quality,int drunkeness){
|
||||
// reading from file
|
||||
public BPlayer(String name, int quality, int drunkeness) {
|
||||
this.quality = quality;
|
||||
this.drunkeness = drunkeness;
|
||||
players.put(name,this);
|
||||
players.put(name, this);
|
||||
}
|
||||
|
||||
|
||||
public static BPlayer get(String name){
|
||||
if(!players.isEmpty()){
|
||||
if(players.containsKey(name)){
|
||||
public static BPlayer get(String name) {
|
||||
if (!players.isEmpty()) {
|
||||
if (players.containsKey(name)) {
|
||||
return players.get(name);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//returns true if drinking was successful
|
||||
public static boolean drink(int uid,String name){
|
||||
// returns true if drinking was successful
|
||||
public static boolean drink(int uid, String name) {
|
||||
Brew brew = Brew.get(uid);
|
||||
if(brew != null){
|
||||
if (brew != null) {
|
||||
BPlayer bPlayer = get(name);
|
||||
if(bPlayer == null){
|
||||
if (bPlayer == null) {
|
||||
bPlayer = new BPlayer();
|
||||
players.put(name,bPlayer);
|
||||
players.put(name, bPlayer);
|
||||
}
|
||||
bPlayer.drunkeness += brew.getAlcohol();
|
||||
bPlayer.quality += brew.getQuality() * brew.getAlcohol();
|
||||
P.p.log(name+" ist nun "+bPlayer.drunkeness+"% betrunken, mit einer Qualität von "+bPlayer.getQuality());
|
||||
P.p.log(name + " ist nun " + bPlayer.drunkeness + "% betrunken, mit einer Qualität von " + bPlayer.getQuality());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//push the player around if he moves
|
||||
public static void playerMove(PlayerMoveEvent event){
|
||||
// push the player around if he moves
|
||||
public static void playerMove(PlayerMoveEvent event) {
|
||||
BPlayer bPlayer = get(event.getPlayer().getName());
|
||||
if(bPlayer != null){
|
||||
if (bPlayer != null) {
|
||||
bPlayer.move(event);
|
||||
}
|
||||
}
|
||||
|
||||
//player is drunk
|
||||
public void move(PlayerMoveEvent event){
|
||||
//has player more alc than 10
|
||||
if(drunkeness >= 10){
|
||||
if(drunkeness <= 100){
|
||||
if(time > 1){
|
||||
// player is drunk
|
||||
public void move(PlayerMoveEvent event) {
|
||||
// has player more alc than 10
|
||||
if (drunkeness >= 10) {
|
||||
if (drunkeness <= 100) {
|
||||
if (time > 1) {
|
||||
time--;
|
||||
} else {
|
||||
//Is he moving
|
||||
if(event.getFrom().getX() != event.getTo().getX() || event.getFrom().getZ() != event.getTo().getZ()){
|
||||
// Is he moving
|
||||
if (event.getFrom().getX() != event.getTo().getX() || event.getFrom().getZ() != event.getTo().getZ()) {
|
||||
Player player = event.getPlayer();
|
||||
Entity entity = (Entity) player;
|
||||
//not in midair
|
||||
if(entity.isOnGround()){
|
||||
// not in midair
|
||||
if (entity.isOnGround()) {
|
||||
time--;
|
||||
if(time == 0){
|
||||
//push him only to the side? or any direction like now
|
||||
if (time == 0) {
|
||||
// push him only to the side? or any direction
|
||||
// like now
|
||||
push.setX(Math.random() - 0.5);
|
||||
push.setZ(Math.random() - 0.5);
|
||||
player.setVelocity(push);
|
||||
} else if (time < 0 && time > -10){
|
||||
//push him some more in the same direction
|
||||
} else if (time < 0 && time > -10) {
|
||||
// push him some more in the same direction
|
||||
player.setVelocity(push);
|
||||
} else {
|
||||
//when more alc, push him more often
|
||||
time = (int)(Math.random() * (201.0 - (drunkeness * 2)));
|
||||
// when more alc, push him more often
|
||||
time = (int) (Math.random() * (201.0 - (drunkeness * 2)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -98,22 +101,22 @@ public class BPlayer {
|
||||
}
|
||||
}
|
||||
|
||||
//decreasing drunkeness over time
|
||||
public static void onUpdate(){
|
||||
if(!players.isEmpty()){
|
||||
for(BPlayer bplayer:players.values()){
|
||||
// decreasing drunkeness over time
|
||||
public static void onUpdate() {
|
||||
if (!players.isEmpty()) {
|
||||
for (BPlayer bplayer : players.values()) {
|
||||
bplayer.drunkeness -= 2;
|
||||
if(bplayer.drunkeness <= 0){
|
||||
if (bplayer.drunkeness <= 0) {
|
||||
players.remove(bplayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//save all data
|
||||
public static void save(ConfigurationSection config){
|
||||
if(!players.isEmpty()){
|
||||
for(String name:players.keySet()){
|
||||
// save all data
|
||||
public static void save(ConfigurationSection config) {
|
||||
if (!players.isEmpty()) {
|
||||
for (String name : players.keySet()) {
|
||||
ConfigurationSection section = config.createSection(name);
|
||||
section.set("quality", players.get(name).quality);
|
||||
section.set("drunk", players.get(name).drunkeness);
|
||||
@@ -121,15 +124,13 @@ public class BPlayer {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//getter
|
||||
public int getDrunkeness(){
|
||||
// getter
|
||||
public int getDrunkeness() {
|
||||
return drunkeness;
|
||||
}
|
||||
|
||||
public int getQuality(){
|
||||
public int getQuality() {
|
||||
return Math.round(quality / drunkeness);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user