/* * IDK Game Server by Steve Winfield * https://github.com/WinfieldSteve */ package org.stevewinfield.suja.idk.communication.room.readers; import org.apache.log4j.Logger; import org.stevewinfield.suja.idk.Bootloader; import org.stevewinfield.suja.idk.communication.IMessageReader; import org.stevewinfield.suja.idk.communication.MessageReader; import org.stevewinfield.suja.idk.communication.room.writers.RoomRatingInfoWriter; import org.stevewinfield.suja.idk.game.rooms.RoomInstance; import org.stevewinfield.suja.idk.network.sessions.Session; import java.sql.SQLException; public class RateRoomReader implements IMessageReader { private static final Logger logger = Logger.getLogger(RateRoomReader.class); @Override public void parse(final Session session, final MessageReader reader) { if (!session.isAuthenticated() || !session.isInRoom()) { return; } final RoomInstance room = Bootloader.getGame().getRoomManager().getLoadedRoomInstance(session.getRoomId()); if (room == null || room.getInformation().getOwnerId() == session.getPlayerInstance().getInformation().getId() || room.getVotes().contains(session.getPlayerInstance().getInformation().getId())) { return; } room.getVotes().add(session.getPlayerInstance().getInformation().getId()); try { Bootloader.getStorage() .queryParams("INSERT INTO room_votes (room_id, player_id) VALUES (" + room.getInformation().getId() + ", " + session.getPlayerInstance().getInformation().getId() + ")" ).execute(); } catch (final SQLException e) { logger.error("SQL Exception", e); } room.getInformation().setScore(room.getInformation().getScore() + 1); session.writeMessage(new RoomRatingInfoWriter(room.getInformation().getScore())); } }