View difference between Paste ID: Zzj7seFf and KicCRpkU
SHOW: | | - or go back to the newest paste.
1
-- Rayon de recherche des joueurs
2
local range = 200
3
4
-- Déclaration de la variable qui stockera l'Advanced Peripherals Player Detector
5
local playerDetector
6
7
-- Recherche de l'Advanced Peripherals Player Detector connecté
8
for _, peripheralName in ipairs(peripheral.getNames()) do
9
    if peripheral.getType(peripheralName) == "playerDetector" then
10
        playerDetector = peripheral.wrap(peripheralName)
11
        break
12
    end
13
end
14
15
-- Vérification que l'Advanced Peripherals Player Detector a été trouvé
16
if playerDetector == nil then
17
    print("Advanced Peripherals Player Detector non trouvé")
18
    return
19
else
20
    print("Advanced Peripherals Player Detector trouvé")
21
end
22
23
-- Déclaration de la variable qui stockera l'Advanced Peripherals Monitor
24
local monitor
25
26
-- Recherche de l'Advanced Peripherals Monitor connecté
27
for _, peripheralName in ipairs(peripheral.getNames()) do
28
    if peripheral.getType(peripheralName) == "monitor" and peripheral.wrap(peripheralName).isColour() then
29
        monitor = peripheral.wrap(peripheralName)
30
        break
31
    end
32
end
33
34
-- Vérification que l'Advanced Peripherals Monitor a été trouvé
35
if monitor == nil then
36
    print("Advanced Peripherals Monitor non trouvé")
37
    return
38
else
39
    print("Advanced Peripherals Monitor trouvé")
40
end
41
42
43
-- Fonction pour afficher la liste des joueurs détectés
44
local function displayPlayerList(playerList)
45
    -- Définir les couleurs d'arrière-plan et de texte pour l'interface
46
    monitor.setBackgroundColor(colors.black)
47
    monitor.setTextColor(colors.white)
48
    -- Effacer l'écran et afficher l'en-tête de l'interface
49
    monitor.clear()
50
    monitor.setCursorPos(1, 1)
51
    monitor.write("===============================")
52
    monitor.setCursorPos(1, 2)
53
    monitor.write("      PLAYERS IN AREA      ") 
54
    monitor.setCursorPos(1, 3)
55
    monitor.write("      RANGE: "..range..string.rep(" ", 27 - #tostring(range)).."|")
56
    monitor.setCursorPos(1, 4)
57
    monitor.write("===============================")
58
    -- Afficher chaque joueur détecté à partir de la ligne 5
59
    for i, playerName in ipairs(playerList) do
60
        monitor.setCursorPos(1, i + 4)
61
        monitor.write("  " .. playerName .. string.rep(" ", 27 - #playerName) .. "|")
62
    end
63
    -- Afficher le bas de l'interface
64
    monitor.setCursorPos(1, #playerList + 5)
65
    monitor.write("===============================")
66
end
67
68
-- Boucle principale du programme
69
while true do
70
    -- Vérification si un joueur est en ligne dans le rayon de recherche
71
    local playersInRange = playerDetector.getPlayersInRange(range)
72
    if #playersInRange > 0 then
73
        -- Si un joueur est détecté, afficher la liste des joueurs
74
        displayPlayerList(playersInRange)
75
        -- Activer le signal de redstone pour indiquer qu'un joueur est en ligne
76
        redstone.setOutput("right", true)
77
    else
78
        -- Si aucun joueur n'est détecté, effacer l'écran et désactiver le signal de redstone
79
        monitor.clear()
80
        redstone.setOutput("right", false)
81
    end
82-
    -- Attendre 1 seconde avant de vérifier à nouveau si un joueur est en ligne
82+
    -- Attendre 30 seconde avant de vérifier à nouveau si un joueur est en ligne
83
    sleep(30)
84
end