108 lines
2.8 KiB
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();
|
|
}
|
|
}
|
|
|
|
} |