summaryrefslogtreecommitdiff
path: root/src/main/java/com/redstoner/modules/crashutils/CrashUtils.java
blob: eb9590f633046a4dae34a8d52bf2a92a2b3f4df0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.redstoner.modules.crashutils;

import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

@Commands (CommandHolderType.File)
@AutoRegisterListener
@Version (major = 5, minor = 0, revision = 0, compatible = 4)
public class CrashUtils implements Module {

	@Command (hook = "findnear", async = Command.AsyncType.ALWAYS)
	public boolean findNear(CommandSender sender, int range, String block) {
		Player player = (Player) sender;

		Material mat = Material.matchMaterial(block);

		if (mat == null) {
			getLogger().message(sender, true, block + " is not a valid block.");
			return true;
		}

		Location playerLoc = player.getLocation();

		for (int x = playerLoc.getBlockX() - range; x < playerLoc.getBlockX() + range; x++) {
			for (int z = playerLoc.getBlockZ() - range; z < playerLoc.getBlockZ() + range; z++) {
				for (int y = 0; y < 256; y++) {
					Block b = player.getWorld().getBlockAt(x, y, z);

					if (b.getType() == mat) {
						Location loc = b.getLocation();
						getLogger().message(
								sender,
								false,
								String.format("Found %s @ %d %d %d", mat.toString(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
					}
				}
			}
		}

		getLogger().message(sender, false, String.format("Done searching for %s in a %d block radius.", mat.toString(), range));

		return true;
	}
}