63 lines
8.0 KiB
Go
63 lines
8.0 KiB
Go
package main
|
|
|
|
import (
|
|
"errors"
|
|
"flag"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
|
|
var pool Pool
|
|
pool.init()
|
|
|
|
var flagTCP = flag.String("tcp", ":12345", "Listen [address]:port for the TCP listener.")
|
|
var flagHTTP = flag.String("http", ":8888", "Listen [addres]:port for the HTTP listener.")
|
|
flag.Parse()
|
|
pool.tcp_port = *flagTCP
|
|
pool.http_port = *flagHTTP
|
|
|
|
http.HandleFunc("/", pool.getRoot)
|
|
|
|
pool.logger.Println("Starting TCP listener on", pool.tcp_port)
|
|
go pool.tcplistener()
|
|
|
|
pool.logger.Println("Starting HTTP listener on", pool.http_port)
|
|
err := http.ListenAndServe(pool.http_port, nil)
|
|
if errors.Is(err, http.ErrServerClosed) {
|
|
pool.logger.Println("server closed.")
|
|
} else if err != nil {
|
|
pool.logger.Printf("error starting server: %s\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func (pool *Pool) init() {
|
|
// Init logging stuff
|
|
pool.logger = log.New(os.Stdout, "[DCS] ", log.Ldate|log.Ltime)
|
|
|
|
// Do unitTypes
|
|
pool.unitTypes = make(map[string]string)
|
|
pool.unitTypes["shilka"] = "aa"
|
|
pool.unitTypes["hoop op welvaart"] = "boat"
|
|
|
|
ships := []string{"ALBATROS", "ara_vdm", "BDK-775", "CastleClass_01", "CV_1143_5", "CVN_71", "CVN_72", "CVN_73", "CVN_75", "Dry-cargo ship-1", "Dry-cargo ship-2", "ELNYA", "Forrestal", "HandyWind", "HarborTug", "Higgins_boat", "hms_invincible", "IMPROVED_KILO", "KILO", "KUZNECOW", "La_Combattante_II", "leander-gun-achilles", "leander-gun-andromeda", "leander-gun-ariadne", "leander-gun-condell", "leander-gun-lynch", "LHA_Tarawa", "LST_Mk2", "MOLNIYA", "MOSCOW", "NEUSTRASH", "PERRY", "PIOTR", "REZKY", "santafe", "Schnellboot_type_S130", "Seawise_Giant", "Ship_Tilde_Supply", "SOM", "speedboat", "Stennis", "TICONDEROG", "Type_052B", "Type_052C", "Type_054A", "Type_071", "Type_093", "Uboat_VIIC", "USS_Arleigh_Burke_IIa", "USS_Samuel_Chase", "VINSON", "ZWEZDNY"}
|
|
planes := []string{"A-10A", "A-10C_2", "A-10C", "A-20G", "A-50", "AJS37", "An-26B", "An-30M", "AV8BNA", "B-17G", "B-1B", "B-52H", "Bf-109K-4", "C-101CC", "C-101EB", "C-130", "C-17A", "C-47", "Christen Eagle II", "E-2C", "E-3A", "F-117A", "F-14A-135-GR", "F-14A", "F-14B", "F-15C", "F-15E", "F-15ESE", "F-16A", "F-16A MLU", "F-16C_50", "F-16C bl.50", "F-16C bl.52d", "F-4E", "F-5E-3", "F-5E", "F-86F Sabre", "FA-18A", "FA-18C_hornet", "FA-18C", "FW-190A8", "FW-190D9", "H-6J", "Hawk", "I-16", "IL-76MD", "IL-78M", "J-11A", "JF-17", "Ju-88A4", "KC130", "KC-135", "KC135MPRS", "KJ-2000", "L-39C", "L-39ZA", "M-2000C", "MB-339A", "MB-339APAN", "MiG-15bis", "MiG-19P", "MiG-21Bis", "MiG-23MLD", "MiG-25PD", "MiG-25RBT", "MiG-27K", "MiG-29A", "MiG-29G", "MiG-29S", "MiG-31", "Mirage 2000-5", "Mirage-F1BD", "Mirage-F1BE", "Mirage-F1B", "Mirage-F1BQ", "Mirage-F1C-200", "Mirage-F1CE", "Mirage-F1CG", "Mirage-F1CH", "Mirage-F1CJ", "Mirage-F1CK", "Mirage-F1C", "Mirage-F1CR", "Mirage-F1CT", "Mirage-F1CZ", "Mirage-F1DDA", "Mirage-F1EDA", "Mirage-F1ED", "Mirage-F1EE", "Mirage-F1EH", "Mirage-F1EQ", "Mirage-F1JA", "Mirage-F1M-CE", "Mirage-F1M-EE", "MosquitoFBMkVI", "MQ-9 Reaper", "P-47D-30bl1", "P-47D-30", "P-47D-40", "P-51D-30-NA", "P-51D", "RQ-1A Predator", "S-3B", "S-3B Tanker", "SpitfireLFMkIXCW", "SpitfireLFMkIX", "Su-17M4", "Su-24M", "Su-24MR", "Su-25", "Su-25T", "Su-25TM", "Su-27", "Su-30", "Su-33", "Su-34", "TF-51D", "Tornado GR4", "Tornado IDS", "Tu-142", "Tu-160", "Tu-22M3", "Tu-95MS", "WingLoong-I", "Yak-40", "Yak-52"}
|
|
helis := []string{"AH-1W", "AH-64A", "AH-64D_BLK_II", "AH-64D", "CH-47D", "CH-53E", "Ka-27", "Ka-50_3", "Ka-50", "Mi-24P", "Mi-24V", "Mi-26", "Mi-28N", "Mi-8MT", "OH-58D", "SA342L", "SA342Minigun", "SA342Mistral", "SA342M", "SH-3W", "SH-60B", "UH-1H", "UH-60A"}
|
|
ground := []string{"1L13 EWR", "2B11 mortar", "2S6 Tunguska", "55G6 EWR", "5p73 s-125 ln", "AA8", "AAV7", "Allies_Director", "ATMZ-5", "ATZ-10", "ATZ-5", "ATZ-60_Maz", "Bedford_MWD", "Blitz_36-6700A", "BMD-1", "BMP-1", "BMP-2", "BMP-3", "bofors40", "Boxcartrinity", "BRDM-2", "BTR-80", "BTR-82A", "BTR_D", "Bunker", "CCKW_353", "Centaur_IV", "Challenger2", "Chieftain_mk3", "Churchill_VII", "Coach a passenger", "Coach a platform", "Coach a tank blue", "Coach a tank yellow", "Coach cargo", "Coach cargo open", "Cobra", "Cromwell_IV", "Daimler_AC", "Dog Ear radar", "DR_50Ton_Flat_Wagon", "DRG_Class_86", "Electric locomotive", "Elefant_SdKfz_184", "ES44AH", "fire_control", "flak18", "flak30", "flak36", "flak37", "flak38", "flak41", "Flakscheinwerfer_37", "FPS-117 Dome", "FPS-117 ECS", "FPS-117", "FuMG-401", "FuSe-65", "GAZ-3307", "GAZ-3308", "GAZ-66", "generator_5i57", "Gepard", "German_covered_wagon_G10", "German_tank_wagon", "Grad_FDDM", "Grad-URAL", "Hawk cwar", "Hawk ln", "Hawk pcp", "Hawk sr", "Hawk tr", "HEMTT_C-RAM_Phalanx", "HEMTT TFFT", "HL_B8M1", "HL_DSHK", "HL_KORD", "HL_ZU-23", "Horch_901_typ_40_kfz_21", "house1arm", "house2arm", "houseA_arm", "HQ-7_LN_EO", "HQ-7_LN_SP", "HQ-7_STR_SP", "Hummer", "hy_launcher", "Igla manpad INS", "IKARUS Bus", "Infantry AK Ins", "Infantry AK", "Infantry AK ver2", "Infantry AK ver3", "Jagdpanther_G1", "JagdPz_IV", "JTAC", "KAMAZ Truck", "KDO_Mod40", "KrAZ6322", "KS-19", "Kub 1S91 str", "Kub 2P25 ln", "Kubelwagen_82", "Land_Rover_101_FC", "Land_Rover_109_S3", "LARC-V", "LAV-25", "LAZ Bus", "Leclerc", "LeFH_18-40-105", "Leopard1A3", "leopard-2A4", "leopard-2A4_trs", "Leopard-2A5", "Leopard-2", "LiAZ Bus", "Locomotive", "M1043 HMMWV Armament", "M1045 HMMWV TOW", "M1097 Avenger", "M-109", "M10_GMC", "M1126 Stryker ICV", "M1128 Stryker MGS", "M1134 Stryker ATGM", "M-113", "M12_GMC", "M1_37mm", "M-1 Abrams", "M2A1-105", "M2A1_halftrack", "M-2 Bradley", "M30_CC", "M45_Quadmount", "M48 Chaparral", "M4A4_Sherman_FF", "M4_Sherman", "M4_Tractor", "M-60", "M6 Linebacker", "M 818", "M8_Greyhound", "M978 HEMTT Tanker", "Marder", "Maschinensatz_33", "MAZ-6303", "MCV-80", "Merkava_Mk4", "MLRS FDDM", "MLRS", "MTLB", "NASAMS_Command_Post", "NASAMS_LN_B", "NASAMS_LN_C", "NASAMS_Radar_MPQ64F1", "Osa 9A33 ln", "outpost", "outpost_road", "p-19 s-125 sr", "Pak40", "Paratrooper AKS-74", "Paratrooper RPG-16", "Patriot AMG", "Patriot cp", "Patriot ECS", "Patriot EPP", "Patriot ln", "Patriot str", "PLZ05", "Predator GCS", "Predator TrojanSpirit", "PT_76", "Pz_IV_H", "Pz_V_Panther_G", "QF_37_AA", "rapier_fsa_blindfire_radar", "rapier_fsa_launcher", "rapier_fsa_optical_tracker_unit", "RD_75", "RLS_19J6", "Roland ADS", "Roland Radar", "RPC_5N62V", "S-200_Launcher", "S-300PS 40B6MD sr_19J6", "S-300PS 40B6MD sr", "S-300PS 40B6M tr", "S-300PS 54K6 cp", "S-300PS 5H63C 30H6_tr", "S-300PS 5P85C ln", "S-300PS 5P85D ln", "S-300PS 64H6E sr", "S-60_Type59_Artillery", "S_75M_Volhov", "S_75_ZIL", "SA-11 Buk CC 9S470M1", "SA-11 Buk LN 9A310M1", "SA-11 Buk SR 9S18M1", "SA-18 Igla comm", "SA-18 Igla manpad", "SA-18 Igla-S comm", "SA-18 Igla-S manpad", "Sandbox", "SAU 2-C9", "SAU Akatsia", "SAU Gvozdika", "SAU Msta", "Scud_B", "Sd_Kfz_234_2_Puma", "Sd_Kfz_251", "Sd_Kfz_2", "Sd_Kfz_7", "Silkworm_SR", "SK_C_28_naval_gun", "SKP-11", "Smerch_HE", "Smerch", "SNR_75V", "snr s-125 tr", "Soldier AK", "Soldier M249", "Soldier M4 GRG", "Soldier M4", "soldier_mauser98", "Soldier RPG", "Soldier stinger", "soldier_wwii_br_01", "soldier_wwii_us", "SON_9", "SpGH_Dana", "Stinger comm dsr", "Stinger comm", "Strela-10M3", "Strela-1 9P31", "Stug_III", "Stug_IV", "SturmPzIV", "Suidae", "T155_Firtina", "T-55", "T-72B3", "T-72B", "T-80UD", "T-90", "TACAN_beacon", "tacr2a", "Tankcartrinity", "Tetrarch", "Tiger_II_H", "Tiger_I", "Tigr_233036", "Tor 9A331", "TPZ", "Trolley bus", "tt_B8M1", "tt_DSHK", "tt_KORD", "tt_ZU-23", "TYPE-59", "TZ-22_KrAZ", "UAZ-469", "Uragan_BM-27", "Ural-375", "Ural-375 PBU", "Ural-375 ZU-23 Insurgent", "Ural-375 ZU-23", "Ural-4320-31", "Ural-4320 APA-5D", "Ural-4320T", "Ural ATsP-6", "v1_launcher", "VAB_Mephisto", "VAZ Car", "Vulcan", "Wellcarnsc", "Wespe124", "Willys_MB", "ZBD04A", "ZiL-131 APA-80", "ZIL-131 KUNG", "ZIL-135", "ZIL-4331", "ZSU-23-4 Shilka", "ZSU_57_2", "ZTZ96B", "ZU-23 Closed Insurgent", "ZU-23 Emplacement Closed", "ZU-23 Emplacement", "ZU-23 Insurgent"}
|
|
|
|
pool.populateUnitTypes(ships, "boat")
|
|
pool.populateUnitTypes(planes, "plane")
|
|
pool.populateUnitTypes(helis, "heli")
|
|
pool.populateUnitTypes(ground, "armour")
|
|
|
|
}
|
|
|
|
func (pool *Pool) populateUnitTypes(units []string, name string) {
|
|
for _, i := range units {
|
|
pool.unitTypes[i] = name
|
|
}
|
|
}
|