{"id":19,"date":"2023-12-31T15:30:43","date_gmt":"2023-12-31T15:30:43","guid":{"rendered":"https:\/\/antwanmeave.com\/?page_id=19"},"modified":"2026-03-12T07:48:45","modified_gmt":"2026-03-12T07:48:45","slug":"projects","status":"publish","type":"page","link":"https:\/\/antwanmeave.com\/index.php\/projects\/","title":{"rendered":"Projects"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"19\" class=\"elementor elementor-19\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-96336f2 e-flex e-con-boxed e-con e-parent\" data-id=\"96336f2\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-feb228a elementor-widget elementor-widget-heading\" data-id=\"feb228a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 07-02-2024 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h1 class=\"elementor-heading-title elementor-size-default\">JavaScript Game<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43abea2 elementor-widget elementor-widget-spacer\" data-id=\"43abea2\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 07-02-2024 *\/\n.elementor-column .elementor-spacer-inner{height:var(--spacer-size)}.e-con{--container-widget-width:100%}.e-con-inner>.elementor-widget-spacer,.e-con>.elementor-widget-spacer{width:var(--container-widget-width,var(--spacer-size));--align-self:var(--container-widget-align-self,initial);--flex-shrink:0}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container,.e-con>.elementor-widget-spacer>.elementor-widget-container{height:100%;width:100%}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer{height:100%}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner{height:var(--container-widget-height,var(--spacer-size))}.e-con-inner>.elementor-widget-spacer.elementor-widget-empty,.e-con>.elementor-widget-spacer.elementor-widget-empty{position:relative;min-height:22px;min-width:22px}.e-con-inner>.elementor-widget-spacer.elementor-widget-empty .elementor-widget-empty-icon,.e-con>.elementor-widget-spacer.elementor-widget-empty .elementor-widget-empty-icon{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;padding:0;width:22px;height:22px}<\/style>\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f1a7e6 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"8f1a7e6\" data-element_type=\"widget\" id=\"sh0\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE HTML>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\" \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n    <style>\n        #yourGameCanvasID,\n        .game-wrapper {\n            width: 100% !important;\n            max-width: 100vw !important;\n            overflow-x: auto;\n            margin: 0 auto;\n            display: block;\n        }\n\n        .iframe-container {\n            width: 100%;\n            max-width: 100vw;\n            overflow-x: auto;\n            margin: 0 auto;\n        }\n    <\/style>\n<\/head>\n\n<body>\n    <div class=\"iframe-container\">\n        <script>\n            \/\/ Function to check if the device is a mobile\n            function isMobile() {\n                return window.innerWidth <= 768; \/\/ Adjust the width threshold as needed\n            }\n\n            \/\/ Set the iframe source based on the device\n            var iframeSrc = isMobile() ? \"\/game\/sh_mobile\/game2.html\" : \"\/game\/sh_desktop\/game.html\";\n\n            \/\/ Set the height of the iframe based on the device\n            var iframeHeight = isMobile() ? \"500px\" : \"780px\"; \/\/ Adjust the height as needed\n\n            \/\/ Create the iframe element\n            var iframe = document.createElement(\"iframe\");\n            iframe.id = \"gameIframe\";\n            iframe.src = iframeSrc;\n            iframe.width = \"100%\";\n            iframe.height = iframeHeight;\n            iframe.frameBorder = \"0\";\n            iframe.scrolling = \"no\";\n\n            \/\/ Append the iframe to the container\n            document.querySelector(\".iframe-container\").appendChild(iframe);\n\n            \/\/ Example: Add an event listener for a play button click\n            var playButton = document.getElementById(\"playButton\");\n\n            if (playButton) {\n                playButton.addEventListener(\"click\", function() {\n                    \/\/ Add your play button click logic here\n                    \/\/ For example: document.getElementById(\"gameIframe\").contentWindow.startGame();\n                });\n            }\n        <\/script>\n    <\/div>\n<\/body>\n\n<\/html>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c35b2b4 elementor-widget elementor-widget-text-editor\" data-id=\"c35b2b4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 07-02-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<p><strong>PRESS PLAY!<\/strong> Brought to life by the Phaser 3 game engine and alot of JavaScript and love. Once you dive in, you&#8217;ll find yourself in control of a plane armed and ready to take on fast moving blobs as you increase your high score. This game seamlessly adapts to various devices, whether you&#8217;re playing on a desktop monitor or a mobile screen. (Working on issues with 240hz monitors)<\/p>\n<p><a href=\"https:\/\/github.com\/Ammmmmmmmmmmmmmmm\/portfolio_website\" target=\"_blank\" rel=\"noopener\">Check code on GitHub!<\/a><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7a4dc39 e-flex e-con-boxed e-con e-parent\" data-id=\"7a4dc39\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8757081 elementor-widget elementor-widget-spacer\" data-id=\"8757081\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a72b5aa elementor-widget elementor-widget-heading\" data-id=\"a72b5aa\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">HPE Server Configuration and Updates<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06c6029 elementor-widget elementor-widget-spacer\" data-id=\"06c6029\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3892a80 elementor-widget elementor-widget-ha-slider happy-addon ha-slider\" data-id=\"3892a80\" data-element_type=\"widget\" data-settings=\"{&quot;navigation&quot;:&quot;both&quot;,&quot;animation_speed&quot;:300,&quot;loop&quot;:&quot;yes&quot;,&quot;slides_transition&quot;:&quot;slide&quot;}\" data-widget_type=\"ha-slider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n\t\t<div class=\"hajs-slick ha-slick ha-slick--slider\">\n\n\t\t\t\n\t\t\t\t<div class=\"ha-slick-slide slick-slide\">\n\t\t\t\t\t<div class=\"ha-slick-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" class=\"ha-slick-img\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/05\/11__1server_components-1-1536x864.png\" alt=\"\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\n\t\t\t\t<div class=\"ha-slick-slide slick-slide\">\n\t\t\t\t\t<div class=\"ha-slick-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" class=\"ha-slick-img\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/05\/2server_front-1536x864.png\" alt=\"\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\n\t\t\t\t<div class=\"ha-slick-slide slick-slide\">\n\t\t\t\t\t<div class=\"ha-slick-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" class=\"ha-slick-img\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/05\/3server_rear-1536x864.png\" alt=\"\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\n\t\t\t\t<div class=\"ha-slick-slide slick-slide\">\n\t\t\t\t\t<div class=\"ha-slick-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" class=\"ha-slick-img\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/05\/4setting_up_ilo-1536x864.png\" alt=\"\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\n\t\t\t\t<div class=\"ha-slick-slide slick-slide\">\n\t\t\t\t\t<div class=\"ha-slick-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" class=\"ha-slick-img\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/05\/5updateing_through_ilo-1536x864.png\" alt=\"\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\n\t\t\t\t<div class=\"ha-slick-slide slick-slide\">\n\t\t\t\t\t<div class=\"ha-slick-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" class=\"ha-slick-img\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/05\/6remoting_with_html5-1536x864.png\" alt=\"\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\n\t\t<\/div>\n\n\t\t\t\t\t<button type=\"button\" class=\"slick-prev\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-left\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"><\/path><\/svg><\/button>\n\t\t\n\t\t\t\t\t<button type=\"button\" class=\"slick-next\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg><\/button>\n\t\t\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-693e236 elementor-widget elementor-widget-text-editor\" data-id=\"693e236\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p><strong>When setting up a used HPE server<\/strong>, the first thing you do is create an iLO connection so that you can start updates on firmware and drivers that have not received security patches or fixes in years. iLO is like a mini computer within the server that is always on and has remote management and diagnostic tools. On startup press f8 to open up iLO 4 settings and select &#8220;Set to Default&#8221; to reset everything to factory settings. Then you connect to iLO by putting its IP address into a browser screen on another device and using the password on the toe tag. Use iLO to update firmware and drivers by remotely placing in .bin files in the &#8220;Firmware&#8221; tab. Now that the HPE server hardware and firmware is setup I will be installing Ubuntu Server 24 to run gaming servers.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1f2b6ab elementor-widget elementor-widget-spacer\" data-id=\"1f2b6ab\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a42495 elementor-widget elementor-widget-heading\" data-id=\"7a42495\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\"><span><h2 class=\"major\"><span>Active Directory Windows Server<\/span><\/h2><\/span><\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d268866 elementor-widget elementor-widget-image\" data-id=\"d268866\" data-element_type=\"widget\" id=\"ad1\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 07-02-2024 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1280\" height=\"720\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/1280.png\" class=\"attachment-1536x1536 size-1536x1536 wp-image-181\" alt=\"\" srcset=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/1280.png 1280w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/1280-300x169.png 300w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/1280-1024x576.png 1024w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/1280-768x432.png 768w\" sizes=\"(max-width: 1280px) 100vw, 1280px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9564a3c elementor-widget elementor-widget-spacer\" data-id=\"9564a3c\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-94aa9dd e-flex e-con-boxed e-con e-parent\" data-id=\"94aa9dd\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-046ff49 elementor-widget elementor-widget-text-editor\" data-id=\"046ff49\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p><strong>For the purpose of simulating device management in an office environment,<\/strong> I established a Windows Active Directory Server. This server was configured within a virtual machine, seamlessly integrated with other virtual machines, all within the same network and domain.<\/p><p>Within this domain environment, I streamlined the process of adding thousands of users to our Active Directory system. Using a script named user_creating_script.ps1, it automatically generates and integrates 1000 users from a userlist.csv file, assigning them to the proper security groups among other things. This ensures that anyone added to our Active Directory can access all office computers within our network with their account. <br \/><br \/><a href=\"https:\/\/github.com\/Ammmmmmmmmmmmmmmm\/Active-Directory-User-Manipulation\" target=\"_blank\" rel=\"noopener\">Check code on GitHub!<\/a><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e8bf7e elementor-widget elementor-widget-spacer\" data-id=\"9e8bf7e\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9039829 e-flex e-con-boxed e-con e-parent\" data-id=\"9039829\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-827dac2 elementor-widget elementor-widget-heading\" data-id=\"827dac2\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Command Log File Parser<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-18f25e3 elementor-widget elementor-widget-spacer\" data-id=\"18f25e3\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c264355 elementor-widget elementor-widget-image\" data-id=\"c264355\" data-element_type=\"widget\" id=\"cl2\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1536\" height=\"864\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/about_me-1536x864.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-207\" alt=\"\" srcset=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/about_me-1536x864.jpg 1536w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/about_me-300x169.jpg 300w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/about_me-1024x576.jpg 1024w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/about_me-768x432.jpg 768w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/about_me-2048x1152.jpg 2048w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-329a9f5 e-flex e-con-boxed e-con e-parent\" data-id=\"329a9f5\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-59fefd3 elementor-widget elementor-widget-spacer\" data-id=\"59fefd3\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bde870f elementor-widget elementor-widget-text-editor\" data-id=\"bde870f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p><strong>Running a game server is fun, but can become tedious<\/strong> when handling repetitive administrative tasks. Instead of the 10 minute task of: SSH&#8217;ing into instance, turning off the server, moving many files around, generating specific maps, starting server, I created a python and bash script that can do that all in 5 seconds. This resulted in less server downtime and a better user experience.<\/p><p>Initially, I created a Python script that monitors in-game messages written to the log file. Using Regex, the script identifies if a message was written by an admin, and if it contains a command. Upon detecting an admin command, the script triggers a Bash script that replaces and loads another map with specific configurations, effectively stopping and restarting the server all within the span of 5 seconds. Additionally, a revert command is in place, allowing users to undo the previous action and return to the last map. This implementation ensures a more enjoyable experience for all server users.<br \/><br \/><a href=\"https:\/\/github.com\/Ammmmmmmmmmmmmmmm\/server_integration\" target=\"_blank\" rel=\"noopener\">Check code on GitHub!<\/a><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d6e2787 elementor-widget elementor-widget-spacer\" data-id=\"d6e2787\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c219c9d e-flex e-con-boxed e-con e-parent\" data-id=\"c219c9d\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d6f2882 elementor-widget elementor-widget-heading\" data-id=\"d6f2882\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">CSV Data Team Assignment Tool<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0cb5101 e-flex e-con-boxed e-con e-parent\" data-id=\"0cb5101\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aeef226 elementor-widget elementor-widget-image\" data-id=\"aeef226\" data-element_type=\"widget\" id=\"dt3\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1536\" height=\"864\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/pic02-1536x864.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-211\" alt=\"\" srcset=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/pic02-1536x864.jpg 1536w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/pic02-300x169.jpg 300w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/pic02-1024x576.jpg 1024w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/pic02-768x432.jpg 768w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/pic02-2048x1152.jpg 2048w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f843304 elementor-widget elementor-widget-spacer\" data-id=\"f843304\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eee8cca elementor-widget elementor-widget-text-editor\" data-id=\"eee8cca\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p><strong> For a Royal Clan tournament we hosted,<\/strong> 75 players of many skill levels signed up on a google form placing their in game name and two different types of ranks. It was important to assign teams by comparing the two different types of ranks and aggregating them to split the players into balanced teams.<\/p><p>First the data must be imported from the google doc as a CSV file. Since users sometimes input data wrong, the data had to be standardized with Regex in a Python script. Then, we decided that one type of rank should take priority over the other, and from there I made code that listed all the participants by skill. From there I created another Python script that goes over the participants and places them by rank into teams of 3. The work I had created played a valuable role within our team in ensuring a fair and enjoyable tournament experience for both participants and spectators. <br \/><br \/><a href=\"https:\/\/github.com\/Ammmmmmmmmmmmmmmm\/royal_csv\" target=\"_blank\" rel=\"noopener\">Check code on GitHub!<\/a><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-13492e2 e-flex e-con-boxed e-con e-parent\" data-id=\"13492e2\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7d4cc15 elementor-widget elementor-widget-spacer\" data-id=\"7d4cc15\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29f3702 elementor-widget elementor-widget-heading\" data-id=\"29f3702\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">antwanmeave.com<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-25f6691 e-flex e-con-boxed e-con e-parent\" data-id=\"25f6691\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bdfecf4 elementor-widget elementor-widget-image\" data-id=\"bdfecf4\" data-element_type=\"widget\" id=\"web4\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"864\" src=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/website-image-1536x864.png\" class=\"attachment-1536x1536 size-1536x1536 wp-image-291\" alt=\"\" srcset=\"https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/website-image-1536x864.png 1536w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/website-image-300x169.png 300w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/website-image-1024x576.png 1024w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/website-image-768x432.png 768w, https:\/\/antwanmeave.com\/wp-content\/uploads\/2024\/02\/website-image-2048x1152.png 2048w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-328b3a1 e-flex e-con-boxed e-con e-parent\" data-id=\"328b3a1\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;,&quot;_ha_eqh_enable&quot;:false}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6799d3c elementor-widget elementor-widget-spacer\" data-id=\"6799d3c\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1afe980 elementor-widget elementor-widget-text-editor\" data-id=\"1afe980\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"project-description\"><p><strong>Welcome to my personal website,<\/strong> a labor of passion where I&#8217;ve poured my creativity into every CSS design element, HTML content structure, and WordPress widget. This site also hosts my Phaser game, and it&#8217;s a result of many hours of work, including domain name acquisition and hosting. I appreciate your visit and hope you&#8217;ve enjoyed exploring my digital portfolio. Thank you for stopping by! If you&#8217;d like to learn more, please feel free to check out my LinkedIn and GitHub profiles below.<\/p><p><a href=\"https:\/\/github.com\/Ammmmmmmmmmmmmmmm\/portfolio_website\" target=\"_blank\" rel=\"noopener\">Check code on GitHub!<\/a><\/p><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>JavaScript Game PRESS PLAY! Brought to life by the Phaser 3 game engine and alot of JavaScript and love. Once you dive in, you&#8217;ll find yourself in control of a plane armed and ready to take on fast moving blobs as you increase your high score. This game seamlessly adapts to various devices, whether you&#8217;re [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-19","page","type-page","status-publish","hentry"],"blocksy_meta":[],"acf":[],"_links":{"self":[{"href":"https:\/\/antwanmeave.com\/index.php\/wp-json\/wp\/v2\/pages\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/antwanmeave.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/antwanmeave.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/antwanmeave.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/antwanmeave.com\/index.php\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":228,"href":"https:\/\/antwanmeave.com\/index.php\/wp-json\/wp\/v2\/pages\/19\/revisions"}],"predecessor-version":[{"id":1354,"href":"https:\/\/antwanmeave.com\/index.php\/wp-json\/wp\/v2\/pages\/19\/revisions\/1354"}],"wp:attachment":[{"href":"https:\/\/antwanmeave.com\/index.php\/wp-json\/wp\/v2\/media?parent=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}