Guest User

Untitled

a guest
Jul 21st, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. package net.tobyp.bukkit.gamemodes;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import javax.persistence.PersistenceException;
  7.  
  8. import org.bukkit.event.EventHandler;
  9. import org.bukkit.event.Listener;
  10. import org.bukkit.event.player.PlayerGameModeChangeEvent;
  11. import org.bukkit.event.player.PlayerJoinEvent;
  12. import org.bukkit.plugin.java.JavaPlugin;
  13.  
  14. public class GamemodesPlugin extends JavaPlugin implements Listener
  15. {
  16. @Override
  17. public void onEnable()
  18. {
  19. try { getDatabase().find(GamemodeStore.class).findRowCount(); }
  20. catch (PersistenceException ex) { installDDL(); }
  21.  
  22. getServer().getPluginManager().registerEvents(this, this);
  23.  
  24. super.onEnable();
  25. }
  26.  
  27. @Override
  28. public List<Class<?>> getDatabaseClasses()
  29. {
  30. ArrayList<Class<?>> al = new ArrayList<Class<?>>();
  31. al.add(GamemodeStore.class);
  32. return al;
  33. }
  34.  
  35. @EventHandler
  36. public void onGamemode(PlayerGameModeChangeEvent pgmce)
  37. {
  38. GamemodeStore gms = GamemodeStore.get_store(pgmce.getPlayer(), getDatabase());
  39. gms.set_gamemode(pgmce.getNewGameMode());
  40. gms.save(getDatabase());
  41. }
  42.  
  43. @EventHandler
  44. public void onLogin(PlayerJoinEvent pje)
  45. {
  46. if (pje.getPlayer().hasPermission("gamemodes.keep"))
  47. {
  48. GamemodeStore gms = GamemodeStore.get_store(pje.getPlayer(), getDatabase());
  49. pje.getPlayer().setGameMode(gms.get_gamemode());
  50. }
  51. }
  52. }
  53.  
  54. #############################################################################
  55.  
  56.  
  57. package net.tobyp.bukkit.gamemodes;
  58.  
  59. import java.util.logging.Logger;
  60.  
  61. import javax.persistence.Basic;
  62. import javax.persistence.Entity;
  63. import javax.persistence.Id;
  64. import javax.persistence.Table;
  65.  
  66. import org.bukkit.GameMode;
  67. import org.bukkit.entity.Player;
  68.  
  69. import com.avaje.ebean.EbeanServer;
  70.  
  71. @Entity
  72. @Table(name="gm_store")
  73. public class GamemodeStore
  74. {
  75. public int getGamemode() { return gamemode; }
  76. public void setGamemode(int gamemode) { this.gamemode = gamemode; }
  77. public String getPlayer() { return player; }
  78. public void setPlayer(String player) { this.player = player; }
  79.  
  80. @Basic public int gamemode;
  81. @Id
  82. public String player;
  83.  
  84. public static GamemodeStore get_store(Player player, EbeanServer srv)
  85. {
  86. GamemodeStore gms = srv.find(GamemodeStore.class).where().ieq("player", player.getName()).findUnique();
  87. if (gms == null)
  88. {
  89. gms = new GamemodeStore();
  90. gms.player = player.getName();
  91. gms.gamemode = player.getGameMode().getValue();
  92. gms.save(srv);
  93. }
  94. return gms;
  95. }
  96.  
  97. public void save(EbeanServer srv)
  98. {
  99. Logger.getLogger("Minecraft").info(this.player + " " + Integer.toString(this.gamemode) + " saved!");
  100. srv.save(this);
  101. }
  102.  
  103. public GameMode get_gamemode()
  104. {
  105. Logger.getLogger("Minecraft").info(this.player + " get " + Integer.toString(this.gamemode));
  106. return GameMode.getByValue(this.gamemode);
  107. }
  108.  
  109. public void set_gamemode(GameMode gm)
  110. {
  111. this.gamemode = gm.getValue();
  112. Logger.getLogger("Minecraft").info(this.player + " set " + Integer.toString(this.gamemode));
  113. }
  114. }
Add Comment
Please, Sign In to add comment