<?xml version="1.0"?>
<rss version="2.0"><channel><title>Programming Latest Questions</title><link>https://oc.cil.li/forum/31-programming/</link><description>Programming Latest Questions</description><language>en</language><item><title>Trouble writing a program that can update and immediately re-run itself</title><link>https://oc.cil.li/topic/2489-trouble-writing-a-program-that-can-update-and-immediately-re-run-itself/</link><description><![CDATA[<div style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">
	<div style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">
		<div style="border:0px;font-size:1rem;vertical-align:baseline;">
			<span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">Hello</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">, I</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">'m working with a friend on an installer program for one of our other programs</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">. The installer is supposed to be able to ask the user to update the installer</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">, and if they say yes</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">, the installer will overwrite itself with its latest version from GitHub</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">, then run itself once complete</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">. The way we did this in previous programs was as follows</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">: </span>
		</div>

		<div style="border:0px;font-size:1rem;vertical-align:baseline;">
			 
		</div>

		<div style="border:0px;font-size:1rem;vertical-align:baseline;">
			<code style="border:1px solid;font-size:13.6px;padding:0px .2em;vertical-align:baseline;">os.execute("cd /home; pastebin get -f hh14Sxhi dc15; cls; dc15")</code><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;"> </span>
		</div>

		<div style="border:0px;font-size:1rem;vertical-align:baseline;">
			 
		</div>

		<div style="border:0px;font-size:1rem;vertical-align:baseline;">
			<span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">In the above code</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">, the example program cd</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">'s to its install directory</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">, overwrites itself using the pastebin command</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">, then runs itself</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">. However</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">, that is not having the intended effect in the installer</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">, which ends up skipping past the update prompt when re</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">-running itself</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">. Is there a better way to implement this</span><span style="border:0px;font-size:16px;padding:0px;vertical-align:baseline;">?</span> <span style="border:0px;font-size:.75rem;padding:0px;vertical-align:baseline;"><span style="border:0px;font-size:.625rem;padding:0px;vertical-align:baseline;">(edited)</span></span>
		</div>

		<div style="border:0px;font-size:1rem;vertical-align:baseline;">
			<span style="font-size:16px;">The only thing I can think of would be to create a new thread that runs the new process, then kill the overwritten process without joining the newly-created thread, but I'm not entirely sure.</span>
		</div>
	</div>
</div>]]></description><guid isPermaLink="false">2489</guid><pubDate>Sat, 12 Apr 2025 02:21:36 +0000</pubDate></item><item><title>I need an opensource OS like mineos</title><link>https://oc.cil.li/topic/2486-i-need-an-opensource-os-like-mineos/</link><description><![CDATA[<p>
	well yeah i need one cause uh i wanna remake windows 10 and it will be called "blocks 10"
</p>]]></description><guid isPermaLink="false">2486</guid><pubDate>Thu, 27 Mar 2025 16:57:40 +0000</pubDate></item><item><title>Access Filesytem and Directories from a program.</title><link>https://oc.cil.li/topic/2483-access-filesytem-and-directories-from-a-program/</link><description><![CDATA[<p>
	Hello friends, I'd like to access the filesystem that the OS was installed on, however the computer claims there are multiple systems.<br />
	There's tmpfs, devfs and of course, OpenOS. If possible, I'd like to access the last one without having to use the specific UUID or name, as I want what I'm writing to be compatible with other computers.
</p>]]></description><guid isPermaLink="false">2483</guid><pubDate>Fri, 24 Jan 2025 21:07:14 +0000</pubDate></item><item><title>Help me please</title><link>https://oc.cil.li/topic/2482-help-me-please/</link><description><![CDATA[<p>
	Every time i try tò install OPPM It stays "could not connect tò the internet please insure you have AN internet connection unable tò te internet" and i putted in even i putted in the  internet card hiw can i solve the problem
</p>]]></description><guid isPermaLink="false">2482</guid><pubDate>Tue, 31 Dec 2024 12:07:42 +0000</pubDate></item><item><title>Can Transposer read NBT?</title><link>https://oc.cil.li/topic/2479-can-transposer-read-nbt/</link><description><![CDATA[<p>
	Is it possible to teach the transposer to read NBT data using your library? A simple "yes" or "no" is enough, but if it is not so difficult, then please write to me a short script that allows you to move only an sharpness 5 enchanted diamond sword (if there is no enchantment, another ench type or ench level - ignore) from the first slot of the northern chest to the second slot of the southern chest. This is very necessary for improving one ready-made autocraft script, it can become ideal
</p>]]></description><guid isPermaLink="false">2479</guid><pubDate>Tue, 10 Dec 2024 08:22:27 +0000</pubDate></item><item><title>How to pass argument into program</title><link>https://oc.cil.li/topic/2475-how-to-pass-argument-into-program/</link><description><![CDATA[<p>
	I am trying to pass an argument into program to make robot different things base on the argument<br />
	Lets say I have some program and I type ~ main "Ender Pearl" ~ in which main is my program and I want to pass Ender Pearl as a string into the variables inside, how do I do it, because I cant find anything about it on the internet, and tutorials I watched are so simplified that they are not telling anything about this
