123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- /*
- /hawkeye search <parameters>
- Parameters Examples:
- p:marvinius,MentorMentos
- t:30d,4h,20m
- r:10
- e:block_break,block_place
- */
- event.load("block_break");
- event.load("block_place");
- event.load("block_click");
- prefix_hawkeye = "§cHawkeye";
- event_map_2 = map.new();
- map.add(event_map_2, "block_break", 1);
- map.add(event_map_2, "block_place", 2);
- event_map = map.new(); //für hawkeye
- map.add(event_map, 1, "block_break");
- map.add(event_map, 2, "block_place");
- databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS hawkeye(
- id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
- player_id INT NOT NULL,
- event INT NOT NULL,
- world VARCHAR(16) NOT NULL,
- x INT NOT NULL,
- y INT NOT NULL,
- z INT NOT NULL,
- time BIGINT NOT NULL,
- text VARCHAR(1024) NOT NULL);"));
- hawkeye.deleteOlderThanThreeWeeks();
- msg("dev", "§bHawkeye §rloaded.");
- @wait
- wait();
- if(event == "block_place") {
- item = living.getEquip(player, "hand");
- if(hawkeye.isTool(item)) {
- if(!perm.has(player, "hawkeye")) {
- perm.no(player, "hawkeye");
- goto("wait");
- }
- cancel = true;
- list = hawkeye.getData(null, null, block_loc, 1, null, null, "DESC");
- if(list.getSize(list) == 0) {
- msg.prefix(player, prefix_hawkeye, "No results found.");
- goto("wait");
- }
- hawkeye.setDataList(player, list);
- hawkeye.print(player, list, 1);
- goto("wait");
- }
- }
- if(event == "block_click") {
- item = living.getEquip(player, "hand");
- if(action == "left" && hawkeye.isTool(item)) {
- if(!perm.has(player, "hawkeye")) {
- perm.no(player, "hawkeye");
- goto("wait");
- }
- cancel = true;
- list = hawkeye.getData(null, null, block_loc, 1, null, null, "DESC");
- if(list.getSize(list) == 0) {
- msg.prefix(player, prefix_hawkeye, "No results found.");
- goto("wait");
- }
- hawkeye.setDataList(player, list);
- hawkeye.print(player, list, 1);
- }
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(block_loc));
- if(world.isSurvName(world_name)) {
- if(event == "block_break" || event == "block_place") {
- if(cancel) {
- goto("wait");
- }
- state = block.getState(block_loc);
- state = text.replace(state, "Block{", "");
- state = text.replace(state, "}", "");
- if(text.length(state) > 1024) {
- goto("wait");
- }
- hawkeye.addEntry(event, player, block_loc, state);
- }
- }
- goto("wait");
- function hawkeye.addEntry(event, player, location, text) {
- event_id = hawkeye.getEventId(event);
- modTimer(-15);
- stmt = databank.prepare("INSERT INTO hawkeye (player_id, event, world, x, y, z, time, text) VALUES (?,?,?,?,?,?,?,?)");
- databank.setInt(stmt, 1, player.getId(player));
- databank.setInt(stmt, 2, event_id);
- databank.setString(stmt, 3, world.getName(loc.getWorld(location)));
- databank.setInt(stmt, 4, loc.getX(location));
- databank.setInt(stmt, 5, loc.getY(location));
- databank.setInt(stmt, 6, loc.getZ(location));
- databank.setLong(stmt, 7, time.getMillis());
- databank.setString(stmt, 8, text);
- databank.workerExecute(stmt);
- }
- function hawkeye.getEventId(event) {
- return map.get($event_map_2, event);
- }
- function hawkeye.deleteOlderThanThreeWeeks() {
- three_weeks_before = time.getMillis() - 21 * 24 * 60 * 60 * 1000;
- stmt = databank.prepare("DELETE FROM hawkeye WHERE time < ?;");
- databank.setLong(stmt, 1, three_weeks_before);
- databank.workerExecute(stmt);
- }
- function hawkeye.isTool(item) {
- lore = item.getLore(item);
- if(list.getSize(lore) > 0) {
- return list.getIndex(lore, 0) == "Hawkeye Tool";
- }
- return false;
- }
- function hawkeye.getEventName(event_id) {
- return map.get($event_map, event_id);
- }
|