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

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

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

revision 1530 by torben, Mon Jun 27 16:14:34 2011 UTC revision 1541 by torben, Thu Jun 30 18:37:43 2011 UTC
# Line 1  Line 1 
1  package dk.thoerup.bukkit.hoeruputils.secretdoor;  package dk.thoerup.bukkit.hoeruputils.secretdoor;
2    
3    
4    import java.util.regex.Matcher;
5    import java.util.regex.Pattern;
6    
7  import org.bukkit.block.Block;  import org.bukkit.block.Block;
8    import org.bukkit.entity.Player;
9  import org.bukkit.event.block.BlockBreakEvent;  import org.bukkit.event.block.BlockBreakEvent;
10  import org.bukkit.event.block.BlockListener;  import org.bukkit.event.block.BlockListener;
11  import org.bukkit.event.block.SignChangeEvent;  import org.bukkit.event.block.SignChangeEvent;
# Line 12  import org.bukkit.plugin.Plugin; Line 16  import org.bukkit.plugin.Plugin;
16  public class DoorBlockListener extends BlockListener {  public class DoorBlockListener extends BlockListener {
17    
18    
19          DoorStorage store;          private DoorStorage store;
20          private DoorOpenListener handler;          private DoorOpenListener handler;
21    
22          Plugin plugin;          private Plugin plugin;
23    
24          public DoorBlockListener(Plugin plugin) {          public DoorBlockListener(Plugin plugin) {
25                  this.plugin = plugin;                  this.plugin = plugin;
# Line 35  public class DoorBlockListener extends B Line 39  public class DoorBlockListener extends B
39          public void onBlockBreak(BlockBreakEvent event) {          public void onBlockBreak(BlockBreakEvent event) {
40                  Door door = store.findDoor(event.getBlock().getLocation() );                  Door door = store.findDoor(event.getBlock().getLocation() );
41                  if (door != null) {                  if (door != null) {
42                          event.getPlayer().sendMessage("Secret door broken");                          Player player = event.getPlayer();
43                          store.addDoor(door);                          if ( ! door.getOwner().equals( player.getName() )) {
44    
45                                    Player owner = player.getServer().getPlayer( door.getOwner() );
46    
47                                    if (owner != null) {
48                                            owner.sendMessage("" + player.getName() + " broke one of your secret doors");
49                                    }
50                            }
51                            player.sendMessage("Secret door broken");
52                            store.removeDoor(door);
53                  }                  }
54          }          }
55    
# Line 49  public class DoorBlockListener extends B Line 62  public class DoorBlockListener extends B
62                          // don't react on floor signs                          // don't react on floor signs
63                          return;                          return;
64                  }                  }
65                    
66                    String line0 = event.getLine(0).trim().toLowerCase();
67                    String line1 = event.getLine(1).trim().toLowerCase();
68                    
69                    int width = 2;
70                    int height = 2;
71    
72                  if (event.getLine(0).toLowerCase().equals("secretdoor") ) {                  if (line0.equals("secretdoor") ) {
73                          Door door = new Door(sign);                          if ( ! line1.equals("")) {
74                                    Pattern p = Pattern.compile("^[0-9]x[0-9]$");
75                                    Matcher m = p.matcher(line1);
76                                    
77                                    if ( !m.matches() ) {
78                                            event.getPlayer().sendMessage("The second line must be of the format [width]x[height]");
79                                            return;
80                                    }
81                                    
82                                    String parts[] = line1.split("x");
83                                    width = Integer.parseInt( parts[0] );
84                                    height = Integer.parseInt( parts[1] );
85                                    
86                                    if (width <1 || width>8) {
87                                            event.getPlayer().sendMessage("width must be between 1 and 8 (inclusive)");
88                                            return;
89                                    }
90                                    if (height <2 || height>5) {
91                                            event.getPlayer().sendMessage("height must be between 2 and 5 (inclusive)");
92                                            return;
93                                    }
94                            }
95                            try {
96                                    Door door = new Door(sign, width, height, store, event.getPlayer().getName() );
97    
98                          store.addDoor(door);                                  store.addDoor(door);
99    
100                          event.getPlayer().sendMessage("Secret door created");                                  event.getPlayer().sendMessage("Secret door created");
101                                    
102                          sign.setTypeId(0);                                  sign.setTypeId(0);
103                            } catch (ConflictingDoorException e) {
104                                    event.getPlayer().sendMessage("Door conflicts whith another secretdoor");
105                            }
106    
107                                                    
108                  }                  }

Legend:
Removed from v.1530  
changed lines
  Added in v.1541

  ViewVC Help
Powered by ViewVC 1.1.20