Advertisement
Lanzr

manual_cycleTrade

Jun 22nd, 2024 (edited)
560
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.85 KB | None | 0 0
  1. inter = peripheral.find("trading_interface")
  2. local tradeList = {}
  3. function getTrades(sMode,targetStr)
  4.     local ret = nil
  5.     inter.cycleTrades()
  6.     ret,tradeList = inter.getTrades();
  7.     for key, value in pairs(tradeList) do
  8.         if value ~= nil then
  9.             local result = value["result"]
  10.             for key, value in pairs(result) do
  11.                 if key == "minecraft:enchanted_book" then
  12.                     -- find enchanted_book
  13.                     local enchants = value["enchants"]
  14.                     for key, value in pairs(enchants) do
  15.                         local ret = nil
  16.                         if sMode then
  17.                             local pos = string.find(key,":")
  18.                             key = string.sub(key,pos+1)
  19.                             ret = string.match(key,"^"..targetStr.."$")
  20.                         else
  21.                             ret = string.find(key,targetStr)
  22.                         end
  23.                         if ret ~= nil then
  24.                             return true
  25.                         end
  26.                     end
  27.                 end
  28.             end
  29.         end
  30.     end
  31.     return false
  32. end
  33.  
  34. while true do
  35.     term.clear()
  36.     term.setCursorPos(1,1)
  37.     print("use \"S keywork\" to Strict matching")
  38.     print("or just \"keywork\" to find what word have keyword")
  39.     print("please type the keyword for find enchant_book:")
  40.     local str = io.read()
  41.     if str == "_res" then
  42.         inter.restock()
  43.     else
  44.         local ret = false
  45.         local sFinder = string.match(str,"^[sS][ ]+([%a_]+)[ ]*$")
  46.         local sMode = false
  47.         if sFinder ~= nil then
  48.             sMode = true
  49.             str = sFinder
  50.         else
  51.             str = string.match(str,"^[ ]*([%a_]+)[ ]*$")
  52.         end
  53.         repeat
  54.             ret = getTrades(sMode,str)
  55.         until ret
  56.     end
  57. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement