/[projects]/miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/message/MessageWrapper.java
ViewVC logotype

Contents of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/message/MessageWrapper.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1768 - (show annotations) (download)
Tue Apr 3 20:21:02 2012 UTC (12 years, 1 month ago) by torben
File size: 2029 byte(s)
Added SnitchingChest feature (still missing persistance)
Added offLine message functionality with persistance to mysql via JPA /Ebean
1 package dk.thoerup.bukkit.hoeruputils.message;
2
3 import java.util.List;
4 import java.util.logging.Level;
5
6 import javax.persistence.PersistenceException;
7
8 import org.bukkit.OfflinePlayer;
9 import org.bukkit.entity.Player;
10 import org.bukkit.event.EventHandler;
11 import org.bukkit.event.Listener;
12 import org.bukkit.event.player.PlayerLoginEvent;
13 import org.bukkit.plugin.Plugin;
14 import org.bukkit.scheduler.BukkitScheduler;
15
16 import com.avaje.ebean.EbeanServer;
17
18 public class MessageWrapper implements Listener {
19
20 EbeanServer server;
21 Plugin plugin;
22
23
24 public MessageWrapper(Plugin plugin, Runnable installer) {
25 this.plugin = plugin;
26 server = plugin.getDatabase();
27
28 try {
29 server.find(MessageBean.class).findRowCount(); //probe
30 } catch (Exception e) {
31
32 installer.run();
33 }
34
35 }
36
37 @EventHandler
38 public void onPlayerLogin(final PlayerLoginEvent event) {
39
40 Runnable messagehandler = new Runnable() {
41 @Override
42 public void run() {
43 Player player = event.getPlayer();
44 List<MessageBean> beans = server.find( MessageBean.class)
45 .where()
46 .eq("player", player.getName() )
47 .eq("isread", 0)
48 .findList();
49
50 for(MessageBean msg : beans) {
51 player.sendMessage( msg.getMessage() );
52 msg.setIsread(true);
53 server.save(msg);
54 }
55 }
56 };
57
58 BukkitScheduler sched = plugin.getServer().getScheduler();
59 sched.scheduleSyncDelayedTask(plugin, messagehandler, 20*4);
60
61 }
62
63 public void sendMessage(OfflinePlayer player, String message) {
64 if (player.isOnline()) {
65 Player online = (Player) player;
66 online.sendMessage(message);
67 } else {
68 queueMessage(player.getName(), message);
69 }
70 }
71
72 protected void queueMessage(String player, String message) {
73
74 MessageBean msg = new MessageBean();
75 msg.setPlayer(player);
76 msg.setMessage(message);
77 msg.setCreatetimeNow();
78 try {
79 server.save(msg);
80 } catch (PersistenceException e) {
81 plugin.getLogger().log(Level.SEVERE, "MessageWrapper.queueMessage() failed:" + e.getMessage() );
82 }
83
84
85 }
86
87 }

  ViewVC Help
Powered by ViewVC 1.1.20