Facebook
From Melodic Bison, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 182
  1. function watchEnchantmentTable(bot: Bot) {
  2.   var enchant = bot.client.blockAt(0, 1, 1);
  3.   var table = bot.client.openEnchantmentTable(enchant);
  4.   table.on('open', () => {
  5.     bot.chat("/msg Zielski " + itemToString(table.targetItem()))
  6.   })
  7.   table.on('updateSlot', (oldItem, newItem) => {
  8.     bot.chat(`/msg Zielski Enchant update: ${itemToString(oldItem)} -> ${itemToString(newItem)}`)
  9.   })
  10.   table.on('close', () => {
  11.     bot.chat('/msg Zielski Enchant zamknięty')
  12.   })
  13.   table.on('ready', () => {
  14.     bot.chat(`/msg Zielski Enchanty: ${table.enchantments.map(o => o.level).join(', ')}`)
  15.   })
  16.  
  17.   bot.client.on('chat', onChat) //Tu sie pomeczysz
  18.  
  19.   function onChat(username, message) { //Tu sie pomeczysz
  20.     if (username === bot.username) return
  21.     const command = message.split(' ')
  22.     switch (true) {
  23.       case /^close$/.test(message):
  24.         closeEnchantmentTable()
  25.         break
  26.       case /^put \w+$/.test(message):
  27.         // put name
  28.         // ex: put diamondsword
  29.         putItem(command[1])
  30.         break
  31.       case /^add lapis$/.test(message):
  32.         addLapis()
  33.         break
  34.       case /^enchant \d+$/.test(message):
  35.         // enchant choice
  36.         // ex: enchant 2
  37.         enchantItem(command[1])
  38.         break
  39.       case /^take$/.test(message):
  40.         takeEnchantedItem()
  41.         break
  42.     }
  43.  
  44.     function closeEnchantmentTable() {
  45.       table.close()
  46.     }
  47.  
  48.     function putItem(name) {
  49.       const item = itemByName(table.window.items(), name)
  50.       if (item) {
  51.         table.putTargetItem(item, (err) => {
  52.           if (err) {
  53.             bot.chat(`/msg Zielski Błąd przy wkładaniu ${itemToString(item)}`)
  54.           } else {
  55.             bot.chat(`/msg Zielski Włożone ${itemToString(item)}`)
  56.           }
  57.         })
  58.       } else {
  59.         bot.chat(`/msg Zielski unknown item ${name}`)
  60.       }
  61.     }
  62.  
  63.     function addLapis() {
  64.       const item = itemByType(table.window.items(), 351)
  65.       if (item) {
  66.         table.putLapis(item, (err) => {
  67.           if (err) {
  68.             bot.chat(`/msg Zielski Błąd przy wkładaniu ${itemToString(item)}`)
  69.           } else {
  70.             bot.chat(`/msg Zielski Włożone ${itemToString(item)}`)
  71.           }
  72.         })
  73.       } else {
  74.         bot.chat("/msg Zielski Nie ma lapisu")
  75.       }
  76.     }
  77.  
  78.     function enchantItem(choice) {
  79.       choice = parseInt(choice, 10)
  80.       table.enchant(choice, (err, item) => {
  81.         if (err) {
  82.           bot.chat('/msg Zielski error enchanting')
  83.         } else {
  84.           bot.chat(`/msg Zielski enchanted ${itemToString(item)}`)
  85.         }
  86.       })
  87.     }
  88.  
  89.     function takeEnchantedItem() {
  90.       table.takeTargetItem((err, item) => {
  91.         if (err) {
  92.           bot.chat('/msg Zielski error getting item')
  93.         } else {
  94.           bot.chat(`/msg Zielski got ${itemToString(item)}`)
  95.         }
  96.       })
  97.     }
  98.   }
  99.   function itemByName(items, name) {
  100.     let item
  101.     let i
  102.     for (i = 0; i < items.length; ++i) {
  103.       item = items[i]
  104.       if (item && item.name === name) return item
  105.     }
  106.     return null
  107.   }
  108.   function itemByType(items, type) {
  109.     let item
  110.     let i
  111.     for (i = 0; i < items.length; ++i) {
  112.       item = items[i]
  113.       if (item && item.type === type) return item
  114.     }
  115.     return null
  116.   }
  117. }