</p>]]></description><guid isPermaLink="false">2475</guid><pubDate>Sun, 20 Oct 2024 16:28:40 +0000</pubDate></item><item><title>openComputers spitting "native libraries not available"</title><link>https://oc.cil.li/topic/2476-opencomputers-spitting-native-libraries-not-available/</link><description><![CDATA[<p>
	the error "native libraries not available" appears as a blue screen of death on any computer screen and robots won t even power on. The issue appears to be localized to host or singleplayer clients because on my friends server the mod is working. The error appeared after launching a game instance and going into singleplayer Attempted to build a computer and a robot. Used creative case in an assembler. I am making an automatic farm as my first real project but after days of learning lua and this mod api I am now at a serious roadblock right when things are about to get interesting. I could reasonably guess that a file needs repaired or something but just for instance curseforge repair hasnt fixed the error. As a bit of a curious bonus question, are these libraries commonly corrupted?
</p>]]></description><guid isPermaLink="false">2476</guid><pubDate>Sun, 10 Nov 2024 22:21:02 +0000</pubDate></item><item><title>File extensions?</title><link>https://oc.cil.li/topic/1474-file-extensions/</link><description><![CDATA[
<p>
	So as of writing this, I only know of one file extension that actually means something in OC, which would be .lua
</p>

<p>
	But I'd like to make more file extensions, would there be a way to do this? My end goal is to make it so that if you try to edit something with a certain file extension it won't let you, and maybe also be able to run it without typing the extension, like you can with lua files.
</p>

<p>
	Could anyone point me in the right direction?
</p>
]]></description><guid isPermaLink="false">1474</guid><pubDate>Sun, 05 Nov 2017 19:16:24 +0000</pubDate></item><item><title>Is there any way for me to detect what kind of item the robot is holding?</title><link>https://oc.cil.li/topic/2407-is-there-any-way-for-me-to-detect-what-kind-of-item-the-robot-is-holding/</link><description><![CDATA[<p>
	I have created a program to package the honeycomb of the genetic industry, but in the middle, I need to have the robot switch between the items in hand. I already know that there are other ways to achieve similar functions (such as continuous inventory detection, if there is no specific item, it can be considered that the robot has already held it), but I would like to ask if there is an API that allows for direct detection of items in the robot's hands? If any, this will significantly reduce the complexity of the program. Thank you:)
</p>]]></description><guid isPermaLink="false">2407</guid><pubDate>Mon, 24 Jul 2023 07:50:09 +0000</pubDate></item><item><title>Lua tables not working in OpenComputers</title><link>https://oc.cil.li/topic/2437-lua-tables-not-working-in-opencomputers/</link><description><![CDATA[<p>
	I got an error message saying that in the "component.inventory_controller.suckFromSlot(sides.front, 1, numList[i])" line "numList[i]" returned a nil value. I tried to code something similar in VS and it worked there. What did I miss or is it a bug in OpenComputers?
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="955" data-ratio="20.61" width="330" alt="Screenshot_5.png.69409dac4bbee6031902cb525eb3675f.png" data-src="https://oc.cil.li/uploads/monthly_2024_01/Screenshot_5.png.69409dac4bbee6031902cb525eb3675f.png" src="https://oc.cil.li/applications/core/interface/js/spacer.png" /><a class="ipsAttachLink ipsAttachLink_image" href="https://oc.cil.li/uploads/monthly_2024_01/Screenshot_4.png.9b867442ee0305d06e7cbf8e2e5518ac.png" data-fileid="954" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="954" data-ratio="29.80" width="1000" alt="Screenshot_4.thumb.png.1fb4eea0186e076812ac0546dd17bb85.png" data-src="https://oc.cil.li/uploads/monthly_2024_01/Screenshot_4.thumb.png.1fb4eea0186e076812ac0546dd17bb85.png" src="https://oc.cil.li/applications/core/interface/js/spacer.png" /></a>
</p>]]></description><guid isPermaLink="false">2437</guid><pubDate>Sun, 21 Jan 2024 22:15:20 +0000</pubDate></item><item><title>Check availability of storage with a item_storage block,</title><link>https://oc.cil.li/topic/2444-check-availability-of-storage-with-a-item_storage-block/</link><description><![CDATA[<p>
	I tried to use the peripherals code to connect the monitor to the block and now i dont know how to get the data from the block.
</p>

<p>
	i tried <span>: </span>
</p>

<p>
	local inv = peripheral.find("item_storage")
</p>

<p>
	print(inv)
</p>

<p>
	Outcome: 
</p>

<p>
	table: 5981ace
</p>

<p>
	Please Help me
</p>]]></description><guid isPermaLink="false">2444</guid><pubDate>Fri, 29 Mar 2024 14:33:54 +0000</pubDate></item><item><title>How can I use screen on the server</title><link>https://oc.cil.li/topic/2447-how-can-i-use-screen-on-the-server/</link><description><![CDATA[<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://oc.cil.li/uploads/monthly_2024_04/image.png.90f6b05c40c0c87f8443ed33202eb525.png" data-fileid="963" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="963" data-ratio="96.40" width="778" alt="image.thumb.png.cc0c837bd8b1037a4eb3eb54f1d774f9.png" data-src="https://oc.cil.li/uploads/monthly_2024_04/image.thumb.png.cc0c837bd8b1037a4eb3eb54f1d774f9.png" src="https://oc.cil.li/applications/core/interface/js/spacer.png" /></a><img class="ipsImage ipsImage_thumbnailed" data-fileid="962" data-ratio="72.19" width="989" alt="image.png.2ba1e814fe1029540be79f4b093f3f5b.png" data-src="https://oc.cil.li/uploads/monthly_2024_04/image.png.2ba1e814fe1029540be79f4b093f3f5b.png" src="https://oc.cil.li/applications/core/interface/js/spacer.png" /></p>

<p>
	I didnot work, the OS was been installed,and I can use remote term to control server,but IT CANNOT DISPLAY ON THE TRUE SCREEN,
</p>

<p>
	Can some one help pls
</p>]]></description><guid isPermaLink="false">2447</guid><pubDate>Fri, 05 Apr 2024 13:48:24 +0000</pubDate></item><item><title>Problem with eerom</title><link>https://oc.cil.li/topic/2424-problem-with-eerom/</link><description><![CDATA[<p>
	Hello. I'm  have problem with eerom. My game is saying "no bootadle medium found: /int.lua". I'm have "eerom (lua BIOS)" but still don't work. Someone can help?
</p>

<p>
	 
</p>
<p><a href="https://oc.cil.li/uploads/monthly_2023_11/2023-11-25_20_07_11.png.eb1d70e792762f084bd8f8089d094e73.png" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="941" src="https://oc.cil.li/applications/core/interface/js/spacer.png" data-src="https://oc.cil.li/uploads/monthly_2023_11/2023-11-25_20_07_11.thumb.png.aeab3bf31ffaaaf509ec39c6257864e8.png" data-ratio="53" width="1000" class="ipsImage ipsImage_thumbnailed" alt="2023-11-25_20.07.11.png"></a></p>
<p><a href="https://oc.cil.li/uploads/monthly_2023_11/2023-11-25_20_07_37.png.728a23cf7cfff5d0d3947aaddcdaf091.png" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="942" src="https://oc.cil.li/applications/core/interface/js/spacer.png" data-src="https://oc.cil.li/uploads/monthly_2023_11/2023-11-25_20_07_37.thumb.png.53302b21940788bf1d8219a8f46bacdc.png" data-ratio="53" width="1000" class="ipsImage ipsImage_thumbnailed" alt="2023-11-25_20.07.37.png"></a></p>]]></description><guid isPermaLink="false">2424</guid><pubDate>Sat, 25 Nov 2023 19:07:47 +0000</pubDate></item><item><title>how do you get the produced eu from thermal generator ic2?</title><link>https://oc.cil.li/topic/2470-how-do-you-get-the-produced-eu-from-thermal-generator-ic2/</link><description><![CDATA[<p>
	how do you get the produced eu from thermal generator ic2?
</p>]]></description><guid isPermaLink="false">2470</guid><pubDate>Mon, 29 Jul 2024 14:42:43 +0000</pubDate></item><item><title>Running with multiple comptuers</title><link>https://oc.cil.li/topic/2465-running-with-multiple-comptuers/</link><description><![CDATA[<p>
	im on project ozone 3 and I want to make a way to show information about my draconic energy core but I can't because the largest one goes above the bit integer limit is there a way to use multiple computers or servers to get around this? 
</p>]]></description><guid isPermaLink="false">2465</guid><pubDate>Wed, 17 Jul 2024 19:49:21 +0000</pubDate></item><item><title>Help with gui api</title><link>https://oc.cil.li/topic/2464-help-with-gui-api/</link><description><![CDATA[<p>
	I've figured it myself, sorry for disturbing.
</p>

<p>
	 
</p>

<p>
	 
</p>]]></description><guid isPermaLink="false">2464</guid><pubDate>Fri, 12 Jul 2024 15:51:31 +0000</pubDate></item><item><title>About ButtonAPI</title><link>https://oc.cil.li/topic/2246-about-buttonapi/</link><description><![CDATA[<p>
	Hi, i would like to know how we can do a text that when we touch it execute some code. Thanks for your help!
</p>

<p>
	 
</p>

<p>
	main.lua
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="kwd">local</span><span class="pln"> component </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"component"</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> event </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"event"</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> computer </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"computer"</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> gpu </span><span class="pun">=</span><span class="pln"> component</span><span class="pun">.</span><span class="pln">gpu
</span><span class="kwd">local</span><span class="pln"> term </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"term"</span><span class="pun">)</span><span class="pln">
 
</span><span class="kwd">local</span><span class="pln"> version </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1.0"</span><span class="pln">
 
</span><span class="kwd">local</span><span class="pln"> h</span><span class="pun">,</span><span class="pln"> w </span><span class="pun">=</span><span class="pln"> gpu</span><span class="pun">.</span><span class="pln">getResolution</span><span class="pun">()</span><span class="pln">
 
API </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"buttonAPI"</span><span class="pun">)</span><span class="pln">

