Class: ForgeInstallerProfileInput

Inherits:
BaseInput
  • Object
show all
Defined in:
lib/wonko_the_sane/input/forge_installer_profile_input.rb

Instance Method Summary collapse

Methods inherited from BaseInput

#logger

Constructor Details

#initialize(artifact) ⇒ ForgeInstallerProfileInput



2
3
4
# File 'lib/wonko_the_sane/input/forge_installer_profile_input.rb', line 2

def initialize(artifact)
  @artifact = artifact
end

Instance Method Details

#parse(data, version) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/wonko_the_sane/input/forge_installer_profile_input.rb', line 6

def parse(data, version)
  object = JSON.parse data, symbolize_names: true
  info = object[:versionInfo]
  file = WonkoVersion.new

  file.uid = @artifact
  file.version = version
  file.time = info[:time]
  file.type = info[:type]
  file.client.mainClass = info[:mainClass]
  file.client.minecraftArguments = info[:minecraftArguments]
  file.client.assets = info[:assets]
  file.requires << Referenced.new('net.minecraft', object[:install][:minecraft])
  libraries = info[:libraries].map do |obj|
    MojangInput.sanetize_mojang_library obj
  end.flatten 1
  file.client.downloads = libraries
  file.common.folders['minecraft/mods'] = ['mc.forgemods']
  file.common.folders['minecraft/mods'] << 'mc.forgecoremods' if object[:install][:minecraft].match /[^1]*1\.[0-6]/
  file.common.folders['minecraft/coremods'] = ['mc.forgecoremods'] if object[:install][:minecraft].match /[^1]*1\.[0-6]/
  file.server.downloads = libraries
  file.server.launchMethod = 'java.mainClass'
  file.server.extra[:forgeLibraryName] = %W(net.minecraftforge:forge:#{object[:install][:minecraft]}-#{version}:universal net.minecraftforge:forge:#{object[:install][:minecraft]}-#{version} net.minecraftforge:forge:#{version}:universal net.minecraftforge:forge:#{version} net.minecraftforge:minecraftforge:#{object[:install][:minecraft]}-#{version}:universal net.minecraftforge:minecraftforge:#{object[:install][:minecraft]}-#{version} net.minecraftforge:minecraftforge:#{version}:universal net.minecraftforge:minecraftforge:#{version})

  return BaseSanitizer.sanitize file, MojangExtractTweakersSanitizer, MojangSplitLWJGLSanitizer, ForgeRemoveMinecraftSanitizer, ForgeFixJarSanitizer, ForgePackXZUrlsSanitizer, ForgeServerMainClassSanitizer
end