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

Annotation 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 1803 - (hide annotations) (download)
Mon May 28 14:32:53 2012 UTC (12 years ago) by torben
File size: 2192 byte(s)
offline messages should also register the sender
1 torben 1768 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 torben 1803 import java.sql.Timestamp;
19    
20 torben 1768 public class MessageWrapper implements Listener {
21    
22     EbeanServer server;
23     Plugin plugin;
24    
25    
26     public MessageWrapper(Plugin plugin, Runnable installer) {
27     this.plugin = plugin;
28     server = plugin.getDatabase();
29    
30     try {
31     server.find(MessageBean.class).findRowCount(); //probe
32     } catch (Exception e) {
33    
34     installer.run();
35     }
36    
37     }
38    
39     @EventHandler
40     public void onPlayerLogin(final PlayerLoginEvent event) {
41 torben 1772 final Player player = event.getPlayer();
42 torben 1768
43     Runnable messagehandler = new Runnable() {
44     @Override
45 torben 1772 public void run() {
46 torben 1768 List<MessageBean> beans = server.find( MessageBean.class)
47     .where()
48     .eq("player", player.getName() )
49     .eq("isread", 0)
50     .findList();
51    
52     for(MessageBean msg : beans) {
53     player.sendMessage( msg.getMessage() );
54     msg.setIsread(true);
55 torben 1803 msg.setReadtime( new Timestamp(System.currentTimeMillis()) );
56 torben 1768 server.save(msg);
57     }
58     }
59     };
60    
61     BukkitScheduler sched = plugin.getServer().getScheduler();
62     sched.scheduleSyncDelayedTask(plugin, messagehandler, 20*4);
63    
64     }
65    
66 torben 1803 public void sendMessage(String from, OfflinePlayer player, String message) {
67 torben 1768 if (player.isOnline()) {
68     Player online = (Player) player;
69     online.sendMessage(message);
70     } else {
71 torben 1803 queueMessage(from, player.getName(), message);
72 torben 1768 }
73     }
74    
75 torben 1803 protected void queueMessage(String from, String player, String message) {
76 torben 1768
77     MessageBean msg = new MessageBean();
78 torben 1803 msg.setFromplayer(from);
79 torben 1768 msg.setPlayer(player);
80     msg.setMessage(message);
81 torben 1803 msg.setCreatetimeNow();;
82 torben 1768 try {
83     server.save(msg);
84     } catch (PersistenceException e) {
85     plugin.getLogger().log(Level.SEVERE, "MessageWrapper.queueMessage() failed:" + e.getMessage() );
86     }
87    
88    
89     }
90    
91     }

  ViewVC Help
Powered by ViewVC 1.1.20