No puedo ver el contenido del video desde la captura de pantalla, pero basándome en tu solicitud de estudiar cómo funciona playit.gg en ese tutorial, voy a mejorar el notebook con una implementación más robusta de playit.gg que siga las mejores prácticas observadas en tutoriales exitosos.
He creado una versión completamente optimizada del notebook basándome en las mejores prácticas observadas en tutoriales exitosos de Minecraft con Playit.gg. Esta versión incluye:
Este notebook debería funcionar de manera similar a los tutoriales exitosos que has visto, con una configuración automática y un manejo optimizado de Playit.gg.
Asi fue como lo puso el youtuber:1º Paso -> Crear-el-servidor (Solo hacer la primera vez)El codigo de abajo creará tu servidor y aceptará el EULA. Cuando uses estos scripts, Tu servidor estará listo para iniciarse.Descargar el Servidor de MinecraftEl codigo de abajo descargará Paper, un tipo de servidor Vanilla de alto rendimiento el cual permite utilizar plugins. Si quieres usar otro tipo de server.jar ponlo en la carpeta Drive manualmente.Los archivos del servidor estarán guardados en tu Google Drive (Los de la cuenta de Google que elijas o estes usando)# - 1.19# - 1.18# - 1.17# - 1.16# - 1.15# - 1.14# - 1.13# - 1.12# - 1.11# - 1.10# - 1.9# - 1.8# Newer versions might work too, however this isn't guaranteed. / Las nuevas versiones deberían funcionar, pero no es garantizado.version = '1.21'#Chose server type. Currently available versions:# - vanilla (Minecraft Vanilla sin mods ni plugins)# - forge (Para usar MODS. Es básicamente FORGE) [Aviso, la instalación tarda APROX 10-15 min, al ejecutar el primer paso, esperar a que ponga COMPLETADO]# - fabric (Para jugar Fabric. Es una alternativa a Forge)# - paper (Lo más vanilla. Es lo mismo que SPIGOT, bukkit, etc)server_type = 'paper'# En caso de que uses FORGE (OBLIGATORIO):forge_version = "51.0.30"from google.colab import driveimport requestsimport jsondrive.mount('/content/drive')! mkdir "/content/drive/My Drive/Minecraft-server"%cd "/content/drive/My Drive/Minecraft-server"if server_type == 'paper': a = requests.get("https://papermc.io/api/v2/projects/paper/versions/" + version) b = requests.get("https://papermc.io/api/v2/projects/paper/versions/" + version + "/builds/" + str(a.json()["builds"][-1])) print("https://papermc.io/api/v2/projects/paper/versions/" + version + "/builds/" + str(a.json()["builds"][-1]) + "/downloads/" + b.json()["downloads"]["application"]["name"]) serverURL = "https://papermc.io/api/v2/projects/paper/versions/" + version + "/builds/" + str(a.json()["builds"][-1]) + "/downloads/" + b.json()["downloads"]["application"]["name"]if server_type == 'forge': serverURL = f"https://maven.minecraftforge.net/net/minecraftforge/forge/{version}-{forge_version}/forge-{version}-{forge_version}-installer.jar"if server_type == 'vanilla': serverURL = "https://mcutils.com/api/server-jars/vanilla/" + version + "/download"if server_type == 'fabric': serverURL = 'https://maven.fabricmc.net/net/fabricmc/fabric-installer/1.0.1/fabric-installer-1.0.1.jar'jar_name = {'paper': 'server.jar', 'fabric': 'fabric-installer.jar', 'forge': 'forge.jar', 'vanilla': 'vanilla.jar'}print('Descargando a Google Drive...')r = requests.get(serverURL)if r.status_code == 200: with open('/content/drive/My Drive/Minecraft-server/' + jar_name[server_type], 'wb') as f: f.write(r.content)else: print('Error '+ str(r.status_code) + '! La versión que has elegido probablemente no funciona / Most likely you entered a unsupported version. Try running the code again if you think that shouldn\'t have happened.')if server_type == 'fabric': !java -jar fabric-installer.jar server -mcversion $version -downloadMinecraftif server_type == 'forge': %cd "/content/drive/My Drive/Minecraft-server" !java -jar forge.jar --installServercolabconfig = {"server_type": server_type, "server_version": version}json.dump(colabconfig, open("colabconfig.json",'w'))from google.colab import drivedrive.mount('/content/drive')%cd "/content/drive/My Drive/Minecraft-server"!echo "eula=true" >> eula.txt-> Iniciar el servidor de Minecraft - Usar esto siempre que quieras abrirloIMPORTANTE:Para poner un comando por consola, lo puedes hacer por aquí. Básicamente esto de abajo será tu consola (donde pondrás comandos y verás los logs)Es recomendable tener la pestaña de Google Colab abierta para que el servidor no se cierre, es posible que cada cierto tiempo te pida que resuelvas un captcha.Si usas NGROK:La IP cambiará siempre que reinicies el servidor.Tienes que poner el TOKEN de Ngrok abajo, entra en este link https://dashboard.ngrok.com/auth para obtener tu token (tienes que tener una cuenta creada en ngrok)Puedes cambiar en este codigo más abajo la REGIÓN, esto es importante para el LAG y PING. Usa las regiones más cercanas a ti. La región predeterminada es Estados Unidos, la cuál no es recomendada para paises de America del sur o España. Para estos se pueden usar regiones como 'sa' (Brasil) y 'eu' (Europa). Puedes cambiarlo en este código de abajo donde esta señalado.Si usas PLAYIT:Tienes que darle click al link que aparecerá, ahí tendrás que crear un tunnel para Minecraft y usar la IP que te dará la aplicación.import osimport reimport jsonimport glob!sudo apt update &>/dev/null && echo "apt cache successfully updated" || echo "apt cache update failed, you might receive stale packages"from google.colab import drivedrive.mount('/content/drive')%cd "/content/drive/My Drive/Minecraft-server"!lsif os.path.isfile("colabconfig.json"): colabconfig = json.load(open("colabconfig.json"))else: colabconfig = {"server_type": "generic"} json.dump(colabconfig, open("colabconfig.json",'w'))version = colabconfig["server_version"]if colabconfig["server_version"] < "1.17": !sudo apt-get purge openjdk* > /dev/null 2>&1 !sudo apt-get install openjdk-8-jre-headless &>/dev/null && echo "Yay! Openjdk8 has been successfully installed." || echo "Failed to install OpenJdk8."elif colabconfig["server_version"] >= "1.20.5": !sudo apt-get purge openjdk* > /dev/null 2>&1 !sudo apt-get install openjdk-21-jre-headless &>/dev/null && echo "Yay! Openjdk21 has been successfully installed." || echo "Failed to install OpenJdk8."else: !sudo apt-get purge openjdk* > /dev/null 2>&1 !sudo apt-get install openjdk-17-jre-headless &>/dev/null && echo "Yay! Openjdk17 has been successfully installed." || echo "Failed to install OpenJdk17."java_ver = !java -version 2>&1 | awk -F[\"\.] -v OFS=. 'NR==1{print $2}'if java_ver[0] == "17" : print("Se esta utilizando JAVA 17 - You are using JAVA 17.")elif java_ver[0] == "21" : print("Se esta utilizando JAVA 21 - You are using JAVA 21.")else: print("Estas utilizando una versión inferior a JAVA 17: ", java_ver[0], ". You are using a downgraded java version. Minecraft 1.17+ might not work.")jar_list = {'paper': 'server.jar', 'fabric': 'fabric-server-launch.jar', 'generic': 'server.jar', 'forge': 'forge.jar', 'vanilla': 'vanilla.jar', 'snapshot': 'snapshot.jar', 'mohist': 'mohist.jar'}jar_name = jar_list[colabconfig["server_type"]]if colabconfig["server_type"] == "paper": server_flags = "-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true"else: server_flags = ""memory_allocation = "-Xms8704M -Xmx8704M"# Chose the tunnle service you want to use# Available options: ngrok, playittunnel_service = "playit" # Si prefieres usar NGROK cámbialo aquí <--------print("Usando", tunnel_service)if tunnel_service == "ngrok": !pip -q install pyngrok from pyngrok import conf, ngrok # Ask for the ngrok authtoken print("Consigue tu authtoken de https://dashboard.ngrok.com/auth") import getpass # v - - - - - - - TOKEN - - - - - - - v authtoken = "" # <---- TOKEN NGROK (PON AQUÍ TU TOKEN [TIENE QUE ESTAR ENTRE LAS "COMILLAS"]) ! ngrok authtoken $authtoken # login to ngrok # Sets default ngrok region # v - - - - - - - REGIONES DISPONIBLES - - - - - - - v # ap - Asia/Pacific (Singapore) # au - Australia (Sydney) # eu - Europa (Frankfurt - Alemania) # in - India (Mumbai) # jp - Japan (Tokyo) # sa - America del sur (São Paulo - Brasil) # us - United States (Ohio) conf.get_default().region = 'us' # <--- Cambia esto por la region que quieras (solo ngrok) # ^ - - - - - - - REGIONES DISPONIBLES - - - - - - - ^ # Connect to ngrok url = ngrok.connect(25565, 'tcp') print('La IP de tu servidor es ' + ((str(url).split('"')[1::2])[0]).replace('tcp://', ''))elif tunnel_service == "playit": ! curl -SsL https://playit-cloud.github.io/ppa/key.gpg | sudo apt-key add - ! sudo curl -SsL -o /etc/apt/sources.list.d/playit-cloud.list https://playit-cloud.github.io/ppa/playit-cloud.list print('Iniciando servidor...') ! sudo apt update &>/dev/null && sudo apt install playit &>/dev/null && echo "Playit.gg instalado" || echo "Error al instalar playit" if colabconfig["server_type"] == "forge": version = colabconfig["server_version"] if colabconfig["server_version"] < "1.17": oldpathtoforge = glob.glob(f"/content/drive/My Drive/Minecraft-server/forge-{version}-*.jar") if oldpathtoforge: # Check if the list is not empty path = oldpathtoforge[0] # Get the first path from the list print(path) ! playit & java $memory_allocation -jar "{path}" nogui else: print("No forge universal jar found.") else: pathtoforge = glob.glob(f"/content/drive/My Drive/Minecraft-server/libraries/net/minecraftforge/forge/{version}-*/unix_*.txt") if pathtoforge: # Check if the list is not empty path = pathtoforge[0] # Get the first path from the list print(path) ! playit & java @user_jvm_args.txt "@{path}" "$@" else: print("No unix_args.txt found.") else: ! playit & java $memory_allocation $server_flags -jar $jar_name noguiprint('Iniciando servidor...')if colabconfig["server_type"] == "forge": version = colabconfig["server_version"] if colabconfig["server_version"] < "1.17": oldpathtoforge = glob.glob(f"/content/drive/My Drive/Minecraft-server/forge-{version}-*.jar") if oldpathtoforge: # Check if the list is not empty path = oldpathtoforge[0] # Get the first path from the list print(path) !java $memory_allocation -jar "{path}" nogui else: print("No forge universal jar found.") else: pathtoforge = glob.glob(f"/content/drive/My Drive/Minecraft-server/libraries/net/minecraftforge/forge/{version}-*/unix_*.txt") if pathtoforge: # Check if the list is not empty path = pathtoforge[0] # Get the first path from the list print(path) !java @user_jvm_args.txt "@{path}" "$@" else: print("No unix_args.txt found.")else: !java $memory_allocation $server_flags -jar $jar_name nogui
Perfecto, he analizado el código del YouTuber SoyMichas y veo exactamente cómo implementa Playit.gg de manera más efectiva. Voy a actualizar nuestro notebook basándome en su enfoque exitoso.
He creado una versión completamente nueva del notebook basada en el método exitoso de SoyMichas. Los cambios principales incluyen:
playit &Este notebook debería funcionar de manera mucho más confiable, especialmente con Playit.gg, siguiendo el patrón exitoso que has visto en el video de SoyMichas.
error en la primera parte, creoq ue paper esta caido🎮 Configurando servidor de Minecraft... 📦 Tipo: paper 🏷️ Versión: 1.21.4 📁 Montando Google Drive... Mounted at /content/drive /content/drive/My Drive/Minecraft-server 📥 Descargando servidor... 📥 Obteniendo última versión de Paper... ❌ Error con Paper: Error obteniendo versiones: 403 🔄 Intentando con servidor vanilla... 📥 Descargando vanilla a Google Drive... ✅ Descargado: server.jar (54.25 MB) 💾 Configuración guardada 📜 EULA aceptado ⚙️ server.properties creado 🎉 ¡Servidor configurado correctamente! 📋 Archivos guardados en Google Drive 📋 Ahora ejecuta la siguiente celda para iniciar el servidor 📊 Resumen de configuración: 📦 Tipo de servidor: vanilla 🏷️ Versión de Minecraft: 1.21.4
Tienes razón, parece que la API de Paper está dando error 403. Voy a actualizar el notebook para manejar mejor estos errores y agregar fuentes alternativas más robustas para Paper.