Lobby/src/main/java/eu/univento/lobby/listeners/FoundItems.java

108 lines
2.8 KiB
Java

package eu.univento.lobby.listeners;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import eu.univento.core.api.languages.Messages;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerPickupItemEvent;
import eu.univento.core.Core;
import eu.univento.core.api.database.MySQL;
import eu.univento.core.api.Title;
import eu.univento.core.api.player.CustomPlayer;
/**
* handels all posible easter eggs
* @author joethei
* @version 0.1
*/
public class FoundItems implements Listener{
/**
* handels item pickup
* @param e PlayerPickupItemEvent
*/
@EventHandler
public void onItemPickup(PlayerPickupItemEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
Messages msgs = new Messages(p);
if(e.getItem().getItemStack().getType() == Material.RECORD_3) {
if(!hasFound("music_3", p)) {
setFound("music_3", p);
Title.sendTitle(p, 5, 5, 5, msgs.Lobby_FOUND_ITEM_PREFIX(), "Music_3");
p.addExperience(5);
}
}
if(e.getItem().getItemStack().getType() == Material.SUGAR) {
if(!hasFound("sugar", p)) {
setFound("sugar", p);
Title.sendTitle(p, 5, 5, 5, msgs.Lobby_FOUND_ITEM_PREFIX(), "Sugar");
p.addExperience(5);
}
}
if(e.getItem().getItemStack().getType() == Material.RED_ROSE) {
if(!hasFound("hearts", p)) {
setFound("hearts", p);
Title.sendTitle(p, 5, 5, 5, msgs.Lobby_FOUND_ITEM_PREFIX(), "Hearts");
p.addExperience(3);
}
}
if(e.getItem().getItemStack().getType() == Material.FEATHER) {
if(!hasFound("feather", p)) {
setFound("feather", p);
Title.sendTitle(p, 5, 5, 5, msgs.Lobby_FOUND_ITEM_PREFIX(), "Feather");
}
}
e.setCancelled(true);
}
/**
* checks if player has found item
* @param item name of item
* @param p CustomPlayer
* @return boolean
*/
public static boolean hasFound(String item, CustomPlayer p) {
int id = 8;
MySQL sql = Core.getMySQL();
try {
sql.openConnection();
PreparedStatement st = sql.getConnection().prepareStatement("SELECT * FROM FoundItems WHERE ID='" + id + "';");
ResultSet rs = st.executeQuery();
if(rs.next()) {
boolean has = rs.getInt(item) == 1;
sql.closeConnection();
return has;
}else{
return false;
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
return false;
}
}
/**
* sets item to found
* @param item name of item
* @param p CustomPlayer
*/
void setFound(String item, CustomPlayer p) {
int id = 8;
MySQL sql = Core.getMySQL();
try {
sql.openConnection();
PreparedStatement st = sql.getConnection().prepareStatement("UPDATE FoundItems SET " + item + "='1' WHERE ID='" + id + "';");
st.execute();
sql.closeConnection();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}