Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- startup.lua
- local monitor = peripheral.wrap("top")
- local locator = peripheral.wrap("right")
- if not monitor or not locator then
- print("Monitor or Player Locator not found!")
- return
- end
- monitor.setTextScale(1)
- monitor.clear()
- monitor.setTextColor(colors.white)
- monitor.setBackgroundColor(colors.black)
- local width, height = monitor.getSize()
- local playerDisplay = {}
- local selectedPlayer = nil
- local function getPlayers()
- return locator.getPlayersInRange(1000000000000) -- "Infinite" range
- end
- local function updateMonitor()
- local players = getPlayers()
- monitor.clear()
- playerDisplay = {}
- if #players > 0 then
- monitor.setCursorPos(1, 1)
- monitor.setTextColor(colors.cyan)
- monitor.write("Players Nearby:")
- for i, player in ipairs(players) do
- local x = 2
- local y = i + 2
- playerDisplay[i] = { name = player, posX = x, posY = y }
- monitor.setCursorPos(x, y)
- if player == selectedPlayer then
- monitor.setTextColor(colors.green)
- else
- monitor.setTextColor(colors.white)
- end
- monitor.write(player)
- end
- else
- monitor.setCursorPos(1, math.floor(height / 2))
- monitor.setTextColor(colors.red)
- monitor.write("No Players Detected")
- end
- end
- while true do
- updateMonitor()
- sleep(0.1) -- Update every millisecond (approx. a nano-second in Minecraft terms)
- local event, side, x, y = os.pullEvent("monitor_touch")
- for _, player in pairs(playerDisplay) do
- if x >= player.posX and x <= player.posX + #player.name and y == player.posY then
- shell.run("player_info.lua", player.name)
- break
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment