/[projects]/miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/deprecated/RespanHandler.java_
ViewVC logotype

Annotation of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/deprecated/RespanHandler.java_

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1492 - (hide annotations) (download)
Tue May 31 16:46:01 2011 UTC (13 years ago) by torben
Original Path: miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/RespawnHandler.java
File size: 3757 byte(s)
disable care-package on respawn
1 torben 1236 package dk.thoerup.bukkit.hoeruputils;
2    
3    
4 torben 1238 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 torben 1236 import org.bukkit.Server;
12     import org.bukkit.entity.Player;
13 torben 1238 import org.bukkit.event.entity.EntityDeathEvent;
14     import org.bukkit.event.entity.EntityListener;
15 torben 1236 import org.bukkit.event.player.PlayerListener;
16     import org.bukkit.event.player.PlayerRespawnEvent;
17     import org.bukkit.inventory.ItemStack;
18     import org.bukkit.plugin.Plugin;
19    
20     public class RespawnHandler extends PlayerListener{
21    
22 torben 1238
23    
24 torben 1236 Plugin plugin;
25     public RespawnHandler(Plugin plugin) {
26     this.plugin = plugin;
27     }
28 torben 1238
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 torben 1236
71 torben 1238 @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 torben 1236 class DelayedRespawnHandler implements Runnable {
85    
86    
87     private Player player;
88     public DelayedRespawnHandler(Player player) {
89     this.player = player;
90     }
91    
92     @Override
93     public void run() {
94    
95     if (player.isOnline()) {
96    
97     /* This doesn't work yet
98     PlayerInventory inv = player.getInventory();
99     inv.addItem( new ItemStack(50,16) ); //torches
100     inv.addItem( new ItemStack(271,1)); //tools
101     inv.addItem( new ItemStack(272,1));
102     inv.addItem( new ItemStack(273,1));
103    
104     inv.setChestplate( new ItemStack(299) );
105     player.updateInventory(); //what comes instead of this ??
106     */
107    
108    
109     player.getWorld().dropItem(player.getLocation(), new ItemStack(50,16) );
110    
111     player.getWorld().dropItem(player.getLocation(), new ItemStack(272,1) );
112     player.getWorld().dropItem(player.getLocation(), new ItemStack(273,1) );
113     player.getWorld().dropItem(player.getLocation(), new ItemStack(274,1) );
114    
115    
116     player.getWorld().dropItem(player.getLocation(), new ItemStack(299,1) );
117    
118     player.sendMessage("You have been given a basic care-package");
119     } else {
120     player.sendMessage("You have are not online !?!");
121     }
122     }
123    
124     }
125    
126     @Override
127     public void onPlayerRespawn(PlayerRespawnEvent event) {
128     super.onPlayerRespawn(event);
129    
130     Player player = event.getPlayer();
131     Server server = player.getServer();
132    
133 torben 1492 //disable care package until we can differentiate between onDeath respawn and respawn fired by netherportals
134     //server.getScheduler().scheduleSyncDelayedTask(plugin, new DelayedRespawnHandler(player), 1*20);
135 torben 1236
136     }
137    
138     }

  ViewVC Help
Powered by ViewVC 1.1.20