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

Diff of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/RespawnHandler.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1237 by torben, Sun Mar 20 16:23:13 2011 UTC revision 1238 by torben, Tue Mar 22 18:39:02 2011 UTC
# Line 1  Line 1 
1  package dk.thoerup.bukkit.hoeruputils;  package dk.thoerup.bukkit.hoeruputils;
2    
3    
4    import java.io.File;
5    import java.io.RandomAccessFile;
6    import java.util.ArrayList;
7    import java.util.List;
8    import java.util.Random;
9    
10    import org.bukkit.ChatColor;
11  import org.bukkit.Server;  import org.bukkit.Server;
12  import org.bukkit.entity.Player;  import org.bukkit.entity.Player;
13    import org.bukkit.event.entity.EntityDeathEvent;
14    import org.bukkit.event.entity.EntityListener;
15  import org.bukkit.event.player.PlayerListener;  import org.bukkit.event.player.PlayerListener;
16  import org.bukkit.event.player.PlayerRespawnEvent;  import org.bukkit.event.player.PlayerRespawnEvent;
17  import org.bukkit.inventory.ItemStack;  import org.bukkit.inventory.ItemStack;
# Line 10  import org.bukkit.plugin.Plugin; Line 19  import org.bukkit.plugin.Plugin;
19    
20  public class RespawnHandler extends PlayerListener{  public class RespawnHandler extends PlayerListener{
21                    
22            
23            
24          Plugin plugin;          Plugin plugin;
25          public RespawnHandler(Plugin plugin) {          public RespawnHandler(Plugin plugin) {
26                  this.plugin = plugin;                  this.plugin = plugin;
27          }          }
28            
29            public static class PlayerDeathListener extends EntityListener {
30                    List<String> msgs = new ArrayList<String>();
31                    Random rand = new Random();
32                    
33                    public PlayerDeathListener(File dataFolder) {
34                            if (!dataFolder.exists()) {
35                                    dataFolder.mkdir();
36                            }
37                            
38                            try {
39                                    File msgfile = new File( dataFolder.getAbsolutePath() + File.separator + "deaths.txt");
40                                    if (msgfile.exists()) {
41                                            RandomAccessFile raf = new RandomAccessFile(msgfile,"r");
42                                            
43                                            
44                                            String line;
45                                            while ( (line=raf.readLine()) != null) {
46                                                    
47                                                    line = line.trim();
48                                                    if (line.startsWith("#")) {
49                                                            continue;
50                                                    }
51                                                    if (line.length() > 0) {
52                                                            msgs.add(line);
53                                                    }
54                                            }
55                                            raf.close();
56                                            
57                                    } else {
58                                            String defaultMsg = "is pushing up the daisies";
59                                            
60                                            RandomAccessFile raf = new RandomAccessFile(msgfile,"rw");
61                                            raf.writeBytes(defaultMsg);
62                                            raf.close();
63                                            msgs.add(defaultMsg);
64                                    }
65                            } catch (Exception e) {
66                                    System.out.println("PlayerDeathListener failed to handle file: " + e.toString() );
67                            }
68                            System.out.println("HoerupUtils loaded " + msgs.size() + " death messages");
69                    }
70    
71                    @Override
72                    public void onEntityDeath(EntityDeathEvent event) {
73                            super.onEntityDeath(event);
74                            if (event.getEntity() instanceof Player) {
75                                    Player player = (Player) event.getEntity();
76                                    String msg = msgs.get( rand.nextInt(msgs.size()) );
77                                    
78                                    player.getServer().broadcastMessage( "" + ChatColor.YELLOW + player.getName() + " " + msg);                    
79                            }
80                    }
81                    
82            }
83    
84          class DelayedRespawnHandler implements Runnable {          class DelayedRespawnHandler implements Runnable {
85    
# Line 25  public class RespawnHandler extends Play Line 91  public class RespawnHandler extends Play
91                                    
92                  @Override                  @Override
93                  public void run() {                  public void run() {
                         player.getServer().broadcastMessage( "" + player.getName() + " respawned after a gruesome death");                        
   
94                                                    
95                          if (player.isOnline()) {                          if (player.isOnline()) {
96                                                                    

Legend:
Removed from v.1237  
changed lines
  Added in v.1238

  ViewVC Help
Powered by ViewVC 1.1.20