</span><span class="kwd">local</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> base</span><span class="pun">()</span><span class="pln">
  gpu</span><span class="pun">.</span><span class="pln">setBackground</span><span class="pun">(</span><span class="lit">0x0000cc</span><span class="pun">)</span><span class="pln">
  gpu</span><span class="pun">.</span><span class="pln">fill</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">,</span><span class="pln">h</span><span class="pun">,</span><span class="lit">1</span><span class="pun">,</span><span class="str">" "</span><span class="pun">)</span><span class="pln">
  gpu</span><span class="pun">.</span><span class="pln">set</span><span class="pun">((</span><span class="pln">h </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> </span><span class="lit">5</span><span class="pun">,</span><span class="lit">1</span><span class="pun">,</span><span class="str">"TopiGui v"</span><span class="pun">..</span><span class="pln">version</span><span class="pun">)</span><span class="pln">
  gpu</span><span class="pun">.</span><span class="pln">setBackground</span><span class="pun">(</span><span class="lit">0xcccccc</span><span class="pun">)</span><span class="pln">
  gpu</span><span class="pun">.</span><span class="pln">fill</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">2</span><span class="pun">,</span><span class="pln">h</span><span class="pun">,</span><span class="pln">w</span><span class="pun">,</span><span class="pln"> </span><span class="str">" "</span><span class="pun">)</span><span class="pln">

  </span><span class="kwd">while</span><span class="pln"> </span><span class="kwd">true</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
    gpu</span><span class="pun">.</span><span class="pln">setBackground</span><span class="pun">(</span><span class="lit">0x0000cc</span><span class="pun">)</span><span class="pln">
    memoryPercentage </span><span class="pun">=</span><span class="pln"> computer</span><span class="pun">.</span><span class="pln">freeMemory</span><span class="pun">()</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="lit">100</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> computer</span><span class="pun">.</span><span class="pln">totalMemory</span><span class="pun">()</span><span class="pln">
    energyPercentage </span><span class="pun">=</span><span class="pln"> computer</span><span class="pun">.</span><span class="pln">energy</span><span class="pun">()</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="lit">100</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> computer</span><span class="pun">.</span><span class="pln">maxEnergy</span><span class="pun">()</span><span class="pln">
    gpu</span><span class="pun">.</span><span class="pln">set</span><span class="pun">(</span><span class="pln">h </span><span class="pun">/</span><span class="pln"> </span><span class="lit">1.25</span><span class="pun">,</span><span class="lit">1</span><span class="pun">,</span><span class="str">"RAM: "</span><span class="pun">..</span><span class="pln">string</span><span class="pun">.</span><span class="pln">format</span><span class="pun">(</span><span class="str">" %2.0f"</span><span class="pun">,</span><span class="pln"> memoryPercentage</span><span class="pun">)..</span><span class="str">" % Free"</span><span class="pun">)</span><span class="pln">
    gpu</span><span class="pun">.</span><span class="pln">set</span><span class="pun">(</span><span class="pln">h </span><span class="pun">/</span><span class="pln"> </span><span class="lit">1.1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">,</span><span class="str">"Energy: "</span><span class="pun">..</span><span class="pln">string</span><span class="pun">.</span><span class="pln">format</span><span class="pun">(</span><span class="str">" %2.0f"</span><span class="pun">,</span><span class="pln"> energyPercentage</span><span class="pun">)..</span><span class="str">" % "</span><span class="pun">)</span><span class="pln"> 
    os</span><span class="pun">.</span><span class="pln">sleep</span><span class="pun">(</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">end</span><span class="pln">
</span><span class="kwd">end</span><span class="pln"> 

</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">fillTable</span><span class="pun">()</span><span class="pln">
  API</span><span class="pun">.</span><span class="pln">setTable</span><span class="pun">(</span><span class="str">"Exit"</span><span class="pun">,</span><span class="pln"> exit</span><span class="pun">,</span><span class="pln"> </span><span class="lit">10</span><span class="pun">,</span><span class="lit">20</span><span class="pun">,</span><span class="lit">3</span><span class="pun">,</span><span class="lit">5</span><span class="pun">)</span><span class="pln">
  API</span><span class="pun">.</span><span class="pln">screen</span><span class="pun">()</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> getClick</span><span class="pun">()</span><span class="pln">
  </span><span class="kwd">local</span><span class="pln"> _</span><span class="pun">,</span><span class="pln"> _</span><span class="pun">,</span><span class="pln"> x</span><span class="pun">,</span><span class="pln"> y </span><span class="pun">=</span><span class="pln"> event</span><span class="pun">.</span><span class="pln">pull</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="pln">touch</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">if</span><span class="pln"> x </span><span class="pun">==</span><span class="pln"> </span><span class="kwd">nil</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> y </span><span class="pun">==</span><span class="pln"> </span><span class="kwd">nil</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
    </span><span class="kwd">local</span><span class="pln"> h</span><span class="pun">,</span><span class="pln"> w </span><span class="pun">=</span><span class="pln"> gpu</span><span class="pun">.</span><span class="pln">getResolution</span><span class="pun">()</span><span class="pln">
    gpu</span><span class="pun">.</span><span class="pln">set</span><span class="pun">(</span><span class="pln">h</span><span class="pun">,</span><span class="pln"> w</span><span class="pun">,</span><span class="pln"> </span><span class="str">"."</span><span class="pun">)</span><span class="pln">
    gpu</span><span class="pun">.</span><span class="pln">set</span><span class="pun">(</span><span class="pln">h</span><span class="pun">,</span><span class="pln"> w</span><span class="pun">,</span><span class="pln"> </span><span class="str">" "</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">else</span><span class="pln"> 
    API</span><span class="pun">.</span><span class="pln">checkxy</span><span class="pun">(</span><span class="pln">x</span><span class="pun">,</span><span class="pln">y</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">end</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> tor</span><span class="pun">()</span><span class="pln">
  computer</span><span class="pun">.</span><span class="pln">shutdown</span><span class="pun">()</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

base</span><span class="pun">()</span><span class="pln">
API</span><span class="pun">.</span><span class="pln">fillTable</span><span class="pun">()</span><span class="pln"> 

</span><span class="kwd">while</span><span class="pln"> </span><span class="kwd">true</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
  getClick</span><span class="pun">()</span><span class="pln">
</span><span class="kwd">end</span></pre>

<p>
	buttonAPI.lua
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="kwd">local</span><span class="pln"> API </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{}</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> button</span><span class="pun">={}</span><span class="pln">

</span><span class="kwd">local</span><span class="pln"> component </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"component"</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> colors </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"colors"</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> term </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"term"</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> mon </span><span class="pun">=</span><span class="pln"> component</span><span class="pun">.</span><span class="pln">gpu
</span><span class="kwd">local</span><span class="pln"> w</span><span class="pun">,</span><span class="pln"> h </span><span class="pun">=</span><span class="pln"> mon</span><span class="pun">.</span><span class="pln">getResolution</span><span class="pun">()</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> Green </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0x00AA00</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> Red </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0xAA0000</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> Black </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0x000000</span><span class="pln">

buttonStatus </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">nil</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">clear</span><span class="pun">()</span><span class="pln">
  mon</span><span class="pun">.</span><span class="pln">setBackground</span><span class="pun">(</span><span class="pln">Black</span><span class="pun">)</span><span class="pln">
  mon</span><span class="pun">.</span><span class="pln">fill</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> w</span><span class="pun">,</span><span class="pln"> h</span><span class="pun">,</span><span class="pln"> </span><span class="str">" "</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">clearTable</span><span class="pun">()</span><span class="pln">
  button </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{}</span><span class="pln">
  API</span><span class="pun">.</span><span class="pln">clear</span><span class="pun">()</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
               
</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">setTable</span><span class="pun">(</span><span class="pln">name</span><span class="pun">,</span><span class="pln"> func</span><span class="pun">,</span><span class="pln"> xmin</span><span class="pun">,</span><span class="pln"> xmax</span><span class="pun">,</span><span class="pln"> ymin</span><span class="pun">,</span><span class="pln"> ymax</span><span class="pun">)</span><span class="pln">
  button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{}</span><span class="pln">
  button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">][</span><span class="str">"func"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> func
  button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">][</span><span class="str">"active"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pln">
  button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">][</span><span class="str">"xmin"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> xmin
  button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">][</span><span class="str">"ymin"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> ymin
  button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">][</span><span class="str">"xmax"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> xmax
  button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">][</span><span class="str">"ymax"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> ymax
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">fill</span><span class="pun">(</span><span class="pln">text</span><span class="pun">,</span><span class="pln"> color</span><span class="pun">,</span><span class="pln"> bData</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">local</span><span class="pln"> yspot </span><span class="pun">=</span><span class="pln"> math</span><span class="pun">.</span><span class="pln">floor</span><span class="pun">((</span><span class="pln">bData</span><span class="pun">[</span><span class="str">"ymin"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> bData</span><span class="pun">[</span><span class="str">"ymax"</span><span class="pun">])</span><span class="pln"> </span><span class="pun">/</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">local</span><span class="pln"> xspot </span><span class="pun">=</span><span class="pln"> math</span><span class="pun">.</span><span class="pln">floor</span><span class="pun">((</span><span class="pln">bData</span><span class="pun">[</span><span class="str">"xmax"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> bData</span><span class="pun">[</span><span class="str">"xmin"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> string</span><span class="pun">.</span><span class="pln">len</span><span class="pun">(</span><span class="pln">text</span><span class="pun">))</span><span class="pln"> </span><span class="pun">/</span><span class="lit">2</span><span class="pun">)</span><span class="lit">+1</span><span class="pln">
  </span><span class="kwd">local</span><span class="pln"> oldColor </span><span class="pun">=</span><span class="pln"> mon</span><span class="pun">.</span><span class="pln">setBackground</span><span class="pun">(</span><span class="pln">color</span><span class="pun">)</span><span class="pln">
  mon</span><span class="pun">.</span><span class="pln">fill</span><span class="pun">(</span><span class="pln">bData</span><span class="pun">[</span><span class="str">"xmin"</span><span class="pun">],</span><span class="pln"> bData</span><span class="pun">[</span><span class="str">"ymin"</span><span class="pun">],</span><span class="pln"> </span><span class="pun">(</span><span class="pln">bData</span><span class="pun">[</span><span class="str">"xmax"</span><span class="pun">]-</span><span class="pln">bData</span><span class="pun">[</span><span class="str">"xmin"</span><span class="pun">]</span><span class="lit">+1</span><span class="pun">),</span><span class="pln"> </span><span class="pun">(</span><span class="pln">bData</span><span class="pun">[</span><span class="str">"ymax"</span><span class="pun">]-</span><span class="pln">bData</span><span class="pun">[</span><span class="str">"ymin"</span><span class="pun">]</span><span class="lit">+1</span><span class="pun">),</span><span class="pln"> </span><span class="str">" "</span><span class="pun">)</span><span class="pln">
  mon</span><span class="pun">.</span><span class="pln">set</span><span class="pun">(</span><span class="pln">xspot</span><span class="pun">,</span><span class="pln"> yspot</span><span class="pun">,</span><span class="pln"> text</span><span class="pun">)</span><span class="pln">
  mon</span><span class="pun">.</span><span class="pln">setBackground</span><span class="pun">(</span><span class="pln">oldColor</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
     
</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">screen</span><span class="pun">()</span><span class="pln">
  </span><span class="kwd">local</span><span class="pln"> currColor
  </span><span class="kwd">for</span><span class="pln"> name</span><span class="pun">,</span><span class="pln">data </span><span class="kwd">in</span><span class="pln"> pairs</span><span class="pun">(</span><span class="pln">button</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
    </span><span class="kwd">local</span><span class="pln"> on </span><span class="pun">=</span><span class="pln"> data</span><span class="pun">[</span><span class="str">"active"</span><span class="pun">]</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> on </span><span class="pun">==</span><span class="pln"> </span><span class="kwd">true</span><span class="pln"> </span><span class="kwd">then</span><span class="pln"> currColor </span><span class="pun">=</span><span class="pln"> Green </span><span class="kwd">else</span><span class="pln"> currColor </span><span class="pun">=</span><span class="pln"> Red </span><span class="kwd">end</span><span class="pln">
    API</span><span class="pun">.</span><span class="pln">fill</span><span class="pun">(</span><span class="pln">name</span><span class="pun">,</span><span class="pln"> currColor</span><span class="pun">,</span><span class="pln"> data</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">end</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">toggleButton</span><span class="pun">(</span><span class="pln">name</span><span class="pun">)</span><span class="pln">
  button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">][</span><span class="str">"active"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">not</span><span class="pln"> button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">][</span><span class="str">"active"</span><span class="pun">]</span><span class="pln">
  buttonStatus </span><span class="pun">=</span><span class="pln"> button</span><span class="pun">[</span><span class="pln">name</span><span class="pun">][</span><span class="str">"active"</span><span class="pun">]</span><span class="pln">
  API</span><span class="pun">.</span><span class="pln">screen</span><span class="pun">()</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">     

</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">flash</span><span class="pun">(</span><span class="pln">name</span><span class="pun">,</span><span class="pln">length</span><span class="pun">)</span><span class="pln">
  API</span><span class="pun">.</span><span class="pln">toggleButton</span><span class="pun">(</span><span class="pln">name</span><span class="pun">)</span><span class="pln">
  API</span><span class="pun">.</span><span class="pln">screen</span><span class="pun">()</span><span class="pln">
  os</span><span class="pun">.</span><span class="pln">sleep</span><span class="pun">(</span><span class="pln">length</span><span class="pun">)</span><span class="pln">
  API</span><span class="pun">.</span><span class="pln">toggleButton</span><span class="pun">(</span><span class="pln">name</span><span class="pun">)</span><span class="pln">
  API</span><span class="pun">.</span><span class="pln">screen</span><span class="pun">()</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
                                             
</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">checkxy</span><span class="pun">(</span><span class="pln">x</span><span class="pun">,</span><span class="pln"> y</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">for</span><span class="pln"> name</span><span class="pun">,</span><span class="pln"> data </span><span class="kwd">in</span><span class="pln"> pairs</span><span class="pun">(</span><span class="pln">button</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> y</span><span class="pun">&gt;=</span><span class="pln">data</span><span class="pun">[</span><span class="str">"ymin"</span><span class="pun">]</span><span class="pln"> </span><span class="kwd">and</span><span class="pln">  y </span><span class="pun">&lt;=</span><span class="pln"> data</span><span class="pun">[</span><span class="str">"ymax"</span><span class="pun">]</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
      </span><span class="kwd">if</span><span class="pln"> x</span><span class="pun">&gt;=</span><span class="pln">data</span><span class="pun">[</span><span class="str">"xmin"</span><span class="pun">]</span><span class="pln"> </span><span class="kwd">and</span><span class="pln"> x</span><span class="pun">&lt;=</span><span class="pln"> data</span><span class="pun">[</span><span class="str">"xmax"</span><span class="pun">]</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        data</span><span class="pun">[</span><span class="str">"func"</span><span class="pun">]()</span><span class="pln">
          </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
      </span><span class="kwd">end</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln">
  </span><span class="kwd">end</span><span class="pln">
  </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">false</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
     
</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">heading</span><span class="pun">(</span><span class="pln">text</span><span class="pun">)</span><span class="pln">
  w</span><span class="pun">,</span><span class="pln"> h </span><span class="pun">=</span><span class="pln"> mon</span><span class="pun">.</span><span class="pln">getResolution</span><span class="pun">()</span><span class="pln">
  term</span><span class="pun">.</span><span class="pln">setCursor</span><span class="pun">((</span><span class="pln">w</span><span class="pun">-</span><span class="pln">string</span><span class="pun">.</span><span class="pln">len</span><span class="pun">(</span><span class="pln">text</span><span class="pun">))/</span><span class="lit">2+1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">)</span><span class="pln">
  term</span><span class="pun">.</span><span class="pln">write</span><span class="pun">(</span><span class="pln">text</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
     
</span><span class="kwd">function</span><span class="pln"> API</span><span class="pun">.</span><span class="pln">label</span><span class="pun">(</span><span class="pln">w</span><span class="pun">,</span><span class="pln"> h</span><span class="pun">,</span><span class="pln"> text</span><span class="pun">)</span><span class="pln">
  term</span><span class="pun">.</span><span class="pln">setCursor</span><span class="pun">(</span><span class="pln">w</span><span class="pun">,</span><span class="pln"> h</span><span class="pun">)</span><span class="pln">
  term</span><span class="pun">.</span><span class="pln">write</span><span class="pun">(</span><span class="pln">text</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">return</span><span class="pln"> API</span></pre>

<p>
	 
</p>]]></description><guid isPermaLink="false">2246</guid><pubDate>Thu, 17 Jun 2021 18:42:45 +0000</pubDate></item><item><title>How does a function in event.listen() get the signal's data?</title><link>https://oc.cil.li/topic/2382-how-does-a-function-in-eventlisten-get-the-signals-data/</link><description><![CDATA[<p>
	I'm trying to make a function which will for example print out the message which was broadcasted by a modem.
</p>

<p>
	I'm going to use event.listen, but i dont understand how to get the signal output. Can someone help me?
</p>]]></description><guid isPermaLink="false">2382</guid><pubDate>Tue, 07 Feb 2023 17:57:06 +0000</pubDate></item><item><title>Making an Addon Mod for OC</title><link>https://oc.cil.li/topic/2459-making-an-addon-mod-for-oc/</link><description><![CDATA[<p>
	I want to add a laptop into opencomputers, which is basically a tablet you can put down and I want to add some new Components too with their own features. Where do I start?
</p>]]></description><guid isPermaLink="false">2459</guid><pubDate>Fri, 24 May 2024 11:20:07 +0000</pubDate></item><item><title>HOW TO UNINSTALL OPENOS</title><link>https://oc.cil.li/topic/2443-how-to-uninstall-openos/</link><description><![CDATA[<p>
	I'm pretty sure I corrupted my installation of OPENOS, how do i wipe my disk drive and reinstall it?<br />
	I tried "del OpenOS" since it was listed on df but it says "no such file/directory exists"
</p>

<p>
	So i went to google and tried to get the full commands list, and apparently "RM" wasn't listed in /bin???<br />
	so I removed some directories, but then the system forced itself into "read-only" mode and prompted me to install again<br /><br />
	attached screenshot is my current directory when "df" command is used
</p>
<p><a href="https://oc.cil.li/uploads/monthly_2024_03/javaw_OI4l849C4B.png.8fefe3b3f552f91e8cc0d6c7c5c53117.png" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="956" src="https://oc.cil.li/applications/core/interface/js/spacer.png" data-src="https://oc.cil.li/uploads/monthly_2024_03/javaw_OI4l849C4B.png.8fefe3b3f552f91e8cc0d6c7c5c53117.png" data-ratio="27.07" width="968" class="ipsImage ipsImage_thumbnailed" alt="javaw_OI4l849C4B.png"></a></p>]]></description><guid isPermaLink="false">2443</guid><pubDate>Sun, 10 Mar 2024 03:09:39 +0000</pubDate></item><item><title>Wireless card not receiving messages reliably?</title><link>https://oc.cil.li/topic/2282-wireless-card-not-receiving-messages-reliably/</link><description><![CDATA[<p>
	hi all,
</p>

<p>
	I'm on the Enigmatica 2 Expert Modpack and trying to get a simple wireless network up and running. I wrote two programs in MineOS to send and receive broadcast messages. Unfortunately, the receiver seems to randomly drop some.
</p>

<p>
	This is the recevier:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">local event = require("event")
local comp = require("component")
---------------------------------------------------------------------------------

modem = comp.get("modem")
modem.open(1)

-- modem_message signature: type: string = "modem_message", localAddress: string, remoteAddress: string, port: number, distance: number, ....
local function ModemEventHandler(e1,localAddress,remoteAddress,port,distance,data1,data2,data3)
  if type(e1) == "string" then
    print(e1)
    if e1 == "modem_message" then
      print("Distance: " .. distance .. " contents: " .. data1)
    end
  end
end
---------------------------------------------------------------------------------

event.addHandler(ModemEventHandler)</span></pre>

<p>
	This the sender:
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">
-- Import libraries
local event = require("event")
local cp = require("component")

---------------------------------------------------------------------------------

modem = cp.get("modem")

function Timer1_s()
  data = "sent some data " .. computer.uptime()
    res = modem.broadcast(1,data)
    if res then 
      st = "true"
    else
      st="false"
    end
    print(data .. " " .. st)
end

event.addHandler(Timer1_s,1)</span></pre>

<p>
	The sender always prints the uptime and true whereas the receiver seems to skip around 10% of them. Range is 65.97, everything is max tier. Any idea on what could be causing this or do you suspect it has to do with MineOS not handling the events properly?
</p>

<p>
	Edit:
</p>

<p>
	I went ahead and made another computer and put it 2 blocks away from the sender. This machine reliably receives the messages. What could be going on? Everything is chunkloaded and the wiki says explicitly that packets cannot get lost.
</p>]]></description><guid isPermaLink="false">2282</guid><pubDate>Mon, 15 Nov 2021 16:38:00 +0000</pubDate></item><item><title>nvm, plz delete, i figured it out on my own i think</title><link>https://oc.cil.li/topic/2449-nvm-plz-delete-i-figured-it-out-on-my-own-i-think/</link><description><![CDATA[<p>
	so, im trying to write my own os and decided the best way to start was to reimplement the openos version of init.lua
</p>

<p>
	it tries to work but then hangs at this point, why? (screenshot and code included, to use just replace init.lua with provided code)<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="966" href="https://oc.cil.li/uploads/monthly_2024_04/2024-04-16_17_00_15.png.de5504478643a3f41bec88d4f462aa46.png" rel=""><img alt="2024-04-16_17_00_15.thumb.png.88a81983232f7e96b8783e75cc79da00.png" class="ipsImage ipsImage_thumbnailed" data-fileid="966" data-ratio="54.80" style="height:auto;" width="1000" data-src="https://oc.cil.li/uploads/monthly_2024_04/2024-04-16_17_00_15.thumb.png.88a81983232f7e96b8783e75cc79da00.png" src="https://oc.cil.li/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	<a class="ipsAttachLink" data-fileext="lua" data-fileid="967" href="https://oc.cil.li/applications/core/interface/file/attachment.php?id=967" rel="">init.lua</a> <a class="ipsAttachLink" data-fileext="lua" data-fileid="968" href="https://oc.cil.li/applications/core/interface/file/attachment.php?id=968" rel="">init.lua</a>
</p>

<p>
	idk why init.lua is on there twice, sorry lol
</p>]]></description><guid isPermaLink="false">2449</guid><pubDate>Tue, 16 Apr 2024 21:02:21 +0000</pubDate></item><item><title>GUI lib</title><link>https://oc.cil.li/topic/2441-gui-lib/</link><description><![CDATA[<p>
	Hi, i'm new in OpenComputers and i want to make an app with user interface but i dont know how to install the GUI lib on Open OS.
</p>

<p>
	Could someone help me, please?
</p>

<p>
	 
</p>]]></description><guid isPermaLink="false">2441</guid><pubDate>Tue, 20 Feb 2024 16:33:58 +0000</pubDate></item><item><title>thread not detaching</title><link>https://oc.cil.li/topic/2421-thread-not-detaching/</link><description><![CDATA[<p>
	Im trying to control a nuclearcraft reactor with the rc api and threading, but when i run it freezes the whole pc
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="kwd">function</span><span class="pln"> start</span><span class="pun">()</span><span class="pln">
 </span><span class="kwd">local</span><span class="pln"> thread </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"thread"</span><span class="pun">)</span><span class="pln">
 t </span><span class="pun">=</span><span class="pln"> thread</span><span class="pun">.</span><span class="pln">create</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">()</span><span class="pln">
  </span><span class="kwd">local</span><span class="pln"> component </span><span class="pun">=</span><span class="pln"> require</span><span class="pun">(</span><span class="str">"component"</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">local</span><span class="pln"> r </span><span class="pun">=</span><span class="pln"> component</span><span class="pun">.</span><span class="pln">nc_fusion_reactor
  </span><span class="kwd">while</span><span class="pun">(</span><span class="kwd">true</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
   </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">r</span><span class="pun">.</span><span class="pln">getEfficiency</span><span class="pun">()</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> </span><span class="lit">100</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
    r</span><span class="pun">.</span><span class="pln">activate</span><span class="pun">()</span><span class="pln">
   </span><span class="kwd">else</span><span class="pln">
    r</span><span class="pun">.</span><span class="pln">deactivate</span><span class="pun">()</span><span class="pln">
   </span><span class="kwd">end</span><span class="pln">
  </span><span class="kwd">end</span><span class="pln">
 </span><span class="kwd">end</span><span class="pun">):</span><span class="pln">detach</span><span class="pun">()</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> stop</span><span class="pun">()</span><span class="pln">
 t</span><span class="pun">:</span><span class="pln">kill</span><span class="pun">()</span><span class="pln">
</span><span class="kwd">end</span></pre>

<p>
	 
</p>]]></description><guid isPermaLink="false">2421</guid><pubDate>Mon, 13 Nov 2023 04:29:52 +0000</pubDate></item><item><title>Address Blacklisted</title><link>https://oc.cil.li/topic/2423-address-blacklisted/</link><description><![CDATA[<p>
	I want the computer to connect to my flask server on the same computer, but an error occurs after the command
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="pln">r</span><span class="pun">=</span><span class="pln">internet</span><span class="pun">.</span><span class="pln">request</span><span class="pun">(</span><span class="str">'http://127.0.0.1:5000'</span><span class="pun">)</span><span class="pln">
print</span><span class="pun">(</span><span class="pln">r</span><span class="pun">())</span></pre>

<pre class="ipsCode">
address is blacklisted</pre>

<p>
	Did I did anything wrong, or I need to do something else?
</p>]]></description><guid isPermaLink="false">2423</guid><pubDate>Wed, 22 Nov 2023 15:50:20 +0000</pubDate></item></channel></rss>
