mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-25 12:54:06 -04:00
Custom server port (#6406)
* custom server port * format * format * Modify port range. * Custom server port in client. * replace `rangeTo`. * format: Rename `getUrlWithPort` to `checkMultiplayerServerWithPort`. Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
This commit is contained in:
parent
84561e7ad4
commit
f6a0a5595f
@ -1,12 +1,12 @@
|
|||||||
package com.unciv.logic.multiplayer
|
package com.unciv.logic.multiplayer
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx
|
|
||||||
import com.badlogic.gdx.Net
|
import com.badlogic.gdx.Net
|
||||||
import com.unciv.Constants
|
import com.unciv.Constants
|
||||||
import com.unciv.UncivGame
|
import com.unciv.UncivGame
|
||||||
import com.unciv.logic.GameInfo
|
import com.unciv.logic.GameInfo
|
||||||
import com.unciv.logic.GameInfoPreview
|
import com.unciv.logic.GameInfoPreview
|
||||||
import com.unciv.logic.GameSaver
|
import com.unciv.logic.GameSaver
|
||||||
|
import com.unciv.models.metadata.checkMultiplayerServerWithPort
|
||||||
import com.unciv.ui.saves.Gzip
|
import com.unciv.ui.saves.Gzip
|
||||||
import com.unciv.ui.worldscreen.mainmenu.OptionsPopup
|
import com.unciv.ui.worldscreen.mainmenu.OptionsPopup
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@ -24,11 +24,11 @@ interface IFileMetaData {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
class UncivServerFileStorage(val serverIp:String):IFileStorage {
|
class UncivServerFileStorage(serverIpWithPort:String):IFileStorage {
|
||||||
val serverUrl = "http://$serverIp:8080"
|
val serverUrl = "http://$serverIpWithPort"
|
||||||
override fun saveFileData(fileName: String, data: String) {
|
override fun saveFileData(fileName: String, data: String) {
|
||||||
OptionsPopup.SimpleHttp.sendRequest(Net.HttpMethods.PUT, "$serverUrl/files/$fileName", data){
|
OptionsPopup.SimpleHttp.sendRequest(Net.HttpMethods.PUT, "$serverUrl/files/$fileName", data){
|
||||||
success: Boolean, result: String ->
|
success: Boolean, result: String ->
|
||||||
if (!success) {
|
if (!success) {
|
||||||
println(result)
|
println(result)
|
||||||
throw java.lang.Exception(result)
|
throw java.lang.Exception(result)
|
||||||
@ -70,7 +70,10 @@ class OnlineMultiplayer {
|
|||||||
val settings = UncivGame.Current.settings
|
val settings = UncivGame.Current.settings
|
||||||
if (settings.multiplayerServer == Constants.dropboxMultiplayerServer)
|
if (settings.multiplayerServer == Constants.dropboxMultiplayerServer)
|
||||||
fileStorage = DropboxFileStorage()
|
fileStorage = DropboxFileStorage()
|
||||||
else fileStorage = UncivServerFileStorage(settings.multiplayerServer)
|
else {
|
||||||
|
val serverIpWithPort = settings.multiplayerServer.checkMultiplayerServerWithPort()
|
||||||
|
fileStorage = UncivServerFileStorage(serverIpWithPort)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun tryUploadGame(gameInfo: GameInfo, withPreview: Boolean) {
|
fun tryUploadGame(gameInfo: GameInfo, withPreview: Boolean) {
|
||||||
|
7
core/src/com/unciv/models/metadata/ExtensionFunctions.kt
Normal file
7
core/src/com/unciv/models/metadata/ExtensionFunctions.kt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
package com.unciv.models.metadata
|
||||||
|
|
||||||
|
/** Check the url, if no port, add [defaultPort], then return the url. */
|
||||||
|
fun String.checkMultiplayerServerWithPort(defaultPort: Int = 8080): String {
|
||||||
|
return if (contains(":")) this
|
||||||
|
else "$this:$defaultPort"
|
||||||
|
}
|
@ -16,6 +16,7 @@ import com.unciv.UncivGame
|
|||||||
import com.unciv.logic.MapSaver
|
import com.unciv.logic.MapSaver
|
||||||
import com.unciv.logic.civilization.PlayerType
|
import com.unciv.logic.civilization.PlayerType
|
||||||
import com.unciv.models.UncivSound
|
import com.unciv.models.UncivSound
|
||||||
|
import com.unciv.models.metadata.checkMultiplayerServerWithPort
|
||||||
import com.unciv.models.ruleset.Ruleset
|
import com.unciv.models.ruleset.Ruleset
|
||||||
import com.unciv.models.ruleset.Ruleset.RulesetError
|
import com.unciv.models.ruleset.Ruleset.RulesetError
|
||||||
import com.unciv.models.ruleset.Ruleset.RulesetErrorSeverity
|
import com.unciv.models.ruleset.Ruleset.RulesetErrorSeverity
|
||||||
@ -342,9 +343,9 @@ class OptionsPopup(val previousScreen: BaseScreen) : Popup(previousScreen) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun successfullyConnectedToServer(action: (Boolean, String)->Unit){
|
fun successfullyConnectedToServer(action: (Boolean, String)->Unit){
|
||||||
SimpleHttp.sendGetRequest( "http://"+ settings.multiplayerServer+":8080/isalive", action)
|
SimpleHttp.sendGetRequest("http://${settings.multiplayerServer.checkMultiplayerServerWithPort()}/isalive", action)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getAdvancedTab() = Table(BaseScreen.skin).apply {
|
private fun getAdvancedTab() = Table(BaseScreen.skin).apply {
|
||||||
|
@ -12,12 +12,25 @@ import java.io.File
|
|||||||
|
|
||||||
|
|
||||||
internal object UncivServer {
|
internal object UncivServer {
|
||||||
|
private var serverPort = 8080
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun main(arg: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
|
args.forEach { arg ->
|
||||||
|
when {
|
||||||
|
arg.startsWith("-port=") -> with(arg.removePrefix("-port=").toIntOrNull() ?: 0) {
|
||||||
|
if (this in 1024..49151) serverPort = this
|
||||||
|
else println("'port' must be between 1024 and 49151")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println("Server will run on $serverPort port, you can use '-port=XXXX' custom port.")
|
||||||
|
|
||||||
val fileFolderName = "MultiplayerFiles"
|
val fileFolderName = "MultiplayerFiles"
|
||||||
File(fileFolderName).mkdir()
|
File(fileFolderName).mkdir()
|
||||||
println(File(fileFolderName).absolutePath)
|
println(File(fileFolderName).absolutePath)
|
||||||
embeddedServer(Netty, port = 8080) {
|
embeddedServer(Netty, port = serverPort) {
|
||||||
routing {
|
routing {
|
||||||
get("/isalive") {
|
get("/isalive") {
|
||||||
call.respondText("true")
|
call.respondText("true")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user