Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.tobyp.bukkit.gamemodes;
- import java.util.ArrayList;
- import java.util.List;
- import javax.persistence.PersistenceException;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerGameModeChangeEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- public class GamemodesPlugin extends JavaPlugin implements Listener
- {
- @Override
- public void onEnable()
- {
- try { getDatabase().find(GamemodeStore.class).findRowCount(); }
- catch (PersistenceException ex) { installDDL(); }
- getServer().getPluginManager().registerEvents(this, this);
- super.onEnable();
- }
- @Override
- public List<Class<?>> getDatabaseClasses()
- {
- ArrayList<Class<?>> al = new ArrayList<Class<?>>();
- al.add(GamemodeStore.class);
- return al;
- }
- @EventHandler
- public void onGamemode(PlayerGameModeChangeEvent pgmce)
- {
- GamemodeStore gms = GamemodeStore.get_store(pgmce.getPlayer(), getDatabase());
- gms.set_gamemode(pgmce.getNewGameMode());
- gms.save(getDatabase());
- }
- @EventHandler
- public void onLogin(PlayerJoinEvent pje)
- {
- if (pje.getPlayer().hasPermission("gamemodes.keep"))
- {
- GamemodeStore gms = GamemodeStore.get_store(pje.getPlayer(), getDatabase());
- pje.getPlayer().setGameMode(gms.get_gamemode());
- }
- }
- }
- #############################################################################
- package net.tobyp.bukkit.gamemodes;
- import java.util.logging.Logger;
- import javax.persistence.Basic;
- import javax.persistence.Entity;
- import javax.persistence.Id;
- import javax.persistence.Table;
- import org.bukkit.GameMode;
- import org.bukkit.entity.Player;
- import com.avaje.ebean.EbeanServer;
- @Entity
- @Table(name="gm_store")
- public class GamemodeStore
- {
- public int getGamemode() { return gamemode; }
- public void setGamemode(int gamemode) { this.gamemode = gamemode; }
- public String getPlayer() { return player; }
- public void setPlayer(String player) { this.player = player; }
- @Basic public int gamemode;
- @Id
- public String player;
- public static GamemodeStore get_store(Player player, EbeanServer srv)
- {
- GamemodeStore gms = srv.find(GamemodeStore.class).where().ieq("player", player.getName()).findUnique();
- if (gms == null)
- {
- gms = new GamemodeStore();
- gms.player = player.getName();
- gms.gamemode = player.getGameMode().getValue();
- gms.save(srv);
- }
- return gms;
- }
- public void save(EbeanServer srv)
- {
- Logger.getLogger("Minecraft").info(this.player + " " + Integer.toString(this.gamemode) + " saved!");
- srv.save(this);
- }
- public GameMode get_gamemode()
- {
- Logger.getLogger("Minecraft").info(this.player + " get " + Integer.toString(this.gamemode));
- return GameMode.getByValue(this.gamemode);
- }
- public void set_gamemode(GameMode gm)
- {
- this.gamemode = gm.getValue();
- Logger.getLogger("Minecraft").info(this.player + " set " + Integer.toString(this.gamemode));
- }
- }
Add Comment
Please, Sign In to add comment